Lines Matching refs:core

29 static bool bgmac_wait_value(struct bcma_device *core, u16 reg, u32 mask,  in bgmac_wait_value()  argument
36 val = bcma_read32(core, reg); in bgmac_wait_value()
80 if (!bgmac_wait_value(bgmac->core, in bgmac_dma_tx_reset()
100 if (bgmac->core->id.rev >= 4) { in bgmac_dma_tx_enable()
143 struct device *dma_dev = bgmac->core->dma_dev; in bgmac_dma_tx_add()
243 struct device *dma_dev = bgmac->core->dma_dev; in bgmac_dma_tx_free()
303 if (!bgmac_wait_value(bgmac->core, in bgmac_dma_rx_reset()
317 if (bgmac->core->id.rev >= 4) { in bgmac_dma_rx_enable()
338 struct device *dma_dev = bgmac->core->dma_dev; in bgmac_dma_rx_skb_for_slot()
427 struct device *dma_dev = bgmac->core->dma_dev; in bgmac_dma_rx_read()
519 struct device *dma_dev = bgmac->core->dma_dev; in bgmac_dma_tx_ring_free()
545 struct device *dma_dev = bgmac->core->dma_dev; in bgmac_dma_rx_ring_free()
566 struct device *dma_dev = bgmac->core->dma_dev; in bgmac_dma_ring_desc_free()
604 struct device *dma_dev = bgmac->core->dma_dev; in bgmac_dma_alloc()
615 if (!(bcma_aread32(bgmac->core, BCMA_IOST) & BCMA_IOST_DMA64)) { in bgmac_dma_alloc()
737 struct bcma_device *core; in bgmac_phy_read() local
754 if (bgmac->core->id.id == BCMA_CORE_4706_MAC_GBIT) { in bgmac_phy_read()
755 core = bgmac->core->bus->drv_gmac_cmn.core; in bgmac_phy_read()
759 core = bgmac->core; in bgmac_phy_read()
764 tmp = bcma_read32(core, phy_ctl_addr); in bgmac_phy_read()
767 bcma_write32(core, phy_ctl_addr, tmp); in bgmac_phy_read()
772 bcma_write32(core, phy_access_addr, tmp); in bgmac_phy_read()
774 if (!bgmac_wait_value(core, phy_access_addr, BGMAC_PA_START, 0, 1000)) { in bgmac_phy_read()
780 return bcma_read32(core, phy_access_addr) & BGMAC_PA_DATA_MASK; in bgmac_phy_read()
786 struct bcma_device *core; in bgmac_phy_write() local
791 if (bgmac->core->id.id == BCMA_CORE_4706_MAC_GBIT) { in bgmac_phy_write()
792 core = bgmac->core->bus->drv_gmac_cmn.core; in bgmac_phy_write()
796 core = bgmac->core; in bgmac_phy_write()
801 tmp = bcma_read32(core, phy_ctl_addr); in bgmac_phy_write()
804 bcma_write32(core, phy_ctl_addr, tmp); in bgmac_phy_write()
815 bcma_write32(core, phy_access_addr, tmp); in bgmac_phy_write()
817 if (!bgmac_wait_value(core, phy_access_addr, BGMAC_PA_START, 0, 1000)) { in bgmac_phy_write()
829 struct bcma_chipinfo *ci = &bgmac->core->bus->chipinfo; in bgmac_phy_init()
830 struct bcma_drv_cc *cc = &bgmac->core->bus->drv_cc; in bgmac_phy_init()
889 bgmac_set(bgmac, BGMAC_CMDCFG, BGMAC_CMDCFG_SR(bgmac->core->id.rev)); in bgmac_cmdcfg_maskset()
895 bgmac_mask(bgmac, BGMAC_CMDCFG, ~BGMAC_CMDCFG_SR(bgmac->core->id.rev)); in bgmac_cmdcfg_maskset()
924 if (bgmac->core->id.id != BCMA_CORE_4706_MAC_GBIT) {
943 if (bgmac->core->id.id == BCMA_CORE_4706_MAC_GBIT) in bgmac_clear_mib()
984 struct bcma_device *core = bgmac->core; in bgmac_miiconfig() local
985 struct bcma_chipinfo *ci = &core->bus->chipinfo; in bgmac_miiconfig()
990 bcma_awrite32(core, BCMA_IOCTL, in bgmac_miiconfig()
991 bcma_aread32(core, BCMA_IOCTL) | 0x40 | in bgmac_miiconfig()
1010 struct bcma_device *core = bgmac->core; in bgmac_chip_reset() local
1011 struct bcma_bus *bus = core->bus; in bgmac_chip_reset()
1017 if (bcma_core_is_enabled(core)) { in bgmac_chip_reset()
1035 iost = bcma_aread32(core, BCMA_IOST); in bgmac_chip_reset()
1049 bcma_core_enable(core, flags); in bgmac_chip_reset()
1053 if (core->id.rev > 2 && in bgmac_chip_reset()
1058 bgmac_wait_value(bgmac->core, BCMA_CLKCTLST, in bgmac_chip_reset()
1067 struct bcma_drv_cc *cc = &bgmac->core->bus->drv_cc; in bgmac_chip_reset()
1095 bcma_awrite32(core, BCMA_IOCTL, in bgmac_chip_reset()
1096 bcma_aread32(core, BCMA_IOCTL) & in bgmac_chip_reset()
1121 BGMAC_CMDCFG_SR(core->id.rev), in bgmac_chip_reset()
1127 if (core->id.id == BCMA_CORE_4706_MAC_GBIT) in bgmac_chip_reset()
1152 struct bcma_chipinfo *ci = &bgmac->core->bus->chipinfo; in bgmac_enable()
1162 BGMAC_CMDCFG_SR(bgmac->core->id.rev), true); in bgmac_enable()
1172 bcma_chipco_chipctl_maskset(&bgmac->core->bus->drv_cc, 1, ~0, in bgmac_enable()
1195 bp_clk = bcma_pmu_get_bus_clock(&bgmac->core->bus->drv_cc) / in bgmac_enable()
1291 err = request_irq(bgmac->core->irq, bgmac_interrupt, IRQF_SHARED, in bgmac_open()
1316 free_irq(bgmac->core->irq, net_dev); in bgmac_stop()
1470 struct bcma_chipinfo *ci = &bgmac->core->bus->chipinfo; in bgmac_mii_register()
1485 sprintf(mii_bus->id, "%s-%d-%d", "bgmac", bgmac->core->bus->num, in bgmac_mii_register()
1486 bgmac->core->core_unit); in bgmac_mii_register()
1490 mii_bus->parent = &bgmac->core->dev; in bgmac_mii_register()
1546 static int bgmac_probe(struct bcma_device *core) in bgmac_probe() argument
1548 struct bcma_chipinfo *ci = &core->bus->chipinfo; in bgmac_probe()
1551 struct ssb_sprom *sprom = &core->bus->sprom; in bgmac_probe()
1552 u8 *mac = core->core_unit ? sprom->et1mac : sprom->et0mac; in bgmac_probe()
1556 if (core->core_unit > 1) { in bgmac_probe()
1557 pr_err("Unsupported core_unit %d\n", core->core_unit); in bgmac_probe()
1562 dev_err(&core->dev, "Invalid MAC addr: %pM\n", mac); in bgmac_probe()
1564 dev_warn(&core->dev, "Using random MAC: %pM\n", mac); in bgmac_probe()
1572 net_dev->irq = core->irq; in bgmac_probe()
1576 bgmac->core = core; in bgmac_probe()
1577 bcma_set_drvdata(core, bgmac); in bgmac_probe()
1583 if (core->id.id == BCMA_CORE_4706_MAC_GBIT && in bgmac_probe()
1584 !core->bus->drv_gmac_cmn.core) { in bgmac_probe()
1589 bgmac->cmn = core->bus->drv_gmac_cmn.core; in bgmac_probe()
1591 bgmac->phyaddr = core->core_unit ? sprom->et1phyaddr : in bgmac_probe()
1602 if (core->bus->hosttype == BCMA_HOSTTYPE_PCI) { in bgmac_probe()
1623 ns_core = bcma_find_core_unit(core->bus, in bgmac_probe()
1644 bgmac->has_robosw = !!(core->bus->sprom.boardflags_lo & in bgmac_probe()
1649 if (core->bus->sprom.boardflags_lo & BGMAC_BFL_ENETADM) in bgmac_probe()
1680 bcma_set_drvdata(core, NULL); in bgmac_probe()
1686 static void bgmac_remove(struct bcma_device *core) in bgmac_remove() argument
1688 struct bgmac *bgmac = bcma_get_drvdata(core); in bgmac_remove()
1694 bcma_set_drvdata(core, NULL); in bgmac_remove()