memac             510 drivers/net/ethernet/freescale/fman/fman_memac.c static void setup_sgmii_internal_phy(struct fman_mac *memac,
memac             515 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (WARN_ON(!memac->pcsphy))
memac             539 drivers/net/ethernet/freescale/fman/fman_memac.c 	phy_write(memac->pcsphy, MDIO_SGMII_IF_MODE, tmp_reg16);
memac             543 drivers/net/ethernet/freescale/fman/fman_memac.c 	phy_write(memac->pcsphy, MDIO_SGMII_DEV_ABIL_SGMII, tmp_reg16);
memac             557 drivers/net/ethernet/freescale/fman/fman_memac.c 	phy_write(memac->pcsphy, MDIO_SGMII_LINK_TMR_H, LINK_TMR_H);
memac             558 drivers/net/ethernet/freescale/fman/fman_memac.c 	phy_write(memac->pcsphy, MDIO_SGMII_LINK_TMR_L, LINK_TMR_L);
memac             566 drivers/net/ethernet/freescale/fman/fman_memac.c 	phy_write(memac->pcsphy, 0x0, tmp_reg16);
memac             569 drivers/net/ethernet/freescale/fman/fman_memac.c static void setup_sgmii_internal_phy_base_x(struct fman_mac *memac)
memac             575 drivers/net/ethernet/freescale/fman/fman_memac.c 	phy_write(memac->pcsphy, MDIO_SGMII_DEV_ABIL_SGMII, tmp_reg16);
memac             589 drivers/net/ethernet/freescale/fman/fman_memac.c 	phy_write(memac->pcsphy, MDIO_SGMII_LINK_TMR_H, LINK_TMR_H_BASEX);
memac             590 drivers/net/ethernet/freescale/fman/fman_memac.c 	phy_write(memac->pcsphy, MDIO_SGMII_LINK_TMR_L, LINK_TMR_L_BASEX);
memac             594 drivers/net/ethernet/freescale/fman/fman_memac.c 	phy_write(memac->pcsphy, 0x0, tmp_reg16);
memac             597 drivers/net/ethernet/freescale/fman/fman_memac.c static int check_init_parameters(struct fman_mac *memac)
memac             599 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (memac->addr == 0) {
memac             603 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!memac->exception_cb) {
memac             607 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!memac->event_cb) {
memac             642 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct fman_mac *memac = (struct fman_mac *)handle;
memac             643 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct memac_regs __iomem *regs = memac->regs;
memac             659 drivers/net/ethernet/freescale/fman/fman_memac.c 		memac->exception_cb(memac->dev_id, FM_MAC_EX_TS_FIFO_ECC_ERR);
memac             661 drivers/net/ethernet/freescale/fman/fman_memac.c 		memac->exception_cb(memac->dev_id, FM_MAC_EX_10G_TX_ECC_ER);
memac             663 drivers/net/ethernet/freescale/fman/fman_memac.c 		memac->exception_cb(memac->dev_id, FM_MAC_EX_10G_RX_ECC_ER);
memac             668 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct fman_mac *memac = (struct fman_mac *)handle;
memac             669 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct memac_regs __iomem *regs = memac->regs;
memac             685 drivers/net/ethernet/freescale/fman/fman_memac.c 		memac->exception_cb(memac->dev_id,
memac             689 drivers/net/ethernet/freescale/fman/fman_memac.c static void free_init_resources(struct fman_mac *memac)
memac             691 drivers/net/ethernet/freescale/fman/fman_memac.c 	fman_unregister_intr(memac->fm, FMAN_MOD_MAC, memac->mac_id,
memac             694 drivers/net/ethernet/freescale/fman/fman_memac.c 	fman_unregister_intr(memac->fm, FMAN_MOD_MAC, memac->mac_id,
memac             698 drivers/net/ethernet/freescale/fman/fman_memac.c 	free_hash_table(memac->multicast_addr_hash);
memac             699 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->multicast_addr_hash = NULL;
memac             702 drivers/net/ethernet/freescale/fman/fman_memac.c 	free_hash_table(memac->unicast_addr_hash);
memac             703 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->unicast_addr_hash = NULL;
memac             715 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_enable(struct fman_mac *memac, enum comm_mode mode)
memac             717 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct memac_regs __iomem *regs = memac->regs;
memac             720 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!is_init_done(memac->memac_drv_param))
memac             734 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_disable(struct fman_mac *memac, enum comm_mode mode)
memac             736 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct memac_regs __iomem *regs = memac->regs;
memac             739 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!is_init_done(memac->memac_drv_param))
memac             753 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_set_promiscuous(struct fman_mac *memac, bool new_val)
memac             755 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct memac_regs __iomem *regs = memac->regs;
memac             758 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!is_init_done(memac->memac_drv_param))
memac             772 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_adjust_link(struct fman_mac *memac, u16 speed)
memac             774 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct memac_regs __iomem *regs = memac->regs;
memac             777 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!is_init_done(memac->memac_drv_param))
memac             785 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (memac->phy_if == PHY_INTERFACE_MODE_RGMII) {
memac             812 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_cfg_max_frame_len(struct fman_mac *memac, u16 new_val)
memac             814 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (is_init_done(memac->memac_drv_param))
memac             817 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->memac_drv_param->max_frame_length = new_val;
memac             822 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_cfg_reset_on_init(struct fman_mac *memac, bool enable)
memac             824 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (is_init_done(memac->memac_drv_param))
memac             827 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->memac_drv_param->reset_on_init = enable;
memac             832 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_cfg_fixed_link(struct fman_mac *memac,
memac             835 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (is_init_done(memac->memac_drv_param))
memac             838 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->memac_drv_param->fixed_link = fixed_link;
memac             843 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_set_tx_pause_frames(struct fman_mac *memac, u8 priority,
memac             846 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct memac_regs __iomem *regs = memac->regs;
memac             849 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!is_init_done(memac->memac_drv_param))
memac             882 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_accept_rx_pause_frames(struct fman_mac *memac, bool en)
memac             884 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct memac_regs __iomem *regs = memac->regs;
memac             887 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!is_init_done(memac->memac_drv_param))
memac             901 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_modify_mac_address(struct fman_mac *memac, enet_addr_t *enet_addr)
memac             903 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!is_init_done(memac->memac_drv_param))
memac             906 drivers/net/ethernet/freescale/fman/fman_memac.c 	add_addr_in_paddr(memac->regs, (u8 *)(*enet_addr), 0);
memac             911 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_add_hash_mac_address(struct fman_mac *memac, enet_addr_t *eth_addr)
memac             913 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct memac_regs __iomem *regs = memac->regs;
memac             918 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!is_init_done(memac->memac_drv_param))
memac             938 drivers/net/ethernet/freescale/fman/fman_memac.c 		      &memac->multicast_addr_hash->lsts[hash]);
memac             944 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_set_allmulti(struct fman_mac *memac, bool enable)
memac             947 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct memac_regs __iomem *regs = memac->regs;
memac             949 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!is_init_done(memac->memac_drv_param))
memac             962 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->allmulti_enabled = enable;
memac             967 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_set_tstamp(struct fman_mac *memac, bool enable)
memac             972 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_del_hash_mac_address(struct fman_mac *memac, enet_addr_t *eth_addr)
memac             974 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct memac_regs __iomem *regs = memac->regs;
memac             980 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!is_init_done(memac->memac_drv_param))
memac             987 drivers/net/ethernet/freescale/fman/fman_memac.c 	list_for_each(pos, &memac->multicast_addr_hash->lsts[hash]) {
memac             996 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!memac->allmulti_enabled) {
memac             997 drivers/net/ethernet/freescale/fman/fman_memac.c 		if (list_empty(&memac->multicast_addr_hash->lsts[hash]))
memac            1005 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_set_exception(struct fman_mac *memac,
memac            1010 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!is_init_done(memac->memac_drv_param))
memac            1016 drivers/net/ethernet/freescale/fman/fman_memac.c 			memac->exceptions |= bit_mask;
memac            1018 drivers/net/ethernet/freescale/fman/fman_memac.c 			memac->exceptions &= ~bit_mask;
memac            1023 drivers/net/ethernet/freescale/fman/fman_memac.c 	set_exception(memac->regs, bit_mask, enable);
memac            1028 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_init(struct fman_mac *memac)
memac            1038 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (is_init_done(memac->memac_drv_param))
memac            1041 drivers/net/ethernet/freescale/fman/fman_memac.c 	err = check_init_parameters(memac);
memac            1045 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac_drv_param = memac->memac_drv_param;
memac            1047 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (memac->fm_rev_info.major == 6 && memac->fm_rev_info.minor == 4)
memac            1052 drivers/net/ethernet/freescale/fman/fman_memac.c 		err = reset(memac->regs);
memac            1060 drivers/net/ethernet/freescale/fman/fman_memac.c 	MAKE_ENET_ADDR_FROM_UINT64(memac->addr, eth_addr);
memac            1061 drivers/net/ethernet/freescale/fman/fman_memac.c 	add_addr_in_paddr(memac->regs, (u8 *)eth_addr, 0);
memac            1065 drivers/net/ethernet/freescale/fman/fman_memac.c 	init(memac->regs, memac->memac_drv_param, memac->phy_if,
memac            1066 drivers/net/ethernet/freescale/fman/fman_memac.c 	     memac->max_speed, slow_10g_if, memac->exceptions);
memac            1071 drivers/net/ethernet/freescale/fman/fman_memac.c 	if ((memac->fm_rev_info.major == 6) &&
memac            1072 drivers/net/ethernet/freescale/fman/fman_memac.c 	    ((memac->fm_rev_info.minor == 0) ||
memac            1073 drivers/net/ethernet/freescale/fman/fman_memac.c 	    (memac->fm_rev_info.minor == 3))) {
memac            1077 drivers/net/ethernet/freescale/fman/fman_memac.c 		reg32 = ioread32be(&memac->regs->command_config);
memac            1079 drivers/net/ethernet/freescale/fman/fman_memac.c 		iowrite32be(reg32, &memac->regs->command_config);
memac            1082 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (memac->phy_if == PHY_INTERFACE_MODE_SGMII) {
memac            1084 drivers/net/ethernet/freescale/fman/fman_memac.c 		if (memac->basex_if)
memac            1085 drivers/net/ethernet/freescale/fman/fman_memac.c 			setup_sgmii_internal_phy_base_x(memac);
memac            1087 drivers/net/ethernet/freescale/fman/fman_memac.c 			setup_sgmii_internal_phy(memac, fixed_link);
memac            1088 drivers/net/ethernet/freescale/fman/fman_memac.c 	} else if (memac->phy_if == PHY_INTERFACE_MODE_QSGMII) {
memac            1097 drivers/net/ethernet/freescale/fman/fman_memac.c 			phy_addr = memac->pcsphy->mdio.addr;
memac            1099 drivers/net/ethernet/freescale/fman/fman_memac.c 			memac->pcsphy->mdio.addr = qsmgii_phy_addr;
memac            1100 drivers/net/ethernet/freescale/fman/fman_memac.c 			if (memac->basex_if)
memac            1101 drivers/net/ethernet/freescale/fman/fman_memac.c 				setup_sgmii_internal_phy_base_x(memac);
memac            1103 drivers/net/ethernet/freescale/fman/fman_memac.c 				setup_sgmii_internal_phy(memac, fixed_link);
memac            1105 drivers/net/ethernet/freescale/fman/fman_memac.c 			memac->pcsphy->mdio.addr = phy_addr;
memac            1110 drivers/net/ethernet/freescale/fman/fman_memac.c 	err = fman_set_mac_max_frame(memac->fm, memac->mac_id,
memac            1117 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->multicast_addr_hash = alloc_hash_table(HASH_TABLE_SIZE);
memac            1118 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!memac->multicast_addr_hash) {
memac            1119 drivers/net/ethernet/freescale/fman/fman_memac.c 		free_init_resources(memac);
memac            1124 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->unicast_addr_hash = alloc_hash_table(HASH_TABLE_SIZE);
memac            1125 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!memac->unicast_addr_hash) {
memac            1126 drivers/net/ethernet/freescale/fman/fman_memac.c 		free_init_resources(memac);
memac            1131 drivers/net/ethernet/freescale/fman/fman_memac.c 	fman_register_intr(memac->fm, FMAN_MOD_MAC, memac->mac_id,
memac            1132 drivers/net/ethernet/freescale/fman/fman_memac.c 			   FMAN_INTR_TYPE_ERR, memac_err_exception, memac);
memac            1134 drivers/net/ethernet/freescale/fman/fman_memac.c 	fman_register_intr(memac->fm, FMAN_MOD_MAC, memac->mac_id,
memac            1135 drivers/net/ethernet/freescale/fman/fman_memac.c 			   FMAN_INTR_TYPE_NORMAL, memac_exception, memac);
memac            1138 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->memac_drv_param = NULL;
memac            1143 drivers/net/ethernet/freescale/fman/fman_memac.c int memac_free(struct fman_mac *memac)
memac            1145 drivers/net/ethernet/freescale/fman/fman_memac.c 	free_init_resources(memac);
memac            1147 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (memac->pcsphy)
memac            1148 drivers/net/ethernet/freescale/fman/fman_memac.c 		put_device(&memac->pcsphy->mdio.dev);
memac            1150 drivers/net/ethernet/freescale/fman/fman_memac.c 	kfree(memac->memac_drv_param);
memac            1151 drivers/net/ethernet/freescale/fman/fman_memac.c 	kfree(memac);
memac            1158 drivers/net/ethernet/freescale/fman/fman_memac.c 	struct fman_mac *memac;
memac            1164 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac = kzalloc(sizeof(*memac), GFP_KERNEL);
memac            1165 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (!memac)
memac            1171 drivers/net/ethernet/freescale/fman/fman_memac.c 		memac_free(memac);
memac            1176 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->memac_drv_param = memac_drv_param;
memac            1180 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->addr = ENET_ADDR_TO_UINT64(params->addr);
memac            1182 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->regs = base_addr;
memac            1183 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->max_speed = params->max_speed;
memac            1184 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->phy_if = params->phy_if;
memac            1185 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->mac_id = params->mac_id;
memac            1186 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->exceptions = (MEMAC_IMASK_TSECC_ER | MEMAC_IMASK_TECC_ER |
memac            1188 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->exception_cb = params->exception_cb;
memac            1189 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->event_cb = params->event_cb;
memac            1190 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->dev_id = params->dev_id;
memac            1191 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->fm = params->fm;
memac            1192 drivers/net/ethernet/freescale/fman/fman_memac.c 	memac->basex_if = params->basex_if;
memac            1195 drivers/net/ethernet/freescale/fman/fman_memac.c 	fman_get_revision(memac->fm, &memac->fm_rev_info);
memac            1197 drivers/net/ethernet/freescale/fman/fman_memac.c 	if (memac->phy_if == PHY_INTERFACE_MODE_SGMII ||
memac            1198 drivers/net/ethernet/freescale/fman/fman_memac.c 	    memac->phy_if == PHY_INTERFACE_MODE_QSGMII) {
memac            1201 drivers/net/ethernet/freescale/fman/fman_memac.c 			memac_free(memac);
memac            1205 drivers/net/ethernet/freescale/fman/fman_memac.c 		memac->pcsphy = of_phy_find_device(params->internal_phy_node);
memac            1206 drivers/net/ethernet/freescale/fman/fman_memac.c 		if (!memac->pcsphy) {
memac            1208 drivers/net/ethernet/freescale/fman/fman_memac.c 			memac_free(memac);
memac            1213 drivers/net/ethernet/freescale/fman/fman_memac.c 	return memac;
memac              42 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_set_promiscuous(struct fman_mac *memac, bool new_val);
memac              43 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_modify_mac_address(struct fman_mac *memac, enet_addr_t *enet_addr);
memac              44 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_adjust_link(struct fman_mac *memac, u16 speed);
memac              45 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_cfg_max_frame_len(struct fman_mac *memac, u16 new_val);
memac              46 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_cfg_reset_on_init(struct fman_mac *memac, bool enable);
memac              47 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_cfg_fixed_link(struct fman_mac *memac,
memac              49 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_enable(struct fman_mac *memac, enum comm_mode mode);
memac              50 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_disable(struct fman_mac *memac, enum comm_mode mode);
memac              51 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_init(struct fman_mac *memac);
memac              52 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_free(struct fman_mac *memac);
memac              53 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_accept_rx_pause_frames(struct fman_mac *memac, bool en);
memac              54 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_set_tx_pause_frames(struct fman_mac *memac, u8 priority,
memac              56 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_set_exception(struct fman_mac *memac,
memac              58 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_add_hash_mac_address(struct fman_mac *memac, enet_addr_t *eth_addr);
memac              59 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_del_hash_mac_address(struct fman_mac *memac, enet_addr_t *eth_addr);
memac              60 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_set_allmulti(struct fman_mac *memac, bool enable);
memac              61 drivers/net/ethernet/freescale/fman/fman_memac.h int memac_set_tstamp(struct fman_mac *memac, bool enable);