bgmac              35 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c static u16 bcma_mdio_phy_read(struct bgmac *bgmac, u8 phyaddr, u8 reg)
bgmac              54 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	if (bgmac->bcma.core->id.id == BCMA_CORE_4706_MAC_GBIT) {
bgmac              55 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 		core = bgmac->bcma.core->bus->drv_gmac_cmn.core;
bgmac              59 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 		core = bgmac->bcma.core;
bgmac              85 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c static int bcma_mdio_phy_write(struct bgmac *bgmac, u8 phyaddr, u8 reg,
bgmac              93 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	if (bgmac->bcma.core->id.id == BCMA_CORE_4706_MAC_GBIT) {
bgmac              94 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 		core = bgmac->bcma.core->bus->drv_gmac_cmn.core;
bgmac              98 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 		core = bgmac->bcma.core;
bgmac             108 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	bcma_write32(bgmac->bcma.core, BGMAC_INT_STATUS, BGMAC_IS_MDIO);
bgmac             109 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	if (bcma_read32(bgmac->bcma.core, BGMAC_INT_STATUS) & BGMAC_IS_MDIO)
bgmac             130 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c static void bcma_mdio_phy_init(struct bgmac *bgmac)
bgmac             132 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	struct bcma_chipinfo *ci = &bgmac->bcma.core->bus->chipinfo;
bgmac             141 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x1f, 0x008b);
bgmac             142 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x15, 0x0100);
bgmac             143 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f);
bgmac             144 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x12, 0x2aaa);
bgmac             145 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b);
bgmac             152 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 		struct bcma_drv_cc *cc = &bgmac->bcma.core->bus->drv_cc;
bgmac             157 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f);
bgmac             158 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x16, 0x5284);
bgmac             159 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b);
bgmac             160 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x17, 0x0010);
bgmac             161 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f);
bgmac             162 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x16, 0x5296);
bgmac             163 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x17, 0x1073);
bgmac             164 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x17, 0x9073);
bgmac             165 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x16, 0x52b6);
bgmac             166 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x17, 0x9273);
bgmac             167 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 			bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b);
bgmac             173 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	if (bgmac->net_dev && bgmac->net_dev->phydev)
bgmac             174 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 		phy_init_hw(bgmac->net_dev->phydev);
bgmac             180 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	struct bgmac *bgmac = bus->priv;
bgmac             181 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	u8 phyaddr = bgmac->phyaddr;
bgmac             186 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	bcma_mdio_phy_write(bgmac, phyaddr, MII_BMCR, BMCR_RESET);
bgmac             188 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	if (bcma_mdio_phy_read(bgmac, phyaddr, MII_BMCR) & BMCR_RESET)
bgmac             189 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 		dev_err(bgmac->dev, "PHY reset failed\n");
bgmac             190 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	bcma_mdio_phy_init(bgmac);
bgmac             210 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c struct mii_bus *bcma_mdio_mii_register(struct bgmac *bgmac)
bgmac             212 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	struct bcma_device *core = bgmac->bcma.core;
bgmac             225 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	mii_bus->priv = bgmac;
bgmac             230 drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c 	mii_bus->phy_mask = ~(1 << bgmac->phyaddr);
bgmac              33 drivers/net/ethernet/broadcom/bgmac-bcma.c static u32 bcma_bgmac_read(struct bgmac *bgmac, u16 offset)
bgmac              35 drivers/net/ethernet/broadcom/bgmac-bcma.c 	return bcma_read32(bgmac->bcma.core, offset);
bgmac              38 drivers/net/ethernet/broadcom/bgmac-bcma.c static void bcma_bgmac_write(struct bgmac *bgmac, u16 offset, u32 value)
bgmac              40 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bcma_write32(bgmac->bcma.core, offset, value);
bgmac              43 drivers/net/ethernet/broadcom/bgmac-bcma.c static u32 bcma_bgmac_idm_read(struct bgmac *bgmac, u16 offset)
bgmac              45 drivers/net/ethernet/broadcom/bgmac-bcma.c 	return bcma_aread32(bgmac->bcma.core, offset);
bgmac              48 drivers/net/ethernet/broadcom/bgmac-bcma.c static void bcma_bgmac_idm_write(struct bgmac *bgmac, u16 offset, u32 value)
bgmac              50 drivers/net/ethernet/broadcom/bgmac-bcma.c 	return bcma_awrite32(bgmac->bcma.core, offset, value);
bgmac              53 drivers/net/ethernet/broadcom/bgmac-bcma.c static bool bcma_bgmac_clk_enabled(struct bgmac *bgmac)
bgmac              55 drivers/net/ethernet/broadcom/bgmac-bcma.c 	return bcma_core_is_enabled(bgmac->bcma.core);
bgmac              58 drivers/net/ethernet/broadcom/bgmac-bcma.c static void bcma_bgmac_clk_enable(struct bgmac *bgmac, u32 flags)
bgmac              60 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bcma_core_enable(bgmac->bcma.core, flags);
bgmac              63 drivers/net/ethernet/broadcom/bgmac-bcma.c static void bcma_bgmac_cco_ctl_maskset(struct bgmac *bgmac, u32 offset,
bgmac              66 drivers/net/ethernet/broadcom/bgmac-bcma.c 	struct bcma_drv_cc *cc = &bgmac->bcma.core->bus->drv_cc;
bgmac              71 drivers/net/ethernet/broadcom/bgmac-bcma.c static u32 bcma_bgmac_get_bus_clock(struct bgmac *bgmac)
bgmac              73 drivers/net/ethernet/broadcom/bgmac-bcma.c 	struct bcma_drv_cc *cc = &bgmac->bcma.core->bus->drv_cc;
bgmac              78 drivers/net/ethernet/broadcom/bgmac-bcma.c static void bcma_bgmac_cmn_maskset32(struct bgmac *bgmac, u16 offset, u32 mask,
bgmac              81 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bcma_maskset32(bgmac->bcma.cmn, offset, mask, set);
bgmac              84 drivers/net/ethernet/broadcom/bgmac-bcma.c static int bcma_phy_connect(struct bgmac *bgmac)
bgmac              90 drivers/net/ethernet/broadcom/bgmac-bcma.c 	snprintf(bus_id, sizeof(bus_id), PHY_ID_FMT, bgmac->mii_bus->id,
bgmac              91 drivers/net/ethernet/broadcom/bgmac-bcma.c 		 bgmac->phyaddr);
bgmac              92 drivers/net/ethernet/broadcom/bgmac-bcma.c 	phy_dev = phy_connect(bgmac->net_dev, bus_id, bgmac_adjust_link,
bgmac              95 drivers/net/ethernet/broadcom/bgmac-bcma.c 		dev_err(bgmac->dev, "PHY connection failed\n");
bgmac             117 drivers/net/ethernet/broadcom/bgmac-bcma.c 	struct bgmac *bgmac;
bgmac             121 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac = bgmac_alloc(&core->dev);
bgmac             122 drivers/net/ethernet/broadcom/bgmac-bcma.c 	if (!bgmac)
bgmac             125 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->bcma.core = core;
bgmac             126 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->dma_dev = core->dma_dev;
bgmac             127 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->irq = core->irq;
bgmac             129 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bcma_set_drvdata(core, bgmac);
bgmac             131 drivers/net/ethernet/broadcom/bgmac-bcma.c 	if (bgmac->dev->of_node)
bgmac             132 drivers/net/ethernet/broadcom/bgmac-bcma.c 		mac = of_get_mac_address(bgmac->dev->of_node);
bgmac             147 drivers/net/ethernet/broadcom/bgmac-bcma.c 			dev_err(bgmac->dev, "Unsupported core_unit %d\n",
bgmac             154 drivers/net/ethernet/broadcom/bgmac-bcma.c 	ether_addr_copy(bgmac->net_dev->dev_addr, mac);
bgmac             159 drivers/net/ethernet/broadcom/bgmac-bcma.c 		dev_err(bgmac->dev, "GMAC CMN core not found (required for BCM4706)\n");
bgmac             163 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->bcma.cmn = core->bus->drv_gmac_cmn.core;
bgmac             167 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->phyaddr = sprom->et0phyaddr;
bgmac             170 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->phyaddr = sprom->et1phyaddr;
bgmac             173 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->phyaddr = sprom->et2phyaddr;
bgmac             176 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->phyaddr &= BGMAC_PHY_MASK;
bgmac             177 drivers/net/ethernet/broadcom/bgmac-bcma.c 	if (bgmac->phyaddr == BGMAC_PHY_MASK) {
bgmac             178 drivers/net/ethernet/broadcom/bgmac-bcma.c 		dev_err(bgmac->dev, "No PHY found\n");
bgmac             182 drivers/net/ethernet/broadcom/bgmac-bcma.c 	dev_info(bgmac->dev, "Found PHY addr: %d%s\n", bgmac->phyaddr,
bgmac             183 drivers/net/ethernet/broadcom/bgmac-bcma.c 		 bgmac->phyaddr == BGMAC_PHY_NOREGS ? " (NOREGS)" : "");
bgmac             189 drivers/net/ethernet/broadcom/bgmac-bcma.c 		mii_bus = bcma_mdio_mii_register(bgmac);
bgmac             194 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->mii_bus = mii_bus;
bgmac             196 drivers/net/ethernet/broadcom/bgmac-bcma.c 		phydev = mdiobus_get_phy(bgmac->mii_bus, bgmac->phyaddr);
bgmac             203 drivers/net/ethernet/broadcom/bgmac-bcma.c 		dev_err(bgmac->dev, "PCI setup not implemented\n");
bgmac             208 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->has_robosw = !!(sprom->boardflags_lo & BGMAC_BFL_ENETROBO);
bgmac             209 drivers/net/ethernet/broadcom/bgmac-bcma.c 	if (bgmac->has_robosw)
bgmac             210 drivers/net/ethernet/broadcom/bgmac-bcma.c 		dev_warn(bgmac->dev, "Support for Roboswitch not implemented\n");
bgmac             213 drivers/net/ethernet/broadcom/bgmac-bcma.c 		dev_warn(bgmac->dev, "Support for ADMtek ethernet switch not implemented\n");
bgmac             219 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
bgmac             222 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_FLW_CTRL2;
bgmac             223 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
bgmac             227 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
bgmac             228 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
bgmac             229 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_FLW_CTRL1;
bgmac             230 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_PHY;
bgmac             233 drivers/net/ethernet/broadcom/bgmac-bcma.c 			bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_RGMII;
bgmac             234 drivers/net/ethernet/broadcom/bgmac-bcma.c 			bgmac->feature_flags |= BGMAC_FEAT_IOST_ATTACHED;
bgmac             237 drivers/net/ethernet/broadcom/bgmac-bcma.c 			bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_EPHYRMII;
bgmac             240 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
bgmac             241 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
bgmac             243 drivers/net/ethernet/broadcom/bgmac-bcma.c 			bgmac->feature_flags |= BGMAC_FEAT_IOST_ATTACHED;
bgmac             245 drivers/net/ethernet/broadcom/bgmac-bcma.c 			bgmac->feature_flags |= BGMAC_FEAT_CC4_IF_SW_TYPE;
bgmac             247 drivers/net/ethernet/broadcom/bgmac-bcma.c 				bgmac->feature_flags |=
bgmac             250 drivers/net/ethernet/broadcom/bgmac-bcma.c 			bgmac->feature_flags |= BGMAC_FEAT_IRQ_ID_OOB_6;
bgmac             251 drivers/net/ethernet/broadcom/bgmac-bcma.c 			bgmac->feature_flags |= BGMAC_FEAT_CC7_IF_TYPE_RGMII;
bgmac             255 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
bgmac             256 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
bgmac             257 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_FLW_CTRL1;
bgmac             258 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_PHY;
bgmac             260 drivers/net/ethernet/broadcom/bgmac-bcma.c 			bgmac->feature_flags |= BGMAC_FEAT_SW_TYPE_RGMII;
bgmac             261 drivers/net/ethernet/broadcom/bgmac-bcma.c 			bgmac->feature_flags |= BGMAC_FEAT_IOST_ATTACHED;
bgmac             268 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
bgmac             269 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_NO_RESET;
bgmac             270 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500;
bgmac             273 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
bgmac             274 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_SET_RXQ_CLK;
bgmac             278 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_MISC_PLL_REQ;
bgmac             281 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_CMN_PHY_CTL;
bgmac             282 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_NO_CLR_MIB;
bgmac             286 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_CMDCFG_SR_REV4;
bgmac             287 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_TX_MASK_SETUP;
bgmac             288 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->feature_flags |= BGMAC_FEAT_RX_MASK_SETUP;
bgmac             291 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->read = bcma_bgmac_read;
bgmac             292 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->write = bcma_bgmac_write;
bgmac             293 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->idm_read = bcma_bgmac_idm_read;
bgmac             294 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->idm_write = bcma_bgmac_idm_write;
bgmac             295 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->clk_enabled = bcma_bgmac_clk_enabled;
bgmac             296 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->clk_enable = bcma_bgmac_clk_enable;
bgmac             297 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->cco_ctl_maskset = bcma_bgmac_cco_ctl_maskset;
bgmac             298 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->get_bus_clock = bcma_bgmac_get_bus_clock;
bgmac             299 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac->cmn_maskset32 = bcma_bgmac_cmn_maskset32;
bgmac             300 drivers/net/ethernet/broadcom/bgmac-bcma.c 	if (bgmac->mii_bus)
bgmac             301 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->phy_connect = bcma_phy_connect;
bgmac             303 drivers/net/ethernet/broadcom/bgmac-bcma.c 		bgmac->phy_connect = bgmac_phy_connect_direct;
bgmac             305 drivers/net/ethernet/broadcom/bgmac-bcma.c 	err = bgmac_enet_probe(bgmac);
bgmac             312 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bcma_mdio_mii_unregister(bgmac->mii_bus);
bgmac             321 drivers/net/ethernet/broadcom/bgmac-bcma.c 	struct bgmac *bgmac = bcma_get_drvdata(core);
bgmac             323 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bcma_mdio_mii_unregister(bgmac->mii_bus);
bgmac             324 drivers/net/ethernet/broadcom/bgmac-bcma.c 	bgmac_enet_remove(bgmac);
bgmac             326 drivers/net/ethernet/broadcom/bgmac-bcma.c 	kfree(bgmac);
bgmac              36 drivers/net/ethernet/broadcom/bgmac-platform.c static u32 platform_bgmac_read(struct bgmac *bgmac, u16 offset)
bgmac              38 drivers/net/ethernet/broadcom/bgmac-platform.c 	return readl(bgmac->plat.base + offset);
bgmac              41 drivers/net/ethernet/broadcom/bgmac-platform.c static void platform_bgmac_write(struct bgmac *bgmac, u16 offset, u32 value)
bgmac              43 drivers/net/ethernet/broadcom/bgmac-platform.c 	writel(value, bgmac->plat.base + offset);
bgmac              46 drivers/net/ethernet/broadcom/bgmac-platform.c static u32 platform_bgmac_idm_read(struct bgmac *bgmac, u16 offset)
bgmac              48 drivers/net/ethernet/broadcom/bgmac-platform.c 	return readl(bgmac->plat.idm_base + offset);
bgmac              51 drivers/net/ethernet/broadcom/bgmac-platform.c static void platform_bgmac_idm_write(struct bgmac *bgmac, u16 offset, u32 value)
bgmac              53 drivers/net/ethernet/broadcom/bgmac-platform.c 	writel(value, bgmac->plat.idm_base + offset);
bgmac              56 drivers/net/ethernet/broadcom/bgmac-platform.c static bool platform_bgmac_clk_enabled(struct bgmac *bgmac)
bgmac              58 drivers/net/ethernet/broadcom/bgmac-platform.c 	if (!bgmac->plat.idm_base)
bgmac              61 drivers/net/ethernet/broadcom/bgmac-platform.c 	if ((bgmac_idm_read(bgmac, BCMA_IOCTL) & BGMAC_CLK_EN) != BGMAC_CLK_EN)
bgmac              63 drivers/net/ethernet/broadcom/bgmac-platform.c 	if (bgmac_idm_read(bgmac, BCMA_RESET_CTL) & BCMA_RESET_CTL_RESET)
bgmac              68 drivers/net/ethernet/broadcom/bgmac-platform.c static void platform_bgmac_clk_enable(struct bgmac *bgmac, u32 flags)
bgmac              72 drivers/net/ethernet/broadcom/bgmac-platform.c 	if (!bgmac->plat.idm_base)
bgmac              79 drivers/net/ethernet/broadcom/bgmac-platform.c 	val = bgmac_idm_read(bgmac, BCMA_RESET_CTL);
bgmac              81 drivers/net/ethernet/broadcom/bgmac-platform.c 		bgmac_idm_write(bgmac, BCMA_RESET_CTL, 0);
bgmac              82 drivers/net/ethernet/broadcom/bgmac-platform.c 		bgmac_idm_read(bgmac, BCMA_RESET_CTL);
bgmac              86 drivers/net/ethernet/broadcom/bgmac-platform.c 	val = bgmac_idm_read(bgmac, BCMA_IOCTL);
bgmac              91 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac_idm_write(bgmac, BCMA_IOCTL, val);
bgmac              92 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac_idm_read(bgmac, BCMA_IOCTL);
bgmac              96 drivers/net/ethernet/broadcom/bgmac-platform.c static void platform_bgmac_cco_ctl_maskset(struct bgmac *bgmac, u32 offset,
bgmac             103 drivers/net/ethernet/broadcom/bgmac-platform.c static u32 platform_bgmac_get_bus_clock(struct bgmac *bgmac)
bgmac             111 drivers/net/ethernet/broadcom/bgmac-platform.c static void platform_bgmac_cmn_maskset32(struct bgmac *bgmac, u16 offset,
bgmac             120 drivers/net/ethernet/broadcom/bgmac-platform.c 	struct bgmac *bgmac = netdev_priv(net_dev);
bgmac             123 drivers/net/ethernet/broadcom/bgmac-platform.c 	if (!bgmac->plat.nicpm_base)
bgmac             128 drivers/net/ethernet/broadcom/bgmac-platform.c 	       bgmac->plat.nicpm_base + NICPM_PADRING_CFG);
bgmac             131 drivers/net/ethernet/broadcom/bgmac-platform.c 	switch (bgmac->net_dev->phydev->speed) {
bgmac             146 drivers/net/ethernet/broadcom/bgmac-platform.c 	writel(val, bgmac->plat.nicpm_base + NICPM_IOMUX_CTRL);
bgmac             148 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac_adjust_link(bgmac->net_dev);
bgmac             151 drivers/net/ethernet/broadcom/bgmac-platform.c static int platform_phy_connect(struct bgmac *bgmac)
bgmac             155 drivers/net/ethernet/broadcom/bgmac-platform.c 	if (bgmac->plat.nicpm_base)
bgmac             156 drivers/net/ethernet/broadcom/bgmac-platform.c 		phy_dev = of_phy_get_and_connect(bgmac->net_dev,
bgmac             157 drivers/net/ethernet/broadcom/bgmac-platform.c 						 bgmac->dev->of_node,
bgmac             160 drivers/net/ethernet/broadcom/bgmac-platform.c 		phy_dev = of_phy_get_and_connect(bgmac->net_dev,
bgmac             161 drivers/net/ethernet/broadcom/bgmac-platform.c 						 bgmac->dev->of_node,
bgmac             164 drivers/net/ethernet/broadcom/bgmac-platform.c 		dev_err(bgmac->dev, "PHY connection failed\n");
bgmac             174 drivers/net/ethernet/broadcom/bgmac-platform.c 	struct bgmac *bgmac;
bgmac             178 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac = bgmac_alloc(&pdev->dev);
bgmac             179 drivers/net/ethernet/broadcom/bgmac-platform.c 	if (!bgmac)
bgmac             182 drivers/net/ethernet/broadcom/bgmac-platform.c 	platform_set_drvdata(pdev, bgmac);
bgmac             185 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
bgmac             186 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->feature_flags |= BGMAC_FEAT_NO_RESET;
bgmac             187 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->feature_flags |= BGMAC_FEAT_CMDCFG_SR_REV4;
bgmac             188 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->feature_flags |= BGMAC_FEAT_TX_MASK_SETUP;
bgmac             189 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->feature_flags |= BGMAC_FEAT_RX_MASK_SETUP;
bgmac             190 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->feature_flags |= BGMAC_FEAT_IDM_MASK;
bgmac             192 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->dev = &pdev->dev;
bgmac             193 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->dma_dev = &pdev->dev;
bgmac             197 drivers/net/ethernet/broadcom/bgmac-platform.c 		ether_addr_copy(bgmac->net_dev->dev_addr, mac_addr);
bgmac             201 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->irq = platform_get_irq(pdev, 0);
bgmac             202 drivers/net/ethernet/broadcom/bgmac-platform.c 	if (bgmac->irq < 0)
bgmac             203 drivers/net/ethernet/broadcom/bgmac-platform.c 		return bgmac->irq;
bgmac             211 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->plat.base = devm_ioremap_resource(&pdev->dev, regs);
bgmac             212 drivers/net/ethernet/broadcom/bgmac-platform.c 	if (IS_ERR(bgmac->plat.base))
bgmac             213 drivers/net/ethernet/broadcom/bgmac-platform.c 		return PTR_ERR(bgmac->plat.base);
bgmac             217 drivers/net/ethernet/broadcom/bgmac-platform.c 		bgmac->plat.idm_base = devm_ioremap_resource(&pdev->dev, regs);
bgmac             218 drivers/net/ethernet/broadcom/bgmac-platform.c 		if (IS_ERR(bgmac->plat.idm_base))
bgmac             219 drivers/net/ethernet/broadcom/bgmac-platform.c 			return PTR_ERR(bgmac->plat.idm_base);
bgmac             220 drivers/net/ethernet/broadcom/bgmac-platform.c 		bgmac->feature_flags &= ~BGMAC_FEAT_IDM_MASK;
bgmac             225 drivers/net/ethernet/broadcom/bgmac-platform.c 		bgmac->plat.nicpm_base = devm_ioremap_resource(&pdev->dev,
bgmac             227 drivers/net/ethernet/broadcom/bgmac-platform.c 		if (IS_ERR(bgmac->plat.nicpm_base))
bgmac             228 drivers/net/ethernet/broadcom/bgmac-platform.c 			return PTR_ERR(bgmac->plat.nicpm_base);
bgmac             231 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->read = platform_bgmac_read;
bgmac             232 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->write = platform_bgmac_write;
bgmac             233 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->idm_read = platform_bgmac_idm_read;
bgmac             234 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->idm_write = platform_bgmac_idm_write;
bgmac             235 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->clk_enabled = platform_bgmac_clk_enabled;
bgmac             236 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->clk_enable = platform_bgmac_clk_enable;
bgmac             237 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->cco_ctl_maskset = platform_bgmac_cco_ctl_maskset;
bgmac             238 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->get_bus_clock = platform_bgmac_get_bus_clock;
bgmac             239 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac->cmn_maskset32 = platform_bgmac_cmn_maskset32;
bgmac             241 drivers/net/ethernet/broadcom/bgmac-platform.c 		bgmac->phy_connect = platform_phy_connect;
bgmac             243 drivers/net/ethernet/broadcom/bgmac-platform.c 		bgmac->phy_connect = bgmac_phy_connect_direct;
bgmac             244 drivers/net/ethernet/broadcom/bgmac-platform.c 		bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500;
bgmac             247 drivers/net/ethernet/broadcom/bgmac-platform.c 	return bgmac_enet_probe(bgmac);
bgmac             252 drivers/net/ethernet/broadcom/bgmac-platform.c 	struct bgmac *bgmac = platform_get_drvdata(pdev);
bgmac             254 drivers/net/ethernet/broadcom/bgmac-platform.c 	bgmac_enet_remove(bgmac);
bgmac             262 drivers/net/ethernet/broadcom/bgmac-platform.c 	struct bgmac *bgmac = dev_get_drvdata(dev);
bgmac             264 drivers/net/ethernet/broadcom/bgmac-platform.c 	return bgmac_enet_suspend(bgmac);
bgmac             269 drivers/net/ethernet/broadcom/bgmac-platform.c 	struct bgmac *bgmac = dev_get_drvdata(dev);
bgmac             271 drivers/net/ethernet/broadcom/bgmac-platform.c 	return bgmac_enet_resume(bgmac);
bgmac              21 drivers/net/ethernet/broadcom/bgmac.c static bool bgmac_wait_value(struct bgmac *bgmac, u16 reg, u32 mask,
bgmac              28 drivers/net/ethernet/broadcom/bgmac.c 		val = bgmac_read(bgmac, reg);
bgmac              33 drivers/net/ethernet/broadcom/bgmac.c 	dev_err(bgmac->dev, "Timeout waiting for reg 0x%X\n", reg);
bgmac              41 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_tx_reset(struct bgmac *bgmac, struct bgmac_dma_ring *ring)
bgmac              53 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_TX_CTL,
bgmac              56 drivers/net/ethernet/broadcom/bgmac.c 		val = bgmac_read(bgmac, ring->mmio_base + BGMAC_DMA_TX_STATUS);
bgmac              67 drivers/net/ethernet/broadcom/bgmac.c 		dev_err(bgmac->dev, "Timeout suspending DMA TX ring 0x%X (BGMAC_DMA_TX_STAT: 0x%08X)\n",
bgmac              71 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_TX_CTL, 0);
bgmac              72 drivers/net/ethernet/broadcom/bgmac.c 	if (!bgmac_wait_value(bgmac,
bgmac              76 drivers/net/ethernet/broadcom/bgmac.c 		dev_warn(bgmac->dev, "DMA TX ring 0x%X wasn't disabled on time, waiting additional 300us\n",
bgmac              79 drivers/net/ethernet/broadcom/bgmac.c 		val = bgmac_read(bgmac, ring->mmio_base + BGMAC_DMA_TX_STATUS);
bgmac              81 drivers/net/ethernet/broadcom/bgmac.c 			dev_err(bgmac->dev, "Reset of DMA TX ring 0x%X failed\n",
bgmac              86 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_tx_enable(struct bgmac *bgmac,
bgmac              91 drivers/net/ethernet/broadcom/bgmac.c 	ctl = bgmac_read(bgmac, ring->mmio_base + BGMAC_DMA_TX_CTL);
bgmac              92 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_TX_MASK_SETUP) {
bgmac             107 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_TX_CTL, ctl);
bgmac             111 drivers/net/ethernet/broadcom/bgmac.c bgmac_dma_tx_add_buf(struct bgmac *bgmac, struct bgmac_dma_ring *ring,
bgmac             131 drivers/net/ethernet/broadcom/bgmac.c static netdev_tx_t bgmac_dma_tx_add(struct bgmac *bgmac,
bgmac             135 drivers/net/ethernet/broadcom/bgmac.c 	struct device *dma_dev = bgmac->dma_dev;
bgmac             136 drivers/net/ethernet/broadcom/bgmac.c 	struct net_device *net_dev = bgmac->net_dev;
bgmac             144 drivers/net/ethernet/broadcom/bgmac.c 		netdev_err(bgmac->net_dev, "Too long skb (%d)\n", skb->len);
bgmac             157 drivers/net/ethernet/broadcom/bgmac.c 		netdev_err(bgmac->net_dev, "TX ring is full, queue should be stopped!\n");
bgmac             171 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_dma_tx_add_buf(bgmac, ring, index, skb_headlen(skb), flags);
bgmac             188 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_dma_tx_add_buf(bgmac, ring, index, len, flags);
bgmac             200 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_TX_INDEX,
bgmac             224 drivers/net/ethernet/broadcom/bgmac.c 	netdev_err(bgmac->net_dev, "Mapping error of skb on ring 0x%X\n",
bgmac             235 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_tx_free(struct bgmac *bgmac, struct bgmac_dma_ring *ring)
bgmac             237 drivers/net/ethernet/broadcom/bgmac.c 	struct device *dma_dev = bgmac->dma_dev;
bgmac             242 drivers/net/ethernet/broadcom/bgmac.c 	empty_slot = bgmac_read(bgmac, ring->mmio_base + BGMAC_DMA_TX_STATUS);
bgmac             269 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->net_dev->stats.tx_bytes += slot->skb->len;
bgmac             270 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->net_dev->stats.tx_packets++;
bgmac             286 drivers/net/ethernet/broadcom/bgmac.c 	netdev_completed_queue(bgmac->net_dev, pkts_compl, bytes_compl);
bgmac             288 drivers/net/ethernet/broadcom/bgmac.c 	if (netif_queue_stopped(bgmac->net_dev))
bgmac             289 drivers/net/ethernet/broadcom/bgmac.c 		netif_wake_queue(bgmac->net_dev);
bgmac             292 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_rx_reset(struct bgmac *bgmac, struct bgmac_dma_ring *ring)
bgmac             297 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_RX_CTL, 0);
bgmac             298 drivers/net/ethernet/broadcom/bgmac.c 	if (!bgmac_wait_value(bgmac,
bgmac             302 drivers/net/ethernet/broadcom/bgmac.c 		dev_err(bgmac->dev, "Reset of ring 0x%X RX failed\n",
bgmac             306 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_rx_enable(struct bgmac *bgmac,
bgmac             311 drivers/net/ethernet/broadcom/bgmac.c 	ctl = bgmac_read(bgmac, ring->mmio_base + BGMAC_DMA_RX_CTL);
bgmac             316 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_RX_MASK_SETUP) {
bgmac             330 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_RX_CTL, ctl);
bgmac             333 drivers/net/ethernet/broadcom/bgmac.c static int bgmac_dma_rx_skb_for_slot(struct bgmac *bgmac,
bgmac             336 drivers/net/ethernet/broadcom/bgmac.c 	struct device *dma_dev = bgmac->dma_dev;
bgmac             355 drivers/net/ethernet/broadcom/bgmac.c 		netdev_err(bgmac->net_dev, "DMA mapping error\n");
bgmac             367 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_rx_update_index(struct bgmac *bgmac,
bgmac             372 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_RX_INDEX,
bgmac             377 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_rx_setup_desc(struct bgmac *bgmac,
bgmac             412 drivers/net/ethernet/broadcom/bgmac.c static int bgmac_dma_rx_read(struct bgmac *bgmac, struct bgmac_dma_ring *ring,
bgmac             418 drivers/net/ethernet/broadcom/bgmac.c 	end_slot = bgmac_read(bgmac, ring->mmio_base + BGMAC_DMA_RX_STATUS);
bgmac             425 drivers/net/ethernet/broadcom/bgmac.c 		struct device *dma_dev = bgmac->dma_dev;
bgmac             435 drivers/net/ethernet/broadcom/bgmac.c 			if (bgmac_dma_rx_skb_for_slot(bgmac, slot)) {
bgmac             450 drivers/net/ethernet/broadcom/bgmac.c 				netdev_err(bgmac->net_dev, "Found poisoned packet at slot %d, DMA issue!\n",
bgmac             453 drivers/net/ethernet/broadcom/bgmac.c 				bgmac->net_dev->stats.rx_errors++;
bgmac             458 drivers/net/ethernet/broadcom/bgmac.c 				netdev_err(bgmac->net_dev, "Found oversized packet at slot %d, DMA issue!\n",
bgmac             461 drivers/net/ethernet/broadcom/bgmac.c 				bgmac->net_dev->stats.rx_length_errors++;
bgmac             462 drivers/net/ethernet/broadcom/bgmac.c 				bgmac->net_dev->stats.rx_errors++;
bgmac             471 drivers/net/ethernet/broadcom/bgmac.c 				netdev_err(bgmac->net_dev, "build_skb failed\n");
bgmac             473 drivers/net/ethernet/broadcom/bgmac.c 				bgmac->net_dev->stats.rx_errors++;
bgmac             482 drivers/net/ethernet/broadcom/bgmac.c 			skb->protocol = eth_type_trans(skb, bgmac->net_dev);
bgmac             483 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->net_dev->stats.rx_bytes += len;
bgmac             484 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->net_dev->stats.rx_packets++;
bgmac             485 drivers/net/ethernet/broadcom/bgmac.c 			napi_gro_receive(&bgmac->napi, skb);
bgmac             489 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_dma_rx_setup_desc(bgmac, ring, ring->start);
bgmac             498 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_dma_rx_update_index(bgmac, ring);
bgmac             504 drivers/net/ethernet/broadcom/bgmac.c static bool bgmac_dma_unaligned(struct bgmac *bgmac,
bgmac             510 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_TX_RINGLO,
bgmac             512 drivers/net/ethernet/broadcom/bgmac.c 		if (bgmac_read(bgmac, ring->mmio_base + BGMAC_DMA_TX_RINGLO))
bgmac             516 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_RX_RINGLO,
bgmac             518 drivers/net/ethernet/broadcom/bgmac.c 		if (bgmac_read(bgmac, ring->mmio_base + BGMAC_DMA_RX_RINGLO))
bgmac             525 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_tx_ring_free(struct bgmac *bgmac,
bgmac             528 drivers/net/ethernet/broadcom/bgmac.c 	struct device *dma_dev = bgmac->dma_dev;
bgmac             552 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_rx_ring_free(struct bgmac *bgmac,
bgmac             555 drivers/net/ethernet/broadcom/bgmac.c 	struct device *dma_dev = bgmac->dma_dev;
bgmac             572 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_ring_desc_free(struct bgmac *bgmac,
bgmac             576 drivers/net/ethernet/broadcom/bgmac.c 	struct device *dma_dev = bgmac->dma_dev;
bgmac             588 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_cleanup(struct bgmac *bgmac)
bgmac             593 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_dma_tx_ring_free(bgmac, &bgmac->tx_ring[i]);
bgmac             596 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_dma_rx_ring_free(bgmac, &bgmac->rx_ring[i]);
bgmac             599 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_dma_free(struct bgmac *bgmac)
bgmac             604 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_dma_ring_desc_free(bgmac, &bgmac->tx_ring[i],
bgmac             608 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_dma_ring_desc_free(bgmac, &bgmac->rx_ring[i],
bgmac             612 drivers/net/ethernet/broadcom/bgmac.c static int bgmac_dma_alloc(struct bgmac *bgmac)
bgmac             614 drivers/net/ethernet/broadcom/bgmac.c 	struct device *dma_dev = bgmac->dma_dev;
bgmac             624 drivers/net/ethernet/broadcom/bgmac.c 	if (!(bgmac->feature_flags & BGMAC_FEAT_IDM_MASK)) {
bgmac             625 drivers/net/ethernet/broadcom/bgmac.c 		if (!(bgmac_idm_read(bgmac, BCMA_IOST) & BCMA_IOST_DMA64)) {
bgmac             626 drivers/net/ethernet/broadcom/bgmac.c 			dev_err(bgmac->dev, "Core does not report 64-bit DMA\n");
bgmac             632 drivers/net/ethernet/broadcom/bgmac.c 		ring = &bgmac->tx_ring[i];
bgmac             641 drivers/net/ethernet/broadcom/bgmac.c 			dev_err(bgmac->dev, "Allocation of TX ring 0x%X failed\n",
bgmac             646 drivers/net/ethernet/broadcom/bgmac.c 		ring->unaligned = bgmac_dma_unaligned(bgmac, ring,
bgmac             657 drivers/net/ethernet/broadcom/bgmac.c 		ring = &bgmac->rx_ring[i];
bgmac             666 drivers/net/ethernet/broadcom/bgmac.c 			dev_err(bgmac->dev, "Allocation of RX ring 0x%X failed\n",
bgmac             671 drivers/net/ethernet/broadcom/bgmac.c 		ring->unaligned = bgmac_dma_unaligned(bgmac, ring,
bgmac             682 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_dma_free(bgmac);
bgmac             686 drivers/net/ethernet/broadcom/bgmac.c static int bgmac_dma_init(struct bgmac *bgmac)
bgmac             692 drivers/net/ethernet/broadcom/bgmac.c 		ring = &bgmac->tx_ring[i];
bgmac             695 drivers/net/ethernet/broadcom/bgmac.c 			bgmac_dma_tx_enable(bgmac, ring);
bgmac             696 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_TX_RINGLO,
bgmac             698 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_TX_RINGHI,
bgmac             701 drivers/net/ethernet/broadcom/bgmac.c 			bgmac_dma_tx_enable(bgmac, ring);
bgmac             710 drivers/net/ethernet/broadcom/bgmac.c 		ring = &bgmac->rx_ring[i];
bgmac             713 drivers/net/ethernet/broadcom/bgmac.c 			bgmac_dma_rx_enable(bgmac, ring);
bgmac             714 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_RX_RINGLO,
bgmac             716 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_write(bgmac, ring->mmio_base + BGMAC_DMA_RX_RINGHI,
bgmac             719 drivers/net/ethernet/broadcom/bgmac.c 			bgmac_dma_rx_enable(bgmac, ring);
bgmac             724 drivers/net/ethernet/broadcom/bgmac.c 			err = bgmac_dma_rx_skb_for_slot(bgmac, &ring->slots[j]);
bgmac             728 drivers/net/ethernet/broadcom/bgmac.c 			bgmac_dma_rx_setup_desc(bgmac, ring, j);
bgmac             731 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_dma_rx_update_index(bgmac, ring);
bgmac             737 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_dma_cleanup(bgmac);
bgmac             749 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_cmdcfg_maskset(struct bgmac *bgmac, u32 mask, u32 set,
bgmac             752 drivers/net/ethernet/broadcom/bgmac.c 	u32 cmdcfg = bgmac_read(bgmac, BGMAC_CMDCFG);
bgmac             756 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_CMDCFG_SR_REV4)
bgmac             761 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_set(bgmac, BGMAC_CMDCFG, cmdcfg_sr);
bgmac             765 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_write(bgmac, BGMAC_CMDCFG, new_val);
bgmac             767 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_mask(bgmac, BGMAC_CMDCFG, ~cmdcfg_sr);
bgmac             771 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_write_mac_address(struct bgmac *bgmac, u8 *addr)
bgmac             776 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, BGMAC_MACADDR_HIGH, tmp);
bgmac             778 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, BGMAC_MACADDR_LOW, tmp);
bgmac             783 drivers/net/ethernet/broadcom/bgmac.c 	struct bgmac *bgmac = netdev_priv(net_dev);
bgmac             786 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_cmdcfg_maskset(bgmac, ~0, BGMAC_CMDCFG_PROM, true);
bgmac             788 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_cmdcfg_maskset(bgmac, ~BGMAC_CMDCFG_PROM, 0, true);
bgmac             792 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_chip_stats_update(struct bgmac *bgmac)
bgmac             796 drivers/net/ethernet/broadcom/bgmac.c 	if (!(bgmac->feature_flags & BGMAC_FEAT_NO_CLR_MIB)) {
bgmac             798 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->mib_tx_regs[i] =
bgmac             799 drivers/net/ethernet/broadcom/bgmac.c 				bgmac_read(bgmac,
bgmac             802 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->mib_rx_regs[i] =
bgmac             803 drivers/net/ethernet/broadcom/bgmac.c 				bgmac_read(bgmac,
bgmac             811 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_clear_mib(struct bgmac *bgmac)
bgmac             815 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_NO_CLR_MIB)
bgmac             818 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_set(bgmac, BGMAC_DEV_CTL, BGMAC_DC_MROR);
bgmac             820 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_read(bgmac, BGMAC_TX_GOOD_OCTETS + (i * 4));
bgmac             822 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_read(bgmac, BGMAC_RX_GOOD_OCTETS + (i * 4));
bgmac             826 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_mac_speed(struct bgmac *bgmac)
bgmac             831 drivers/net/ethernet/broadcom/bgmac.c 	switch (bgmac->mac_speed) {
bgmac             845 drivers/net/ethernet/broadcom/bgmac.c 		dev_err(bgmac->dev, "Unsupported speed: %d\n",
bgmac             846 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->mac_speed);
bgmac             849 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->mac_duplex == DUPLEX_HALF)
bgmac             852 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_cmdcfg_maskset(bgmac, mask, set, true);
bgmac             855 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_miiconfig(struct bgmac *bgmac)
bgmac             857 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_FORCE_SPEED_2500) {
bgmac             858 drivers/net/ethernet/broadcom/bgmac.c 		if (!(bgmac->feature_flags & BGMAC_FEAT_IDM_MASK)) {
bgmac             859 drivers/net/ethernet/broadcom/bgmac.c 			bgmac_idm_write(bgmac, BCMA_IOCTL,
bgmac             860 drivers/net/ethernet/broadcom/bgmac.c 					bgmac_idm_read(bgmac, BCMA_IOCTL) |
bgmac             863 drivers/net/ethernet/broadcom/bgmac.c 		bgmac->mac_speed = SPEED_2500;
bgmac             864 drivers/net/ethernet/broadcom/bgmac.c 		bgmac->mac_duplex = DUPLEX_FULL;
bgmac             865 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_mac_speed(bgmac);
bgmac             869 drivers/net/ethernet/broadcom/bgmac.c 		imode = (bgmac_read(bgmac, BGMAC_DEV_STATUS) &
bgmac             872 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->mac_speed = SPEED_100;
bgmac             873 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->mac_duplex = DUPLEX_FULL;
bgmac             874 drivers/net/ethernet/broadcom/bgmac.c 			bgmac_mac_speed(bgmac);
bgmac             879 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_chip_reset_idm_config(struct bgmac *bgmac)
bgmac             883 drivers/net/ethernet/broadcom/bgmac.c 	iost = bgmac_idm_read(bgmac, BCMA_IOST);
bgmac             884 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_IOST_ATTACHED)
bgmac             888 drivers/net/ethernet/broadcom/bgmac.c 	if (!(bgmac->feature_flags & BGMAC_FEAT_NO_RESET)) {
bgmac             893 drivers/net/ethernet/broadcom/bgmac.c 			if (!bgmac->has_robosw)
bgmac             896 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_clk_enable(bgmac, flags);
bgmac             899 drivers/net/ethernet/broadcom/bgmac.c 	if (iost & BGMAC_BCMA_IOST_ATTACHED && !bgmac->has_robosw)
bgmac             900 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_idm_write(bgmac, BCMA_IOCTL,
bgmac             901 drivers/net/ethernet/broadcom/bgmac.c 				bgmac_idm_read(bgmac, BCMA_IOCTL) &
bgmac             906 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_chip_reset(struct bgmac *bgmac)
bgmac             911 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac_clk_enabled(bgmac)) {
bgmac             912 drivers/net/ethernet/broadcom/bgmac.c 		if (!bgmac->stats_grabbed) {
bgmac             914 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->stats_grabbed = true;
bgmac             918 drivers/net/ethernet/broadcom/bgmac.c 			bgmac_dma_tx_reset(bgmac, &bgmac->tx_ring[i]);
bgmac             920 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_cmdcfg_maskset(bgmac, ~0, BGMAC_CMDCFG_ML, false);
bgmac             924 drivers/net/ethernet/broadcom/bgmac.c 			bgmac_dma_rx_reset(bgmac, &bgmac->rx_ring[i]);
bgmac             929 drivers/net/ethernet/broadcom/bgmac.c 	if (!(bgmac->feature_flags & BGMAC_FEAT_IDM_MASK))
bgmac             930 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_chip_reset_idm_config(bgmac);
bgmac             933 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_MISC_PLL_REQ) {
bgmac             934 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_set(bgmac, BCMA_CLKCTLST,
bgmac             936 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_wait_value(bgmac, BCMA_CLKCTLST,
bgmac             942 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_SW_TYPE_PHY) {
bgmac             950 drivers/net/ethernet/broadcom/bgmac.c 				dev_err(bgmac->dev, "Failed to parse et_swtype (%s)\n",
bgmac             955 drivers/net/ethernet/broadcom/bgmac.c 		} else if (bgmac->feature_flags & BGMAC_FEAT_SW_TYPE_EPHYRMII) {
bgmac             958 drivers/net/ethernet/broadcom/bgmac.c 		} else if (bgmac->feature_flags & BGMAC_FEAT_SW_TYPE_RGMII) {
bgmac             962 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_cco_ctl_maskset(bgmac, 1, ~(BGMAC_CHIPCTL_1_IF_TYPE_MASK |
bgmac             965 drivers/net/ethernet/broadcom/bgmac.c 	} else if (bgmac->feature_flags & BGMAC_FEAT_CC4_IF_SW_TYPE) {
bgmac             973 drivers/net/ethernet/broadcom/bgmac.c 				dev_err(bgmac->dev, "Failed to parse et_swtype (%s)\n",
bgmac             976 drivers/net/ethernet/broadcom/bgmac.c 		} else if (bgmac->feature_flags & BGMAC_FEAT_CC4_IF_SW_TYPE_RGMII) {
bgmac             980 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_cco_ctl_maskset(bgmac, 4, ~(BGMAC_CHIPCTL_4_IF_TYPE_MASK |
bgmac             983 drivers/net/ethernet/broadcom/bgmac.c 	} else if (bgmac->feature_flags & BGMAC_FEAT_CC7_IF_TYPE_RGMII) {
bgmac             984 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_cco_ctl_maskset(bgmac, 7, ~BGMAC_CHIPCTL_7_IF_TYPE_MASK,
bgmac             993 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_CMDCFG_SR_REV4)
bgmac             998 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_cmdcfg_maskset(bgmac,
bgmac            1017 drivers/net/ethernet/broadcom/bgmac.c 	bgmac->mac_speed = SPEED_UNKNOWN;
bgmac            1018 drivers/net/ethernet/broadcom/bgmac.c 	bgmac->mac_duplex = DUPLEX_UNKNOWN;
bgmac            1020 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_clear_mib(bgmac);
bgmac            1021 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_CMN_PHY_CTL)
bgmac            1022 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_cmn_maskset32(bgmac, BCMA_GMAC_CMN_PHY_CTL, ~0,
bgmac            1025 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_set(bgmac, BGMAC_PHY_CNTL, BGMAC_PC_MTE);
bgmac            1026 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_miiconfig(bgmac);
bgmac            1027 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->mii_bus)
bgmac            1028 drivers/net/ethernet/broadcom/bgmac.c 		bgmac->mii_bus->reset(bgmac->mii_bus);
bgmac            1030 drivers/net/ethernet/broadcom/bgmac.c 	netdev_reset_queue(bgmac->net_dev);
bgmac            1033 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_chip_intrs_on(struct bgmac *bgmac)
bgmac            1035 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, BGMAC_INT_MASK, bgmac->int_mask);
bgmac            1038 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_chip_intrs_off(struct bgmac *bgmac)
bgmac            1040 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, BGMAC_INT_MASK, 0);
bgmac            1041 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_read(bgmac, BGMAC_INT_MASK);
bgmac            1045 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_enable(struct bgmac *bgmac)
bgmac            1051 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_CMDCFG_SR_REV4)
bgmac            1056 drivers/net/ethernet/broadcom/bgmac.c 	cmdcfg = bgmac_read(bgmac, BGMAC_CMDCFG);
bgmac            1057 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_cmdcfg_maskset(bgmac, ~(BGMAC_CMDCFG_TE | BGMAC_CMDCFG_RE),
bgmac            1061 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, BGMAC_CMDCFG, cmdcfg);
bgmac            1063 drivers/net/ethernet/broadcom/bgmac.c 	mode = (bgmac_read(bgmac, BGMAC_DEV_STATUS) & BGMAC_DS_MM_MASK) >>
bgmac            1065 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_CLKCTLST || mode != 0)
bgmac            1066 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_set(bgmac, BCMA_CLKCTLST, BCMA_CLKCTLST_FORCEHT);
bgmac            1067 drivers/net/ethernet/broadcom/bgmac.c 	if (!(bgmac->feature_flags & BGMAC_FEAT_CLKCTLST) && mode == 2)
bgmac            1068 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_cco_ctl_maskset(bgmac, 1, ~0,
bgmac            1071 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & (BGMAC_FEAT_FLW_CTRL1 |
bgmac            1075 drivers/net/ethernet/broadcom/bgmac.c 		if (bgmac->feature_flags & BGMAC_FEAT_FLW_CTRL1)
bgmac            1080 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_write(bgmac, BGMAC_FLOW_CTL_THRESH, fl_ctl);
bgmac            1081 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_write(bgmac, BGMAC_PAUSE_CTL, 0x27fff);
bgmac            1084 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->feature_flags & BGMAC_FEAT_SET_RXQ_CLK) {
bgmac            1089 drivers/net/ethernet/broadcom/bgmac.c 		rxq_ctl = bgmac_read(bgmac, BGMAC_RXQ_CTL);
bgmac            1091 drivers/net/ethernet/broadcom/bgmac.c 		bp_clk = bgmac_get_bus_clock(bgmac) / 1000000;
bgmac            1094 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_write(bgmac, BGMAC_RXQ_CTL, rxq_ctl);
bgmac            1099 drivers/net/ethernet/broadcom/bgmac.c static void bgmac_chip_init(struct bgmac *bgmac)
bgmac            1102 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, BGMAC_INT_STATUS, ~0);
bgmac            1105 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, BGMAC_INT_RECV_LAZY, 1 << BGMAC_IRL_FC_SHIFT);
bgmac            1108 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_cmdcfg_maskset(bgmac, ~BGMAC_CMDCFG_RPI, 0, true);
bgmac            1110 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_set_rx_mode(bgmac->net_dev);
bgmac            1112 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write_mac_address(bgmac, bgmac->net_dev->dev_addr);
bgmac            1114 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac->loopback)
bgmac            1115 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_cmdcfg_maskset(bgmac, ~0, BGMAC_CMDCFG_ML, false);
bgmac            1117 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_cmdcfg_maskset(bgmac, ~BGMAC_CMDCFG_ML, 0, false);
bgmac            1119 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, BGMAC_RXMAX_LENGTH, 32 + ETHER_MAX_LEN);
bgmac            1121 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_chip_intrs_on(bgmac);
bgmac            1123 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_enable(bgmac);
bgmac            1128 drivers/net/ethernet/broadcom/bgmac.c 	struct bgmac *bgmac = netdev_priv(dev_id);
bgmac            1130 drivers/net/ethernet/broadcom/bgmac.c 	u32 int_status = bgmac_read(bgmac, BGMAC_INT_STATUS);
bgmac            1131 drivers/net/ethernet/broadcom/bgmac.c 	int_status &= bgmac->int_mask;
bgmac            1138 drivers/net/ethernet/broadcom/bgmac.c 		dev_err(bgmac->dev, "Unknown IRQs: 0x%08X\n", int_status);
bgmac            1141 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_chip_intrs_off(bgmac);
bgmac            1143 drivers/net/ethernet/broadcom/bgmac.c 	napi_schedule(&bgmac->napi);
bgmac            1150 drivers/net/ethernet/broadcom/bgmac.c 	struct bgmac *bgmac = container_of(napi, struct bgmac, napi);
bgmac            1154 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write(bgmac, BGMAC_INT_STATUS, ~0);
bgmac            1156 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_dma_tx_free(bgmac, &bgmac->tx_ring[0]);
bgmac            1157 drivers/net/ethernet/broadcom/bgmac.c 	handled += bgmac_dma_rx_read(bgmac, &bgmac->rx_ring[0], weight);
bgmac            1160 drivers/net/ethernet/broadcom/bgmac.c 	if (bgmac_read(bgmac, BGMAC_INT_STATUS) & (BGMAC_IS_TX0 | BGMAC_IS_RX))
bgmac            1165 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_chip_intrs_on(bgmac);
bgmac            1177 drivers/net/ethernet/broadcom/bgmac.c 	struct bgmac *bgmac = netdev_priv(net_dev);
bgmac            1180 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_chip_reset(bgmac);
bgmac            1182 drivers/net/ethernet/broadcom/bgmac.c 	err = bgmac_dma_init(bgmac);
bgmac            1187 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_chip_init(bgmac);
bgmac            1189 drivers/net/ethernet/broadcom/bgmac.c 	err = request_irq(bgmac->irq, bgmac_interrupt, IRQF_SHARED,
bgmac            1192 drivers/net/ethernet/broadcom/bgmac.c 		dev_err(bgmac->dev, "IRQ request error: %d!\n", err);
bgmac            1193 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_dma_cleanup(bgmac);
bgmac            1196 drivers/net/ethernet/broadcom/bgmac.c 	napi_enable(&bgmac->napi);
bgmac            1207 drivers/net/ethernet/broadcom/bgmac.c 	struct bgmac *bgmac = netdev_priv(net_dev);
bgmac            1213 drivers/net/ethernet/broadcom/bgmac.c 	napi_disable(&bgmac->napi);
bgmac            1214 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_chip_intrs_off(bgmac);
bgmac            1215 drivers/net/ethernet/broadcom/bgmac.c 	free_irq(bgmac->irq, net_dev);
bgmac            1217 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_chip_reset(bgmac);
bgmac            1218 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_dma_cleanup(bgmac);
bgmac            1226 drivers/net/ethernet/broadcom/bgmac.c 	struct bgmac *bgmac = netdev_priv(net_dev);
bgmac            1230 drivers/net/ethernet/broadcom/bgmac.c 	ring = &bgmac->tx_ring[0];
bgmac            1231 drivers/net/ethernet/broadcom/bgmac.c 	return bgmac_dma_tx_add(bgmac, ring, skb);
bgmac            1236 drivers/net/ethernet/broadcom/bgmac.c 	struct bgmac *bgmac = netdev_priv(net_dev);
bgmac            1245 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_write_mac_address(bgmac, net_dev->dev_addr);
bgmac            1376 drivers/net/ethernet/broadcom/bgmac.c 	struct bgmac *bgmac = netdev_priv(dev);
bgmac            1388 drivers/net/ethernet/broadcom/bgmac.c 			val = (u64)bgmac_read(bgmac, s->offset + 4) << 32;
bgmac            1389 drivers/net/ethernet/broadcom/bgmac.c 		val |= bgmac_read(bgmac, s->offset);
bgmac            1416 drivers/net/ethernet/broadcom/bgmac.c 	struct bgmac *bgmac = netdev_priv(net_dev);
bgmac            1421 drivers/net/ethernet/broadcom/bgmac.c 		if (phy_dev->speed != bgmac->mac_speed) {
bgmac            1422 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->mac_speed = phy_dev->speed;
bgmac            1426 drivers/net/ethernet/broadcom/bgmac.c 		if (phy_dev->duplex != bgmac->mac_duplex) {
bgmac            1427 drivers/net/ethernet/broadcom/bgmac.c 			bgmac->mac_duplex = phy_dev->duplex;
bgmac            1433 drivers/net/ethernet/broadcom/bgmac.c 		bgmac_mac_speed(bgmac);
bgmac            1439 drivers/net/ethernet/broadcom/bgmac.c int bgmac_phy_connect_direct(struct bgmac *bgmac)
bgmac            1451 drivers/net/ethernet/broadcom/bgmac.c 		dev_err(bgmac->dev, "Failed to register fixed PHY device\n");
bgmac            1455 drivers/net/ethernet/broadcom/bgmac.c 	err = phy_connect_direct(bgmac->net_dev, phy_dev, bgmac_adjust_link,
bgmac            1458 drivers/net/ethernet/broadcom/bgmac.c 		dev_err(bgmac->dev, "Connecting PHY failed\n");
bgmac            1466 drivers/net/ethernet/broadcom/bgmac.c struct bgmac *bgmac_alloc(struct device *dev)
bgmac            1469 drivers/net/ethernet/broadcom/bgmac.c 	struct bgmac *bgmac;
bgmac            1472 drivers/net/ethernet/broadcom/bgmac.c 	net_dev = devm_alloc_etherdev(dev, sizeof(*bgmac));
bgmac            1479 drivers/net/ethernet/broadcom/bgmac.c 	bgmac = netdev_priv(net_dev);
bgmac            1480 drivers/net/ethernet/broadcom/bgmac.c 	bgmac->dev = dev;
bgmac            1481 drivers/net/ethernet/broadcom/bgmac.c 	bgmac->net_dev = net_dev;
bgmac            1483 drivers/net/ethernet/broadcom/bgmac.c 	return bgmac;
bgmac            1487 drivers/net/ethernet/broadcom/bgmac.c int bgmac_enet_probe(struct bgmac *bgmac)
bgmac            1489 drivers/net/ethernet/broadcom/bgmac.c 	struct net_device *net_dev = bgmac->net_dev;
bgmac            1492 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_chip_intrs_off(bgmac);
bgmac            1494 drivers/net/ethernet/broadcom/bgmac.c 	net_dev->irq = bgmac->irq;
bgmac            1495 drivers/net/ethernet/broadcom/bgmac.c 	SET_NETDEV_DEV(net_dev, bgmac->dev);
bgmac            1496 drivers/net/ethernet/broadcom/bgmac.c 	dev_set_drvdata(bgmac->dev, bgmac);
bgmac            1499 drivers/net/ethernet/broadcom/bgmac.c 		dev_err(bgmac->dev, "Invalid MAC addr: %pM\n",
bgmac            1502 drivers/net/ethernet/broadcom/bgmac.c 		dev_warn(bgmac->dev, "Using random MAC: %pM\n",
bgmac            1509 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_clk_enable(bgmac, 0);
bgmac            1512 drivers/net/ethernet/broadcom/bgmac.c 	if (!(bgmac->feature_flags & BGMAC_FEAT_IDM_MASK)) {
bgmac            1513 drivers/net/ethernet/broadcom/bgmac.c 		if (bgmac->feature_flags & BGMAC_FEAT_IRQ_ID_OOB_6)
bgmac            1514 drivers/net/ethernet/broadcom/bgmac.c 			bgmac_idm_write(bgmac, BCMA_OOB_SEL_OUT_A30, 0x86);
bgmac            1517 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_chip_reset(bgmac);
bgmac            1519 drivers/net/ethernet/broadcom/bgmac.c 	err = bgmac_dma_alloc(bgmac);
bgmac            1521 drivers/net/ethernet/broadcom/bgmac.c 		dev_err(bgmac->dev, "Unable to alloc memory for DMA\n");
bgmac            1525 drivers/net/ethernet/broadcom/bgmac.c 	bgmac->int_mask = BGMAC_IS_ERRMASK | BGMAC_IS_RX | BGMAC_IS_TX_MASK;
bgmac            1527 drivers/net/ethernet/broadcom/bgmac.c 		bgmac->int_mask &= ~BGMAC_IS_TX_MASK;
bgmac            1529 drivers/net/ethernet/broadcom/bgmac.c 	netif_napi_add(net_dev, &bgmac->napi, bgmac_poll, BGMAC_WEIGHT);
bgmac            1531 drivers/net/ethernet/broadcom/bgmac.c 	err = bgmac_phy_connect(bgmac);
bgmac            1533 drivers/net/ethernet/broadcom/bgmac.c 		dev_err(bgmac->dev, "Cannot connect to phy\n");
bgmac            1541 drivers/net/ethernet/broadcom/bgmac.c 	err = register_netdev(bgmac->net_dev);
bgmac            1543 drivers/net/ethernet/broadcom/bgmac.c 		dev_err(bgmac->dev, "Cannot register net device\n");
bgmac            1554 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_dma_free(bgmac);
bgmac            1561 drivers/net/ethernet/broadcom/bgmac.c void bgmac_enet_remove(struct bgmac *bgmac)
bgmac            1563 drivers/net/ethernet/broadcom/bgmac.c 	unregister_netdev(bgmac->net_dev);
bgmac            1564 drivers/net/ethernet/broadcom/bgmac.c 	phy_disconnect(bgmac->net_dev->phydev);
bgmac            1565 drivers/net/ethernet/broadcom/bgmac.c 	netif_napi_del(&bgmac->napi);
bgmac            1566 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_dma_free(bgmac);
bgmac            1567 drivers/net/ethernet/broadcom/bgmac.c 	free_netdev(bgmac->net_dev);
bgmac            1571 drivers/net/ethernet/broadcom/bgmac.c int bgmac_enet_suspend(struct bgmac *bgmac)
bgmac            1573 drivers/net/ethernet/broadcom/bgmac.c 	if (!netif_running(bgmac->net_dev))
bgmac            1576 drivers/net/ethernet/broadcom/bgmac.c 	phy_stop(bgmac->net_dev->phydev);
bgmac            1578 drivers/net/ethernet/broadcom/bgmac.c 	netif_stop_queue(bgmac->net_dev);
bgmac            1580 drivers/net/ethernet/broadcom/bgmac.c 	napi_disable(&bgmac->napi);
bgmac            1582 drivers/net/ethernet/broadcom/bgmac.c 	netif_tx_lock(bgmac->net_dev);
bgmac            1583 drivers/net/ethernet/broadcom/bgmac.c 	netif_device_detach(bgmac->net_dev);
bgmac            1584 drivers/net/ethernet/broadcom/bgmac.c 	netif_tx_unlock(bgmac->net_dev);
bgmac            1586 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_chip_intrs_off(bgmac);
bgmac            1587 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_chip_reset(bgmac);
bgmac            1588 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_dma_cleanup(bgmac);
bgmac            1594 drivers/net/ethernet/broadcom/bgmac.c int bgmac_enet_resume(struct bgmac *bgmac)
bgmac            1598 drivers/net/ethernet/broadcom/bgmac.c 	if (!netif_running(bgmac->net_dev))
bgmac            1601 drivers/net/ethernet/broadcom/bgmac.c 	rc = bgmac_dma_init(bgmac);
bgmac            1605 drivers/net/ethernet/broadcom/bgmac.c 	bgmac_chip_init(bgmac);
bgmac            1607 drivers/net/ethernet/broadcom/bgmac.c 	napi_enable(&bgmac->napi);
bgmac            1609 drivers/net/ethernet/broadcom/bgmac.c 	netif_tx_lock(bgmac->net_dev);
bgmac            1610 drivers/net/ethernet/broadcom/bgmac.c 	netif_device_attach(bgmac->net_dev);
bgmac            1611 drivers/net/ethernet/broadcom/bgmac.c 	netif_tx_unlock(bgmac->net_dev);
bgmac            1613 drivers/net/ethernet/broadcom/bgmac.c 	netif_start_queue(bgmac->net_dev);
bgmac            1615 drivers/net/ethernet/broadcom/bgmac.c 	phy_start(bgmac->net_dev->phydev);
bgmac             523 drivers/net/ethernet/broadcom/bgmac.h 	u32 (*read)(struct bgmac *bgmac, u16 offset);
bgmac             524 drivers/net/ethernet/broadcom/bgmac.h 	void (*write)(struct bgmac *bgmac, u16 offset, u32 value);
bgmac             525 drivers/net/ethernet/broadcom/bgmac.h 	u32 (*idm_read)(struct bgmac *bgmac, u16 offset);
bgmac             526 drivers/net/ethernet/broadcom/bgmac.h 	void (*idm_write)(struct bgmac *bgmac, u16 offset, u32 value);
bgmac             527 drivers/net/ethernet/broadcom/bgmac.h 	bool (*clk_enabled)(struct bgmac *bgmac);
bgmac             528 drivers/net/ethernet/broadcom/bgmac.h 	void (*clk_enable)(struct bgmac *bgmac, u32 flags);
bgmac             529 drivers/net/ethernet/broadcom/bgmac.h 	void (*cco_ctl_maskset)(struct bgmac *bgmac, u32 offset, u32 mask,
bgmac             531 drivers/net/ethernet/broadcom/bgmac.h 	u32 (*get_bus_clock)(struct bgmac *bgmac);
bgmac             532 drivers/net/ethernet/broadcom/bgmac.h 	void (*cmn_maskset32)(struct bgmac *bgmac, u16 offset, u32 mask,
bgmac             534 drivers/net/ethernet/broadcom/bgmac.h 	int (*phy_connect)(struct bgmac *bgmac);
bgmac             537 drivers/net/ethernet/broadcom/bgmac.h struct bgmac *bgmac_alloc(struct device *dev);
bgmac             538 drivers/net/ethernet/broadcom/bgmac.h int bgmac_enet_probe(struct bgmac *bgmac);
bgmac             539 drivers/net/ethernet/broadcom/bgmac.h void bgmac_enet_remove(struct bgmac *bgmac);
bgmac             541 drivers/net/ethernet/broadcom/bgmac.h int bgmac_phy_connect_direct(struct bgmac *bgmac);
bgmac             542 drivers/net/ethernet/broadcom/bgmac.h int bgmac_enet_suspend(struct bgmac *bgmac);
bgmac             543 drivers/net/ethernet/broadcom/bgmac.h int bgmac_enet_resume(struct bgmac *bgmac);
bgmac             545 drivers/net/ethernet/broadcom/bgmac.h struct mii_bus *bcma_mdio_mii_register(struct bgmac *bgmac);
bgmac             548 drivers/net/ethernet/broadcom/bgmac.h static inline u32 bgmac_read(struct bgmac *bgmac, u16 offset)
bgmac             550 drivers/net/ethernet/broadcom/bgmac.h 	return bgmac->read(bgmac, offset);
bgmac             553 drivers/net/ethernet/broadcom/bgmac.h static inline void bgmac_write(struct bgmac *bgmac, u16 offset, u32 value)
bgmac             555 drivers/net/ethernet/broadcom/bgmac.h 	bgmac->write(bgmac, offset, value);
bgmac             558 drivers/net/ethernet/broadcom/bgmac.h static inline u32 bgmac_idm_read(struct bgmac *bgmac, u16 offset)
bgmac             560 drivers/net/ethernet/broadcom/bgmac.h 	return bgmac->idm_read(bgmac, offset);
bgmac             563 drivers/net/ethernet/broadcom/bgmac.h static inline void bgmac_idm_write(struct bgmac *bgmac, u16 offset, u32 value)
bgmac             565 drivers/net/ethernet/broadcom/bgmac.h 	bgmac->idm_write(bgmac, offset, value);
bgmac             568 drivers/net/ethernet/broadcom/bgmac.h static inline bool bgmac_clk_enabled(struct bgmac *bgmac)
bgmac             570 drivers/net/ethernet/broadcom/bgmac.h 	return bgmac->clk_enabled(bgmac);
bgmac             573 drivers/net/ethernet/broadcom/bgmac.h static inline void bgmac_clk_enable(struct bgmac *bgmac, u32 flags)
bgmac             575 drivers/net/ethernet/broadcom/bgmac.h 	bgmac->clk_enable(bgmac, flags);
bgmac             578 drivers/net/ethernet/broadcom/bgmac.h static inline void bgmac_cco_ctl_maskset(struct bgmac *bgmac, u32 offset,
bgmac             581 drivers/net/ethernet/broadcom/bgmac.h 	bgmac->cco_ctl_maskset(bgmac, offset, mask, set);
bgmac             584 drivers/net/ethernet/broadcom/bgmac.h static inline u32 bgmac_get_bus_clock(struct bgmac *bgmac)
bgmac             586 drivers/net/ethernet/broadcom/bgmac.h 	return bgmac->get_bus_clock(bgmac);
bgmac             589 drivers/net/ethernet/broadcom/bgmac.h static inline void bgmac_cmn_maskset32(struct bgmac *bgmac, u16 offset,
bgmac             592 drivers/net/ethernet/broadcom/bgmac.h 	bgmac->cmn_maskset32(bgmac, offset, mask, set);
bgmac             595 drivers/net/ethernet/broadcom/bgmac.h static inline void bgmac_maskset(struct bgmac *bgmac, u16 offset, u32 mask,
bgmac             598 drivers/net/ethernet/broadcom/bgmac.h 	bgmac_write(bgmac, offset, (bgmac_read(bgmac, offset) & mask) | set);
bgmac             601 drivers/net/ethernet/broadcom/bgmac.h static inline void bgmac_mask(struct bgmac *bgmac, u16 offset, u32 mask)
bgmac             603 drivers/net/ethernet/broadcom/bgmac.h 	bgmac_maskset(bgmac, offset, mask, 0);
bgmac             606 drivers/net/ethernet/broadcom/bgmac.h static inline void bgmac_set(struct bgmac *bgmac, u16 offset, u32 set)
bgmac             608 drivers/net/ethernet/broadcom/bgmac.h 	bgmac_maskset(bgmac, offset, ~0, set);
bgmac             611 drivers/net/ethernet/broadcom/bgmac.h static inline int bgmac_phy_connect(struct bgmac *bgmac)
bgmac             613 drivers/net/ethernet/broadcom/bgmac.h 	return bgmac->phy_connect(bgmac);