• Home
  • Raw
  • Download

Lines Matching refs:aup

196 	struct au1000_private *aup = netdev_priv(dev);  in au1000_mdio_read()  local
197 volatile u32 *const mii_control_reg = &aup->mac->mii_control; in au1000_mdio_read()
198 volatile u32 *const mii_data_reg = &aup->mac->mii_data; in au1000_mdio_read()
231 struct au1000_private *aup = netdev_priv(dev); in au1000_mdio_write() local
232 volatile u32 *const mii_control_reg = &aup->mac->mii_control; in au1000_mdio_write()
233 volatile u32 *const mii_data_reg = &aup->mac->mii_data; in au1000_mdio_write()
286 struct au1000_private *const aup = netdev_priv(dev); in mii_probe() local
290 BUG_ON(aup->mac_id < 0 || aup->mac_id > 1); in mii_probe()
292 if(aup->mac_id == 0) { /* get PHY0 */ in mii_probe()
300 } else if (aup->mac_id == 1) { /* get PHY1 */ in mii_probe()
315 if (aup->mii_bus->phy_map[phy_addr]) { in mii_probe()
316 phydev = aup->mii_bus->phy_map[phy_addr]; in mii_probe()
324 if (!phydev && (aup->mac_id == 1)) { in mii_probe()
378 aup->old_link = 0; in mii_probe()
379 aup->old_speed = 0; in mii_probe()
380 aup->old_duplex = -1; in mii_probe()
381 aup->phy_dev = phydev; in mii_probe()
396 static db_dest_t *GetFreeDB(struct au1000_private *aup) in GetFreeDB() argument
399 pDB = aup->pDBfree; in GetFreeDB()
402 aup->pDBfree = pDB->pnext; in GetFreeDB()
407 void ReleaseDB(struct au1000_private *aup, db_dest_t *pDB) in ReleaseDB() argument
409 db_dest_t *pDBfree = aup->pDBfree; in ReleaseDB()
412 aup->pDBfree = pDB; in ReleaseDB()
417 struct au1000_private *aup = netdev_priv(dev); in enable_rx_tx() local
422 aup->mac->control |= (MAC_RX_ENABLE | MAC_TX_ENABLE); in enable_rx_tx()
428 struct au1000_private *aup = netdev_priv(dev); in hard_stop() local
433 aup->mac->control &= ~(MAC_RX_ENABLE | MAC_TX_ENABLE); in hard_stop()
440 struct au1000_private *aup = netdev_priv(dev); in enable_mac() local
442 spin_lock_irqsave(&aup->lock, flags); in enable_mac()
444 if(force_reset || (!aup->mac_enabled)) { in enable_mac()
445 *aup->enable = MAC_EN_CLOCK_ENABLE; in enable_mac()
447 *aup->enable = (MAC_EN_RESET0 | MAC_EN_RESET1 | MAC_EN_RESET2 in enable_mac()
451 aup->mac_enabled = 1; in enable_mac()
454 spin_unlock_irqrestore(&aup->lock, flags); in enable_mac()
459 struct au1000_private *const aup = netdev_priv(dev); in reset_mac_unlocked() local
464 *aup->enable = MAC_EN_CLOCK_ENABLE; in reset_mac_unlocked()
466 *aup->enable = 0; in reset_mac_unlocked()
469 aup->tx_full = 0; in reset_mac_unlocked()
472 aup->rx_dma_ring[i]->buff_stat &= ~0xf; in reset_mac_unlocked()
476 aup->tx_dma_ring[i]->buff_stat &= ~0xf; in reset_mac_unlocked()
479 aup->mac_enabled = 0; in reset_mac_unlocked()
485 struct au1000_private *const aup = netdev_priv(dev); in reset_mac() local
490 dev->name, (unsigned)aup); in reset_mac()
492 spin_lock_irqsave(&aup->lock, flags); in reset_mac()
496 spin_unlock_irqrestore(&aup->lock, flags); in reset_mac()
505 setup_hw_rings(struct au1000_private *aup, u32 rx_base, u32 tx_base) in setup_hw_rings() argument
510 aup->rx_dma_ring[i] = in setup_hw_rings()
514 aup->tx_dma_ring[i] = in setup_hw_rings()
574 struct au1000_private *aup = netdev_priv(dev); in au1000_get_settings() local
576 if (aup->phy_dev) in au1000_get_settings()
577 return phy_ethtool_gset(aup->phy_dev, cmd); in au1000_get_settings()
584 struct au1000_private *aup = netdev_priv(dev); in au1000_set_settings() local
589 if (aup->phy_dev) in au1000_set_settings()
590 return phy_ethtool_sset(aup->phy_dev, cmd); in au1000_set_settings()
598 struct au1000_private *aup = netdev_priv(dev); in au1000_get_drvinfo() local
603 sprintf(info->bus_info, "%s %d", DRV_NAME, aup->mac_id); in au1000_get_drvinfo()
617 struct au1000_private *aup = NULL; in au1000_probe() local
654 aup = netdev_priv(dev); in au1000_probe()
656 spin_lock_init(&aup->lock); in au1000_probe()
660 aup->vaddr = (u32)dma_alloc_noncoherent(NULL, MAX_BUF_SIZE * in au1000_probe()
662 &aup->dma_addr, 0); in au1000_probe()
663 if (!aup->vaddr) { in au1000_probe()
671 aup->mac = (volatile mac_reg_t *)iflist[port_num].base_addr; in au1000_probe()
674 aup->enable = (volatile u32 *)iflist[port_num].macen_addr; in au1000_probe()
675 aup->mac_id = port_num; in au1000_probe()
676 au_macs[port_num] = aup; in au1000_probe()
687 setup_hw_rings(aup, MAC0_RX_DMA_ADDR, MAC0_TX_DMA_ADDR); in au1000_probe()
689 setup_hw_rings(aup, MAC1_RX_DMA_ADDR, MAC1_TX_DMA_ADDR); in au1000_probe()
698 *aup->enable = 0; in au1000_probe()
699 aup->mac_enabled = 0; in au1000_probe()
701 aup->mii_bus = mdiobus_alloc(); in au1000_probe()
702 if (aup->mii_bus == NULL) in au1000_probe()
705 aup->mii_bus->priv = dev; in au1000_probe()
706 aup->mii_bus->read = au1000_mdiobus_read; in au1000_probe()
707 aup->mii_bus->write = au1000_mdiobus_write; in au1000_probe()
708 aup->mii_bus->reset = au1000_mdiobus_reset; in au1000_probe()
709 aup->mii_bus->name = "au1000_eth_mii"; in au1000_probe()
710 snprintf(aup->mii_bus->id, MII_BUS_ID_SIZE, "%x", aup->mac_id); in au1000_probe()
711 aup->mii_bus->irq = kmalloc(sizeof(int)*PHY_MAX_ADDR, GFP_KERNEL); in au1000_probe()
713 aup->mii_bus->irq[i] = PHY_POLL; in au1000_probe()
718 if (AU1XXX_PHY0_BUSID == aup->mac_id) in au1000_probe()
719 aup->mii_bus->irq[AU1XXX_PHY0_ADDR] = AU1XXX_PHY0_IRQ; in au1000_probe()
722 if (AU1XXX_PHY1_BUSID == aup->mac_id) in au1000_probe()
723 aup->mii_bus->irq[AU1XXX_PHY1_ADDR] = AU1XXX_PHY1_IRQ; in au1000_probe()
726 mdiobus_register(aup->mii_bus); in au1000_probe()
734 pDB = aup->db; in au1000_probe()
738 pDB->vaddr = (u32 *)((unsigned)aup->vaddr + MAX_BUF_SIZE*i); in au1000_probe()
742 aup->pDBfree = pDBfree; in au1000_probe()
745 pDB = GetFreeDB(aup); in au1000_probe()
749 aup->rx_dma_ring[i]->buff_stat = (unsigned)pDB->dma_addr; in au1000_probe()
750 aup->rx_db_inuse[i] = pDB; in au1000_probe()
753 pDB = GetFreeDB(aup); in au1000_probe()
757 aup->tx_dma_ring[i]->buff_stat = (unsigned)pDB->dma_addr; in au1000_probe()
758 aup->tx_dma_ring[i]->len = 0; in au1000_probe()
759 aup->tx_db_inuse[i] = pDB; in au1000_probe()
782 if (aup->mii_bus != NULL) { in au1000_probe()
783 mdiobus_unregister(aup->mii_bus); in au1000_probe()
784 mdiobus_free(aup->mii_bus); in au1000_probe()
792 if (aup->rx_db_inuse[i]) in au1000_probe()
793 ReleaseDB(aup, aup->rx_db_inuse[i]); in au1000_probe()
796 if (aup->tx_db_inuse[i]) in au1000_probe()
797 ReleaseDB(aup, aup->tx_db_inuse[i]); in au1000_probe()
800 (void *)aup->vaddr, aup->dma_addr); in au1000_probe()
819 struct au1000_private *aup = netdev_priv(dev); in au1000_init() local
830 spin_lock_irqsave(&aup->lock, flags); in au1000_init()
832 aup->mac->control = 0; in au1000_init()
833 aup->tx_head = (aup->tx_dma_ring[0]->buff_stat & 0xC) >> 2; in au1000_init()
834 aup->tx_tail = aup->tx_head; in au1000_init()
835 aup->rx_head = (aup->rx_dma_ring[0]->buff_stat & 0xC) >> 2; in au1000_init()
837 aup->mac->mac_addr_high = dev->dev_addr[5]<<8 | dev->dev_addr[4]; in au1000_init()
838 aup->mac->mac_addr_low = dev->dev_addr[3]<<24 | dev->dev_addr[2]<<16 | in au1000_init()
842 aup->rx_dma_ring[i]->buff_stat |= RX_DMA_ENABLE; in au1000_init()
850 if (aup->phy_dev) { in au1000_init()
851 if (aup->phy_dev->link && (DUPLEX_FULL == aup->phy_dev->duplex)) in au1000_init()
859 aup->mac->control = control; in au1000_init()
860 aup->mac->vlan1_tag = 0x8100; /* activate vlan support */ in au1000_init()
863 spin_unlock_irqrestore(&aup->lock, flags); in au1000_init()
870 struct au1000_private *aup = netdev_priv(dev); in au1000_adjust_link() local
871 struct phy_device *phydev = aup->phy_dev; in au1000_adjust_link()
876 BUG_ON(!aup->phy_dev); in au1000_adjust_link()
878 spin_lock_irqsave(&aup->lock, flags); in au1000_adjust_link()
880 if (phydev->link && (aup->old_speed != phydev->speed)) { in au1000_adjust_link()
894 aup->old_speed = phydev->speed; in au1000_adjust_link()
899 if (phydev->link && (aup->old_duplex != phydev->duplex)) { in au1000_adjust_link()
906 aup->mac->control = ((aup->mac->control in au1000_adjust_link()
910 aup->mac->control = ((aup->mac->control in au1000_adjust_link()
916 aup->old_duplex = phydev->duplex; in au1000_adjust_link()
921 if(phydev->link != aup->old_link) { in au1000_adjust_link()
926 aup->old_speed = 0; in au1000_adjust_link()
927 aup->old_duplex = -1; in au1000_adjust_link()
930 aup->old_link = phydev->link; in au1000_adjust_link()
934 spin_unlock_irqrestore(&aup->lock, flags); in au1000_adjust_link()
949 struct au1000_private *aup = netdev_priv(dev); in au1000_open() local
967 if (aup->phy_dev) { in au1000_open()
969 aup->phy_dev->state = PHY_CHANGELINK; in au1000_open()
970 phy_start(aup->phy_dev); in au1000_open()
984 struct au1000_private *const aup = netdev_priv(dev); in au1000_close() local
989 if (aup->phy_dev) in au1000_close()
990 phy_stop(aup->phy_dev); in au1000_close()
992 spin_lock_irqsave(&aup->lock, flags); in au1000_close()
1001 spin_unlock_irqrestore(&aup->lock, flags); in au1000_close()
1010 struct au1000_private *aup; in au1000_cleanup_module() local
1015 aup = netdev_priv(dev); in au1000_cleanup_module()
1017 mdiobus_unregister(aup->mii_bus); in au1000_cleanup_module()
1018 mdiobus_free(aup->mii_bus); in au1000_cleanup_module()
1020 if (aup->rx_db_inuse[j]) in au1000_cleanup_module()
1021 ReleaseDB(aup, aup->rx_db_inuse[j]); in au1000_cleanup_module()
1023 if (aup->tx_db_inuse[j]) in au1000_cleanup_module()
1024 ReleaseDB(aup, aup->tx_db_inuse[j]); in au1000_cleanup_module()
1027 (void *)aup->vaddr, aup->dma_addr); in au1000_cleanup_module()
1037 struct au1000_private *aup = netdev_priv(dev); in update_tx_stats() local
1041 if (!aup->phy_dev || (DUPLEX_FULL == aup->phy_dev->duplex)) { in update_tx_stats()
1066 struct au1000_private *aup = netdev_priv(dev); in au1000_tx_ack() local
1069 ptxd = aup->tx_dma_ring[aup->tx_tail]; in au1000_tx_ack()
1077 aup->tx_tail = (aup->tx_tail + 1) & (NUM_TX_DMA - 1); in au1000_tx_ack()
1078 ptxd = aup->tx_dma_ring[aup->tx_tail]; in au1000_tx_ack()
1080 if (aup->tx_full) { in au1000_tx_ack()
1081 aup->tx_full = 0; in au1000_tx_ack()
1093 struct au1000_private *aup = netdev_priv(dev); in au1000_tx() local
1102 dev->name, (unsigned)aup, skb->len, in au1000_tx()
1103 skb->data, aup->tx_head); in au1000_tx()
1105 ptxd = aup->tx_dma_ring[aup->tx_head]; in au1000_tx()
1110 aup->tx_full = 1; in au1000_tx()
1118 if (aup->tx_full) { in au1000_tx()
1119 aup->tx_full = 0; in au1000_tx()
1123 pDB = aup->tx_db_inuse[aup->tx_head]; in au1000_tx()
1140 aup->tx_head = (aup->tx_head + 1) & (NUM_TX_DMA - 1); in au1000_tx()
1147 struct au1000_private *aup = netdev_priv(dev); in update_rx_stats() local
1175 struct au1000_private *aup = netdev_priv(dev); in au1000_rx() local
1183 printk("%s: au1000_rx head %d\n", dev->name, aup->rx_head); in au1000_rx()
1185 prxd = aup->rx_dma_ring[aup->rx_head]; in au1000_rx()
1189 pDB = aup->rx_db_inuse[aup->rx_head]; in au1000_rx()
1236 aup->rx_head = (aup->rx_head + 1) & (NUM_RX_DMA - 1); in au1000_rx()
1240 prxd = aup->rx_dma_ring[aup->rx_head]; in au1000_rx()
1277 struct au1000_private *aup = netdev_priv(dev); in set_rx_mode() local
1283 aup->mac->control |= MAC_PROMISCUOUS; in set_rx_mode()
1286 aup->mac->control |= MAC_PASS_ALL_MULTI; in set_rx_mode()
1287 aup->mac->control &= ~MAC_PROMISCUOUS; in set_rx_mode()
1300 aup->mac->multi_hash_high = mc_filter[1]; in set_rx_mode()
1301 aup->mac->multi_hash_low = mc_filter[0]; in set_rx_mode()
1302 aup->mac->control &= ~MAC_PROMISCUOUS; in set_rx_mode()
1303 aup->mac->control |= MAC_HASH_MODE; in set_rx_mode()
1309 struct au1000_private *aup = netdev_priv(dev); in au1000_ioctl() local
1313 if (!aup->phy_dev) return -EINVAL; // PHY not controllable in au1000_ioctl()
1315 return phy_mii_ioctl(aup->phy_dev, if_mii(rq), cmd); in au1000_ioctl()