Lines Matching refs:aup

247 	struct au1000_private *aup = netdev_priv(dev);
249 spin_lock_irqsave(&aup->lock, flags);
251 if (force_reset || (!aup->mac_enabled)) {
252 writel(MAC_EN_CLOCK_ENABLE, aup->enable);
256 | MAC_EN_CLOCK_ENABLE), aup->enable);
260 aup->mac_enabled = 1;
263 spin_unlock_irqrestore(&aup->lock, flags);
271 struct au1000_private *aup = netdev_priv(dev);
272 u32 *const mii_control_reg = &aup->mac->mii_control;
273 u32 *const mii_data_reg = &aup->mac->mii_data;
304 struct au1000_private *aup = netdev_priv(dev);
305 u32 *const mii_control_reg = &aup->mac->mii_control;
306 u32 *const mii_data_reg = &aup->mac->mii_data;
365 struct au1000_private *aup = netdev_priv(dev);
368 netif_dbg(aup, drv, dev, "hard stop\n");
370 reg = readl(&aup->mac->control);
372 writel(reg, &aup->mac->control);
379 struct au1000_private *aup = netdev_priv(dev);
382 netif_dbg(aup, hw, dev, "enable_rx_tx\n");
384 reg = readl(&aup->mac->control);
386 writel(reg, &aup->mac->control);
394 struct au1000_private *aup = netdev_priv(dev);
403 spin_lock_irqsave(&aup->lock, flags);
405 if (phydev->link && (aup->old_speed != phydev->speed)) {
418 aup->old_speed = phydev->speed;
423 if (phydev->link && (aup->old_duplex != phydev->duplex)) {
429 reg = readl(&aup->mac->control);
437 writel(reg, &aup->mac->control);
442 aup->old_duplex = phydev->duplex;
447 if (phydev->link != aup->old_link) {
452 aup->old_speed = 0;
453 aup->old_duplex = -1;
456 aup->old_link = phydev->link;
460 spin_unlock_irqrestore(&aup->lock, flags);
474 struct au1000_private *const aup = netdev_priv(dev);
478 if (aup->phy_static_config) {
479 BUG_ON(aup->mac_id < 0 || aup->mac_id > 1);
481 if (aup->phy_addr)
482 phydev = mdiobus_get_phy(aup->mii_bus, aup->phy_addr);
492 if (mdiobus_get_phy(aup->mii_bus, phy_addr)) {
493 phydev = mdiobus_get_phy(aup->mii_bus, phy_addr);
494 if (!aup->phy_search_highest_addr)
499 if (aup->phy1_search_mac0) {
501 if (!phydev && (aup->mac_id == 1)) {
511 mdiobus_get_phy(aup->mii_bus,
514 if (aup->mac_id == 1)
549 aup->old_link = 0;
550 aup->old_speed = 0;
551 aup->old_duplex = -1;
563 static struct db_dest *au1000_GetFreeDB(struct au1000_private *aup)
566 pDB = aup->pDBfree;
569 aup->pDBfree = pDB->pnext;
574 void au1000_ReleaseDB(struct au1000_private *aup, struct db_dest *pDB)
576 struct db_dest *pDBfree = aup->pDBfree;
579 aup->pDBfree = pDB;
584 struct au1000_private *const aup = netdev_priv(dev);
589 writel(MAC_EN_CLOCK_ENABLE, aup->enable);
592 writel(0, aup->enable);
596 aup->tx_full = 0;
599 aup->rx_dma_ring[i]->buff_stat &= ~0xf;
603 aup->tx_dma_ring[i]->buff_stat &= ~0xf;
606 aup->mac_enabled = 0;
612 struct au1000_private *const aup = netdev_priv(dev);
615 netif_dbg(aup, hw, dev, "reset mac, aup %x\n",
616 (unsigned)aup);
618 spin_lock_irqsave(&aup->lock, flags);
622 spin_unlock_irqrestore(&aup->lock, flags);
631 au1000_setup_hw_rings(struct au1000_private *aup, void __iomem *tx_base)
636 aup->rx_dma_ring[i] = (struct rx_dma *)
640 aup->tx_dma_ring[i] = (struct tx_dma *)
651 struct au1000_private *aup = netdev_priv(dev);
655 aup->mac_id);
660 struct au1000_private *aup = netdev_priv(dev);
661 aup->msg_enable = value;
666 struct au1000_private *aup = netdev_priv(dev);
667 return aup->msg_enable;
690 struct au1000_private *aup = netdev_priv(dev);
695 netif_dbg(aup, hw, dev, "au1000_init\n");
700 spin_lock_irqsave(&aup->lock, flags);
702 writel(0, &aup->mac->control);
703 aup->tx_head = (aup->tx_dma_ring[0]->buff_stat & 0xC) >> 2;
704 aup->tx_tail = aup->tx_head;
705 aup->rx_head = (aup->rx_dma_ring[0]->buff_stat & 0xC) >> 2;
708 &aup->mac->mac_addr_high);
711 &aup->mac->mac_addr_low);
715 aup->rx_dma_ring[i]->buff_stat |= RX_DMA_ENABLE;
732 writel(control, &aup->mac->control);
733 writel(0x8100, &aup->mac->vlan1_tag); /* activate vlan support */
736 spin_unlock_irqrestore(&aup->lock, flags);
768 struct au1000_private *aup = netdev_priv(dev);
775 netif_dbg(aup, rx_status, dev, "au1000_rx head %d\n", aup->rx_head);
777 prxd = aup->rx_dma_ring[aup->rx_head];
781 pDB = aup->rx_db_inuse[aup->rx_head];
824 aup->rx_head = (aup->rx_head + 1) & (NUM_RX_DMA - 1);
828 prxd = aup->rx_dma_ring[aup->rx_head];
863 struct au1000_private *aup = netdev_priv(dev);
866 ptxd = aup->tx_dma_ring[aup->tx_tail];
874 aup->tx_tail = (aup->tx_tail + 1) & (NUM_TX_DMA - 1);
875 ptxd = aup->tx_dma_ring[aup->tx_tail];
877 if (aup->tx_full) {
878 aup->tx_full = 0;
901 struct au1000_private *aup = netdev_priv(dev);
903 netif_dbg(aup, drv, dev, "open: dev=%p\n", dev);
924 netif_dbg(aup, drv, dev, "open: Initialization done.\n");
932 struct au1000_private *const aup = netdev_priv(dev);
934 netif_dbg(aup, drv, dev, "close: dev=%p\n", dev);
939 spin_lock_irqsave(&aup->lock, flags);
948 spin_unlock_irqrestore(&aup->lock, flags);
958 struct au1000_private *aup = netdev_priv(dev);
965 netif_dbg(aup, tx_queued, dev, "tx: aup %x len=%d, data=%p, head %d\n",
966 (unsigned)aup, skb->len,
967 skb->data, aup->tx_head);
969 ptxd = aup->tx_dma_ring[aup->tx_head];
974 aup->tx_full = 1;
981 if (aup->tx_full) {
982 aup->tx_full = 0;
986 pDB = aup->tx_db_inuse[aup->tx_head];
1002 aup->tx_head = (aup->tx_head + 1) & (NUM_TX_DMA - 1);
1021 struct au1000_private *aup = netdev_priv(dev);
1024 netif_dbg(aup, drv, dev, "%s: flags=%x\n", __func__, dev->flags);
1025 reg = readl(&aup->mac->control);
1041 writel(mc_filter[1], &aup->mac->multi_hash_high);
1042 writel(mc_filter[0], &aup->mac->multi_hash_low);
1046 writel(reg, &aup->mac->control);
1062 struct au1000_private *aup = NULL;
1125 aup = netdev_priv(dev);
1127 spin_lock_init(&aup->lock);
1128 aup->msg_enable = (au1000_debug < 4 ?
1134 aup->vaddr = (u32)dma_alloc_coherent(&pdev->dev, MAX_BUF_SIZE *
1136 &aup->dma_addr, 0);
1137 if (!aup->vaddr) {
1143 /* aup->mac is the base address of the MAC's registers */
1144 aup->mac = (struct mac_reg *)
1146 if (!aup->mac) {
1153 aup->enable = (u32 *)ioremap(macen->start,
1155 if (!aup->enable) {
1160 aup->mac_id = pdev->id;
1162 aup->macdma = ioremap(macdma->start, resource_size(macdma));
1163 if (!aup->macdma) {
1169 au1000_setup_hw_rings(aup, aup->macdma);
1171 writel(0, aup->enable);
1172 aup->mac_enabled = 0;
1178 aup->phy1_search_mac0 = 1;
1187 aup->phy_static_config = pd->phy_static_config;
1188 aup->phy_search_highest_addr = pd->phy_search_highest_addr;
1189 aup->phy1_search_mac0 = pd->phy1_search_mac0;
1190 aup->phy_addr = pd->phy_addr;
1191 aup->phy_busid = pd->phy_busid;
1192 aup->phy_irq = pd->phy_irq;
1195 if (aup->phy_busid > 0) {
1201 aup->mii_bus = mdiobus_alloc();
1202 if (aup->mii_bus == NULL) {
1208 aup->mii_bus->priv = dev;
1209 aup->mii_bus->read = au1000_mdiobus_read;
1210 aup->mii_bus->write = au1000_mdiobus_write;
1211 aup->mii_bus->reset = au1000_mdiobus_reset;
1212 aup->mii_bus->name = "au1000_eth_mii";
1213 snprintf(aup->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x",
1214 pdev->name, aup->mac_id);
1217 if (aup->phy_static_config)
1218 if (aup->phy_irq && aup->phy_busid == aup->mac_id)
1219 aup->mii_bus->irq[aup->phy_addr] = aup->phy_irq;
1221 err = mdiobus_register(aup->mii_bus);
1233 pDB = aup->db;
1237 pDB->vaddr = (u32 *)((unsigned)aup->vaddr + MAX_BUF_SIZE*i);
1241 aup->pDBfree = pDBfree;
1245 pDB = au1000_GetFreeDB(aup);
1249 aup->rx_dma_ring[i]->buff_stat = (unsigned)pDB->dma_addr;
1250 aup->rx_db_inuse[i] = pDB;
1254 pDB = au1000_GetFreeDB(aup);
1258 aup->tx_dma_ring[i]->buff_stat = (unsigned)pDB->dma_addr;
1259 aup->tx_dma_ring[i]->len = 0;
1260 aup->tx_db_inuse[i] = pDB;
1287 if (aup->mii_bus != NULL)
1288 mdiobus_unregister(aup->mii_bus);
1290 /* here we should have a valid dev plus aup-> register addresses
1296 if (aup->rx_db_inuse[i])
1297 au1000_ReleaseDB(aup, aup->rx_db_inuse[i]);
1300 if (aup->tx_db_inuse[i])
1301 au1000_ReleaseDB(aup, aup->tx_db_inuse[i]);
1304 mdiobus_free(aup->mii_bus);
1306 iounmap(aup->macdma);
1308 iounmap(aup->enable);
1310 iounmap(aup->mac);
1313 (void *)aup->vaddr, aup->dma_addr);
1329 struct au1000_private *aup = netdev_priv(dev);
1334 mdiobus_unregister(aup->mii_bus);
1335 mdiobus_free(aup->mii_bus);
1338 if (aup->rx_db_inuse[i])
1339 au1000_ReleaseDB(aup, aup->rx_db_inuse[i]);
1342 if (aup->tx_db_inuse[i])
1343 au1000_ReleaseDB(aup, aup->tx_db_inuse[i]);
1346 (void *)aup->vaddr, aup->dma_addr);
1348 iounmap(aup->macdma);
1349 iounmap(aup->mac);
1350 iounmap(aup->enable);