Lines Matching full:ap

87 #define ACE_IS_TIGON_I(ap)	0  argument
88 #define ACE_TX_RING_ENTRIES(ap) MAX_TX_RING_ENTRIES argument
90 #define ACE_IS_TIGON_I(ap) (ap->version == 1) argument
91 #define ACE_TX_RING_ENTRIES(ap) ap->tx_ring_entries argument
458 struct ace_private *ap; in acenic_probe_one() local
467 ap = netdev_priv(dev); in acenic_probe_one()
468 ap->ndev = dev; in acenic_probe_one()
469 ap->pdev = pdev; in acenic_probe_one()
470 ap->name = pci_name(pdev); in acenic_probe_one()
496 pci_read_config_word(pdev, PCI_COMMAND, &ap->pci_command); in acenic_probe_one()
499 if (!(ap->pci_command & PCI_COMMAND_MEMORY)) { in acenic_probe_one()
502 ap->name); in acenic_probe_one()
503 ap->pci_command = ap->pci_command | PCI_COMMAND_MEMORY; in acenic_probe_one()
504 pci_write_config_word(ap->pdev, PCI_COMMAND, in acenic_probe_one()
505 ap->pci_command); in acenic_probe_one()
509 pci_read_config_byte(pdev, PCI_LATENCY_TIMER, &ap->pci_latency); in acenic_probe_one()
510 if (ap->pci_latency <= 0x40) { in acenic_probe_one()
511 ap->pci_latency = 0x40; in acenic_probe_one()
512 pci_write_config_byte(pdev, PCI_LATENCY_TIMER, ap->pci_latency); in acenic_probe_one()
521 ap->regs = ioremap(dev->base_addr, 0x4000); in acenic_probe_one()
522 if (!ap->regs) { in acenic_probe_one()
525 ap->name, boards_found); in acenic_probe_one()
533 ap->name); in acenic_probe_one()
536 ap->name); in acenic_probe_one()
540 printk(KERN_INFO "%s: 3Com 3C985 ", ap->name); in acenic_probe_one()
543 printk(KERN_INFO "%s: NetGear GA620 ", ap->name); in acenic_probe_one()
548 ap->name); in acenic_probe_one()
553 printk(KERN_INFO "%s: SGI AceNIC ", ap->name); in acenic_probe_one()
556 printk(KERN_INFO "%s: Unknown AceNIC ", ap->name); in acenic_probe_one()
564 if ((readl(&ap->regs->HostCtrl) >> 28) == 4) { in acenic_probe_one()
576 ap->board_idx = BOARD_IDX_OVERFLOW; in acenic_probe_one()
578 ap->board_idx = boards_found; in acenic_probe_one()
580 ap->board_idx = BOARD_IDX_STATIC; in acenic_probe_one()
590 ap->name = dev->name; in acenic_probe_one()
592 if (ap->pci_using_dac) in acenic_probe_one()
610 struct ace_private *ap = netdev_priv(dev); in acenic_remove_one() local
611 struct ace_regs __iomem *regs = ap->regs; in acenic_remove_one()
617 if (ap->version >= 2) in acenic_remove_one()
638 struct sk_buff *skb = ap->skb->rx_std_skbuff[i].skb; in acenic_remove_one()
644 ringp = &ap->skb->rx_std_skbuff[i]; in acenic_remove_one()
646 dma_unmap_page(&ap->pdev->dev, mapping, in acenic_remove_one()
649 ap->rx_std_ring[i].size = 0; in acenic_remove_one()
650 ap->skb->rx_std_skbuff[i].skb = NULL; in acenic_remove_one()
655 if (ap->version >= 2) { in acenic_remove_one()
657 struct sk_buff *skb = ap->skb->rx_mini_skbuff[i].skb; in acenic_remove_one()
663 ringp = &ap->skb->rx_mini_skbuff[i]; in acenic_remove_one()
665 dma_unmap_page(&ap->pdev->dev, mapping, in acenic_remove_one()
669 ap->rx_mini_ring[i].size = 0; in acenic_remove_one()
670 ap->skb->rx_mini_skbuff[i].skb = NULL; in acenic_remove_one()
677 struct sk_buff *skb = ap->skb->rx_jumbo_skbuff[i].skb; in acenic_remove_one()
682 ringp = &ap->skb->rx_jumbo_skbuff[i]; in acenic_remove_one()
684 dma_unmap_page(&ap->pdev->dev, mapping, in acenic_remove_one()
687 ap->rx_jumbo_ring[i].size = 0; in acenic_remove_one()
688 ap->skb->rx_jumbo_skbuff[i].skb = NULL; in acenic_remove_one()
706 struct ace_private *ap = netdev_priv(dev); in ace_free_descriptors() local
709 if (ap->rx_std_ring != NULL) { in ace_free_descriptors()
715 dma_free_coherent(&ap->pdev->dev, size, ap->rx_std_ring, in ace_free_descriptors()
716 ap->rx_ring_base_dma); in ace_free_descriptors()
717 ap->rx_std_ring = NULL; in ace_free_descriptors()
718 ap->rx_jumbo_ring = NULL; in ace_free_descriptors()
719 ap->rx_mini_ring = NULL; in ace_free_descriptors()
720 ap->rx_return_ring = NULL; in ace_free_descriptors()
722 if (ap->evt_ring != NULL) { in ace_free_descriptors()
724 dma_free_coherent(&ap->pdev->dev, size, ap->evt_ring, in ace_free_descriptors()
725 ap->evt_ring_dma); in ace_free_descriptors()
726 ap->evt_ring = NULL; in ace_free_descriptors()
728 if (ap->tx_ring != NULL && !ACE_IS_TIGON_I(ap)) { in ace_free_descriptors()
730 dma_free_coherent(&ap->pdev->dev, size, ap->tx_ring, in ace_free_descriptors()
731 ap->tx_ring_dma); in ace_free_descriptors()
733 ap->tx_ring = NULL; in ace_free_descriptors()
735 if (ap->evt_prd != NULL) { in ace_free_descriptors()
736 dma_free_coherent(&ap->pdev->dev, sizeof(u32), in ace_free_descriptors()
737 (void *)ap->evt_prd, ap->evt_prd_dma); in ace_free_descriptors()
738 ap->evt_prd = NULL; in ace_free_descriptors()
740 if (ap->rx_ret_prd != NULL) { in ace_free_descriptors()
741 dma_free_coherent(&ap->pdev->dev, sizeof(u32), in ace_free_descriptors()
742 (void *)ap->rx_ret_prd, ap->rx_ret_prd_dma); in ace_free_descriptors()
743 ap->rx_ret_prd = NULL; in ace_free_descriptors()
745 if (ap->tx_csm != NULL) { in ace_free_descriptors()
746 dma_free_coherent(&ap->pdev->dev, sizeof(u32), in ace_free_descriptors()
747 (void *)ap->tx_csm, ap->tx_csm_dma); in ace_free_descriptors()
748 ap->tx_csm = NULL; in ace_free_descriptors()
755 struct ace_private *ap = netdev_priv(dev); in ace_allocate_descriptors() local
764 ap->rx_std_ring = dma_alloc_coherent(&ap->pdev->dev, size, in ace_allocate_descriptors()
765 &ap->rx_ring_base_dma, GFP_KERNEL); in ace_allocate_descriptors()
766 if (ap->rx_std_ring == NULL) in ace_allocate_descriptors()
769 ap->rx_jumbo_ring = ap->rx_std_ring + RX_STD_RING_ENTRIES; in ace_allocate_descriptors()
770 ap->rx_mini_ring = ap->rx_jumbo_ring + RX_JUMBO_RING_ENTRIES; in ace_allocate_descriptors()
771 ap->rx_return_ring = ap->rx_mini_ring + RX_MINI_RING_ENTRIES; in ace_allocate_descriptors()
775 ap->evt_ring = dma_alloc_coherent(&ap->pdev->dev, size, in ace_allocate_descriptors()
776 &ap->evt_ring_dma, GFP_KERNEL); in ace_allocate_descriptors()
778 if (ap->evt_ring == NULL) in ace_allocate_descriptors()
785 if (!ACE_IS_TIGON_I(ap)) { in ace_allocate_descriptors()
788 ap->tx_ring = dma_alloc_coherent(&ap->pdev->dev, size, in ace_allocate_descriptors()
789 &ap->tx_ring_dma, GFP_KERNEL); in ace_allocate_descriptors()
791 if (ap->tx_ring == NULL) in ace_allocate_descriptors()
795 ap->evt_prd = dma_alloc_coherent(&ap->pdev->dev, sizeof(u32), in ace_allocate_descriptors()
796 &ap->evt_prd_dma, GFP_KERNEL); in ace_allocate_descriptors()
797 if (ap->evt_prd == NULL) in ace_allocate_descriptors()
800 ap->rx_ret_prd = dma_alloc_coherent(&ap->pdev->dev, sizeof(u32), in ace_allocate_descriptors()
801 &ap->rx_ret_prd_dma, GFP_KERNEL); in ace_allocate_descriptors()
802 if (ap->rx_ret_prd == NULL) in ace_allocate_descriptors()
805 ap->tx_csm = dma_alloc_coherent(&ap->pdev->dev, sizeof(u32), in ace_allocate_descriptors()
806 &ap->tx_csm_dma, GFP_KERNEL); in ace_allocate_descriptors()
807 if (ap->tx_csm == NULL) in ace_allocate_descriptors()
825 struct ace_private *ap; in ace_init_cleanup() local
827 ap = netdev_priv(dev); in ace_init_cleanup()
831 if (ap->info) in ace_init_cleanup()
832 dma_free_coherent(&ap->pdev->dev, sizeof(struct ace_info), in ace_init_cleanup()
833 ap->info, ap->info_dma); in ace_init_cleanup()
834 kfree(ap->skb); in ace_init_cleanup()
835 kfree(ap->trace_buf); in ace_init_cleanup()
840 iounmap(ap->regs); in ace_init_cleanup()
862 struct ace_private *ap; in ace_init() local
873 ap = netdev_priv(dev); in ace_init()
874 regs = ap->regs; in ace_init()
876 board_idx = ap->board_idx; in ace_init()
917 tig_ver, ap->firmware_major, ap->firmware_minor, in ace_init()
918 ap->firmware_fix); in ace_init()
920 ap->version = 1; in ace_init()
921 ap->tx_ring_entries = TIGON_I_TX_RING_ENTRIES; in ace_init()
926 tig_ver, ap->firmware_major, ap->firmware_minor, in ace_init()
927 ap->firmware_fix); in ace_init()
937 ap->version = 2; in ace_init()
938 ap->tx_ring_entries = MAX_TX_RING_ENTRIES; in ace_init()
1006 pdev = ap->pdev; in ace_init()
1026 ap->pci_latency); in ace_init()
1039 if (ap->version >= 2) { in ace_init()
1046 if (ap->pci_command & PCI_COMMAND_INVALIDATE) { in ace_init()
1047 ap->pci_command &= ~PCI_COMMAND_INVALIDATE; in ace_init()
1049 ap->pci_command); in ace_init()
1053 } else if (ap->pci_command & PCI_COMMAND_INVALIDATE) { in ace_init()
1074 ap->pci_command &= ~PCI_COMMAND_INVALIDATE; in ace_init()
1076 ap->pci_command); in ace_init()
1121 if (!(ap->pci_command & PCI_COMMAND_FAST_BACK)) { in ace_init()
1123 ap->pci_command |= PCI_COMMAND_FAST_BACK; in ace_init()
1124 pci_write_config_word(pdev, PCI_COMMAND, ap->pci_command); in ace_init()
1132 ap->pci_using_dac = 1; in ace_init()
1134 ap->pci_using_dac = 0; in ace_init()
1145 if (!(info = dma_alloc_coherent(&ap->pdev->dev, sizeof(struct ace_info), in ace_init()
1146 &ap->info_dma, GFP_KERNEL))) { in ace_init()
1150 ap->info = info; in ace_init()
1155 if (!(ap->skb = kzalloc(sizeof(struct ace_skb), GFP_KERNEL))) { in ace_init()
1170 spin_lock_init(&ap->debug_lock); in ace_init()
1171 ap->last_tx = ACE_TX_RING_ENTRIES(ap) - 1; in ace_init()
1172 ap->last_std_rx = 0; in ace_init()
1173 ap->last_mini_rx = 0; in ace_init()
1180 ap->fw_running = 0; in ace_init()
1182 tmp_ptr = ap->info_dma; in ace_init()
1186 memset(ap->evt_ring, 0, EVT_RING_ENTRIES * sizeof(struct event)); in ace_init()
1188 set_aceaddr(&info->evt_ctrl.rngptr, ap->evt_ring_dma); in ace_init()
1191 *(ap->evt_prd) = 0; in ace_init()
1193 set_aceaddr(&info->evt_prd_ptr, ap->evt_prd_dma); in ace_init()
1206 tmp_ptr = ap->info_dma; in ace_init()
1210 set_aceaddr(&info->rx_std_ctrl.rngptr, ap->rx_ring_base_dma); in ace_init()
1215 memset(ap->rx_std_ring, 0, in ace_init()
1219 ap->rx_std_ring[i].flags = BD_FLG_TCP_UDP_SUM; in ace_init()
1221 ap->rx_std_skbprd = 0; in ace_init()
1222 atomic_set(&ap->cur_rx_bufs, 0); in ace_init()
1225 (ap->rx_ring_base_dma + in ace_init()
1231 memset(ap->rx_jumbo_ring, 0, in ace_init()
1235 ap->rx_jumbo_ring[i].flags = BD_FLG_TCP_UDP_SUM | BD_FLG_JUMBO; in ace_init()
1237 ap->rx_jumbo_skbprd = 0; in ace_init()
1238 atomic_set(&ap->cur_jumbo_bufs, 0); in ace_init()
1240 memset(ap->rx_mini_ring, 0, in ace_init()
1243 if (ap->version >= 2) { in ace_init()
1245 (ap->rx_ring_base_dma + in ace_init()
1254 ap->rx_mini_ring[i].flags = in ace_init()
1262 ap->rx_mini_skbprd = 0; in ace_init()
1263 atomic_set(&ap->cur_mini_bufs, 0); in ace_init()
1266 (ap->rx_ring_base_dma + in ace_init()
1274 memset(ap->rx_return_ring, 0, in ace_init()
1277 set_aceaddr(&info->rx_ret_prd_ptr, ap->rx_ret_prd_dma); in ace_init()
1278 *(ap->rx_ret_prd) = 0; in ace_init()
1282 if (ACE_IS_TIGON_I(ap)) { in ace_init()
1283 ap->tx_ring = (__force struct tx_desc *) regs->Window; in ace_init()
1286 writel(0, (__force void __iomem *)ap->tx_ring + i * 4); in ace_init()
1290 memset(ap->tx_ring, 0, in ace_init()
1293 set_aceaddr(&info->tx_ctrl.rngptr, ap->tx_ring_dma); in ace_init()
1296 info->tx_ctrl.max_len = ACE_TX_RING_ENTRIES(ap); in ace_init()
1302 if (!ACE_IS_TIGON_I(ap)) in ace_init()
1309 set_aceaddr(&info->tx_csm_ptr, ap->tx_csm_dma); in ace_init()
1340 ap->name, ACE_MAX_MOD_PARMS); in ace_init()
1366 if(ap->version >= 2) in ace_init()
1379 ap->name); in ace_init()
1392 "forcing auto negotiation\n", ap->name); in ace_init()
1400 "negotiation\n", ap->name); in ace_init()
1403 if ((option & 0x400) && (ap->version >= 2)) { in ace_init()
1405 ap->name); in ace_init()
1410 ap->link = tmp; in ace_init()
1412 if (ap->version >= 2) in ace_init()
1415 writel(ap->firmware_start, &regs->Pc); in ace_init()
1425 ap->cur_rx = 0; in ace_init()
1426 ap->tx_prd = *(ap->tx_csm) = ap->tx_ret_csm = 0; in ace_init()
1429 ace_set_txprd(regs, ap, 0); in ace_init()
1450 while (time_before(jiffies, myjif) && !ap->fw_running) in ace_init()
1453 if (!ap->fw_running) { in ace_init()
1454 printk(KERN_ERR "%s: Firmware NOT running!\n", ap->name); in ace_init()
1456 ace_dump_trace(ap); in ace_init()
1469 if (ap->version >= 2) in ace_init()
1483 if (!test_and_set_bit(0, &ap->std_refill_busy)) in ace_init()
1487 ap->name); in ace_init()
1488 if (ap->version >= 2) { in ace_init()
1489 if (!test_and_set_bit(0, &ap->mini_refill_busy)) in ace_init()
1493 "the RX mini ring\n", ap->name); in ace_init()
1505 struct ace_private *ap = netdev_priv(dev); in ace_set_rxtx_parms() local
1506 struct ace_regs __iomem *regs = ap->regs; in ace_set_rxtx_parms()
1507 int board_idx = ap->board_idx; in ace_set_rxtx_parms()
1544 struct ace_private *ap = netdev_priv(dev); in ace_watchdog() local
1545 struct ace_regs __iomem *regs = ap->regs; in ace_watchdog()
1552 if (*ap->tx_csm != ap->tx_ret_csm) { in ace_watchdog()
1568 struct ace_private *ap = from_tasklet(ap, t, ace_tasklet); in ace_tasklet() local
1569 struct net_device *dev = ap->ndev; in ace_tasklet()
1572 cur_size = atomic_read(&ap->cur_rx_bufs); in ace_tasklet()
1574 !test_and_set_bit(0, &ap->std_refill_busy)) { in ace_tasklet()
1581 if (ap->version >= 2) { in ace_tasklet()
1582 cur_size = atomic_read(&ap->cur_mini_bufs); in ace_tasklet()
1584 !test_and_set_bit(0, &ap->mini_refill_busy)) { in ace_tasklet()
1593 cur_size = atomic_read(&ap->cur_jumbo_bufs); in ace_tasklet()
1594 if (ap->jumbo && (cur_size < RX_LOW_JUMBO_THRES) && in ace_tasklet()
1595 !test_and_set_bit(0, &ap->jumbo_refill_busy)) { in ace_tasklet()
1601 ap->tasklet_pending = 0; in ace_tasklet()
1608 static void ace_dump_trace(struct ace_private *ap) in ace_dump_trace() argument
1611 if (!ap->trace_buf) in ace_dump_trace()
1612 if (!(ap->trace_buf = kmalloc(ACE_TRACE_SIZE, GFP_KERNEL))) in ace_dump_trace()
1627 struct ace_private *ap = netdev_priv(dev); in ace_load_std_rx_ring() local
1628 struct ace_regs __iomem *regs = ap->regs; in ace_load_std_rx_ring()
1632 prefetchw(&ap->cur_rx_bufs); in ace_load_std_rx_ring()
1634 idx = ap->rx_std_skbprd; in ace_load_std_rx_ring()
1645 mapping = dma_map_page(&ap->pdev->dev, in ace_load_std_rx_ring()
1649 ap->skb->rx_std_skbuff[idx].skb = skb; in ace_load_std_rx_ring()
1650 dma_unmap_addr_set(&ap->skb->rx_std_skbuff[idx], in ace_load_std_rx_ring()
1653 rd = &ap->rx_std_ring[idx]; in ace_load_std_rx_ring()
1663 atomic_add(i, &ap->cur_rx_bufs); in ace_load_std_rx_ring()
1664 ap->rx_std_skbprd = idx; in ace_load_std_rx_ring()
1666 if (ACE_IS_TIGON_I(ap)) { in ace_load_std_rx_ring()
1670 cmd.idx = ap->rx_std_skbprd; in ace_load_std_rx_ring()
1678 clear_bit(0, &ap->std_refill_busy); in ace_load_std_rx_ring()
1690 struct ace_private *ap = netdev_priv(dev); in ace_load_mini_rx_ring() local
1691 struct ace_regs __iomem *regs = ap->regs; in ace_load_mini_rx_ring()
1694 prefetchw(&ap->cur_mini_bufs); in ace_load_mini_rx_ring()
1696 idx = ap->rx_mini_skbprd; in ace_load_mini_rx_ring()
1706 mapping = dma_map_page(&ap->pdev->dev, in ace_load_mini_rx_ring()
1710 ap->skb->rx_mini_skbuff[idx].skb = skb; in ace_load_mini_rx_ring()
1711 dma_unmap_addr_set(&ap->skb->rx_mini_skbuff[idx], in ace_load_mini_rx_ring()
1714 rd = &ap->rx_mini_ring[idx]; in ace_load_mini_rx_ring()
1724 atomic_add(i, &ap->cur_mini_bufs); in ace_load_mini_rx_ring()
1726 ap->rx_mini_skbprd = idx; in ace_load_mini_rx_ring()
1732 clear_bit(0, &ap->mini_refill_busy); in ace_load_mini_rx_ring()
1747 struct ace_private *ap = netdev_priv(dev); in ace_load_jumbo_rx_ring() local
1748 struct ace_regs __iomem *regs = ap->regs; in ace_load_jumbo_rx_ring()
1751 idx = ap->rx_jumbo_skbprd; in ace_load_jumbo_rx_ring()
1762 mapping = dma_map_page(&ap->pdev->dev, in ace_load_jumbo_rx_ring()
1766 ap->skb->rx_jumbo_skbuff[idx].skb = skb; in ace_load_jumbo_rx_ring()
1767 dma_unmap_addr_set(&ap->skb->rx_jumbo_skbuff[idx], in ace_load_jumbo_rx_ring()
1770 rd = &ap->rx_jumbo_ring[idx]; in ace_load_jumbo_rx_ring()
1780 atomic_add(i, &ap->cur_jumbo_bufs); in ace_load_jumbo_rx_ring()
1781 ap->rx_jumbo_skbprd = idx; in ace_load_jumbo_rx_ring()
1783 if (ACE_IS_TIGON_I(ap)) { in ace_load_jumbo_rx_ring()
1787 cmd.idx = ap->rx_jumbo_skbprd; in ace_load_jumbo_rx_ring()
1795 clear_bit(0, &ap->jumbo_refill_busy); in ace_load_jumbo_rx_ring()
1812 struct ace_private *ap; in ace_handle_event() local
1814 ap = netdev_priv(dev); in ace_handle_event()
1817 switch (ap->evt_ring[evtcsm].evt) { in ace_handle_event()
1820 ap->name); in ace_handle_event()
1821 ap->fw_running = 1; in ace_handle_event()
1828 u16 code = ap->evt_ring[evtcsm].code; in ace_handle_event()
1832 u32 state = readl(&ap->regs->GigLnkState); in ace_handle_event()
1835 ap->name, in ace_handle_event()
1843 ap->name); in ace_handle_event()
1847 "UP\n", ap->name); in ace_handle_event()
1851 "state %02x\n", ap->name, code); in ace_handle_event()
1856 switch(ap->evt_ring[evtcsm].code) { in ace_handle_event()
1859 ap->name); in ace_handle_event()
1863 "error\n", ap->name); in ace_handle_event()
1867 ap->name); in ace_handle_event()
1871 ap->name, ap->evt_ring[evtcsm].code); in ace_handle_event()
1878 if (ap->skb->rx_jumbo_skbuff[i].skb) { in ace_handle_event()
1879 ap->rx_jumbo_ring[i].size = 0; in ace_handle_event()
1880 set_aceaddr(&ap->rx_jumbo_ring[i].addr, 0); in ace_handle_event()
1881 dev_kfree_skb(ap->skb->rx_jumbo_skbuff[i].skb); in ace_handle_event()
1882 ap->skb->rx_jumbo_skbuff[i].skb = NULL; in ace_handle_event()
1886 if (ACE_IS_TIGON_I(ap)) { in ace_handle_event()
1891 ace_issue_cmd(ap->regs, &cmd); in ace_handle_event()
1893 writel(0, &((ap->regs)->RxJumboPrd)); in ace_handle_event()
1897 ap->jumbo = 0; in ace_handle_event()
1898 ap->rx_jumbo_skbprd = 0; in ace_handle_event()
1900 ap->name); in ace_handle_event()
1901 clear_bit(0, &ap->jumbo_refill_busy); in ace_handle_event()
1906 ap->name, ap->evt_ring[evtcsm].evt); in ace_handle_event()
1917 struct ace_private *ap = netdev_priv(dev); in ace_rx_int() local
1923 prefetchw(&ap->cur_rx_bufs); in ace_rx_int()
1924 prefetchw(&ap->cur_mini_bufs); in ace_rx_int()
1939 retdesc = &ap->rx_return_ring[idx]; in ace_rx_int()
1953 rip = &ap->skb->rx_std_skbuff[skbidx]; in ace_rx_int()
1958 rip = &ap->skb->rx_jumbo_skbuff[skbidx]; in ace_rx_int()
1960 atomic_dec(&ap->cur_jumbo_bufs); in ace_rx_int()
1963 rip = &ap->skb->rx_mini_skbuff[skbidx]; in ace_rx_int()
1976 dma_unmap_page(&ap->pdev->dev, dma_unmap_addr(rip, mapping), in ace_rx_int()
2009 atomic_sub(std_count, &ap->cur_rx_bufs); in ace_rx_int()
2010 if (!ACE_IS_TIGON_I(ap)) in ace_rx_int()
2011 atomic_sub(mini_count, &ap->cur_mini_bufs); in ace_rx_int()
2018 if (ACE_IS_TIGON_I(ap)) { in ace_rx_int()
2019 writel(idx, &ap->regs->RxRetCsm); in ace_rx_int()
2021 ap->cur_rx = idx; in ace_rx_int()
2033 struct ace_private *ap = netdev_priv(dev); in ace_tx_int() local
2039 info = ap->skb->tx_skbuff + idx; in ace_tx_int()
2043 dma_unmap_page(&ap->pdev->dev, in ace_tx_int()
2057 idx = (idx + 1) % ACE_TX_RING_ENTRIES(ap); in ace_tx_int()
2064 ap->tx_ret_csm = txcsm; in ace_tx_int()
2099 struct ace_private *ap = netdev_priv(dev); in ace_interrupt() local
2100 struct ace_regs __iomem *regs = ap->regs; in ace_interrupt()
2115 * which happened _after_ rxretprd = *ap->rx_ret_prd; but before in ace_interrupt()
2131 rxretprd = *ap->rx_ret_prd; in ace_interrupt()
2132 rxretcsm = ap->cur_rx; in ace_interrupt()
2137 txcsm = *ap->tx_csm; in ace_interrupt()
2138 idx = ap->tx_ret_csm; in ace_interrupt()
2148 if (!tx_ring_full(ap, txcsm, ap->tx_prd)) in ace_interrupt()
2153 evtprd = *ap->evt_prd; in ace_interrupt()
2168 cur_size = atomic_read(&ap->cur_rx_bufs); in ace_interrupt()
2171 !test_and_set_bit(0, &ap->std_refill_busy)) { in ace_interrupt()
2181 if (!ACE_IS_TIGON_I(ap)) { in ace_interrupt()
2182 cur_size = atomic_read(&ap->cur_mini_bufs); in ace_interrupt()
2186 &ap->mini_refill_busy)) { in ace_interrupt()
2198 if (ap->jumbo) { in ace_interrupt()
2199 cur_size = atomic_read(&ap->cur_jumbo_bufs); in ace_interrupt()
2203 &ap->jumbo_refill_busy)){ in ace_interrupt()
2214 if (run_tasklet && !ap->tasklet_pending) { in ace_interrupt()
2215 ap->tasklet_pending = 1; in ace_interrupt()
2216 tasklet_schedule(&ap->ace_tasklet); in ace_interrupt()
2225 struct ace_private *ap = netdev_priv(dev); in ace_open() local
2226 struct ace_regs __iomem *regs = ap->regs; in ace_open()
2229 if (!(ap->fw_running)) { in ace_open()
2246 if (ap->jumbo && in ace_open()
2247 !test_and_set_bit(0, &ap->jumbo_refill_busy)) in ace_open()
2256 ap->promisc = 1; in ace_open()
2258 ap->promisc = 0; in ace_open()
2259 ap->mcast_all = 0; in ace_open()
2273 tasklet_setup(&ap->ace_tasklet, ace_tasklet); in ace_open()
2280 struct ace_private *ap = netdev_priv(dev); in ace_close() local
2281 struct ace_regs __iomem *regs = ap->regs; in ace_close()
2294 if (ap->promisc) { in ace_close()
2299 ap->promisc = 0; in ace_close()
2307 tasklet_kill(&ap->ace_tasklet); in ace_close()
2317 for (i = 0; i < ACE_TX_RING_ENTRIES(ap); i++) { in ace_close()
2321 info = ap->skb->tx_skbuff + i; in ace_close()
2325 if (ACE_IS_TIGON_I(ap)) { in ace_close()
2328 tx = (__force struct tx_desc __iomem *) &ap->tx_ring[i]; in ace_close()
2333 memset(ap->tx_ring + i, 0, in ace_close()
2335 dma_unmap_page(&ap->pdev->dev, in ace_close()
2347 if (ap->jumbo) { in ace_close()
2362 ace_map_tx_skb(struct ace_private *ap, struct sk_buff *skb, in ace_map_tx_skb() argument
2368 mapping = dma_map_page(&ap->pdev->dev, virt_to_page(skb->data), in ace_map_tx_skb()
2372 info = ap->skb->tx_skbuff + idx; in ace_map_tx_skb()
2381 ace_load_tx_bd(struct ace_private *ap, struct tx_desc *desc, u64 addr, in ace_load_tx_bd() argument
2388 if (ACE_IS_TIGON_I(ap)) { in ace_load_tx_bd()
2406 struct ace_private *ap = netdev_priv(dev); in ace_start_xmit() local
2407 struct ace_regs __iomem *regs = ap->regs; in ace_start_xmit()
2413 idx = ap->tx_prd; in ace_start_xmit()
2415 if (tx_ring_full(ap, ap->tx_ret_csm, idx)) in ace_start_xmit()
2422 mapping = ace_map_tx_skb(ap, skb, skb, idx); in ace_start_xmit()
2430 desc = ap->tx_ring + idx; in ace_start_xmit()
2431 idx = (idx + 1) % ACE_TX_RING_ENTRIES(ap); in ace_start_xmit()
2434 if (tx_ring_full(ap, ap->tx_ret_csm, idx)) in ace_start_xmit()
2437 ace_load_tx_bd(ap, desc, mapping, flagsize, vlan_tag); in ace_start_xmit()
2443 mapping = ace_map_tx_skb(ap, skb, NULL, idx); in ace_start_xmit()
2452 ace_load_tx_bd(ap, ap->tx_ring + idx, mapping, flagsize, vlan_tag); in ace_start_xmit()
2454 idx = (idx + 1) % ACE_TX_RING_ENTRIES(ap); in ace_start_xmit()
2461 info = ap->skb->tx_skbuff + idx; in ace_start_xmit()
2462 desc = ap->tx_ring + idx; in ace_start_xmit()
2464 mapping = skb_frag_dma_map(&ap->pdev->dev, frag, 0, in ace_start_xmit()
2471 idx = (idx + 1) % ACE_TX_RING_ENTRIES(ap); in ace_start_xmit()
2475 if (tx_ring_full(ap, ap->tx_ret_csm, idx)) in ace_start_xmit()
2488 ace_load_tx_bd(ap, desc, mapping, flagsize, vlan_tag); in ace_start_xmit()
2493 ap->tx_prd = idx; in ace_start_xmit()
2494 ace_set_txprd(regs, ap, idx); in ace_start_xmit()
2505 if (!tx_ring_full(ap, ap->tx_ret_csm, idx)) in ace_start_xmit()
2542 struct ace_private *ap = netdev_priv(dev); in ace_change_mtu() local
2543 struct ace_regs __iomem *regs = ap->regs; in ace_change_mtu()
2549 if (!(ap->jumbo)) { in ace_change_mtu()
2552 ap->jumbo = 1; in ace_change_mtu()
2553 if (!test_and_set_bit(0, &ap->jumbo_refill_busy)) in ace_change_mtu()
2558 while (test_and_set_bit(0, &ap->jumbo_refill_busy)); in ace_change_mtu()
2561 if (ap->jumbo) { in ace_change_mtu()
2577 struct ace_private *ap = netdev_priv(dev); in ace_get_link_ksettings() local
2578 struct ace_regs __iomem *regs = ap->regs; in ace_get_link_ksettings()
2632 struct ace_private *ap = netdev_priv(dev); in ace_set_link_ksettings() local
2633 struct ace_regs __iomem *regs = ap->regs; in ace_set_link_ksettings()
2651 if (!ACE_IS_TIGON_I(ap)) in ace_set_link_ksettings()
2673 if (link != ap->link) { in ace_set_link_ksettings()
2678 ap->link = link; in ace_set_link_ksettings()
2680 if (!ACE_IS_TIGON_I(ap)) in ace_set_link_ksettings()
2695 struct ace_private *ap = netdev_priv(dev); in ace_get_drvinfo() local
2699 ap->firmware_major, ap->firmware_minor, ap->firmware_fix); in ace_get_drvinfo()
2701 if (ap->pdev) in ace_get_drvinfo()
2702 strlcpy(info->bus_info, pci_name(ap->pdev), in ace_get_drvinfo()
2712 struct ace_private *ap = netdev_priv(dev); in ace_set_mac_addr() local
2713 struct ace_regs __iomem *regs = ap->regs; in ace_set_mac_addr()
2740 struct ace_private *ap = netdev_priv(dev); in ace_set_multicast_list() local
2741 struct ace_regs __iomem *regs = ap->regs; in ace_set_multicast_list()
2744 if ((dev->flags & IFF_ALLMULTI) && !(ap->mcast_all)) { in ace_set_multicast_list()
2749 ap->mcast_all = 1; in ace_set_multicast_list()
2750 } else if (ap->mcast_all) { in ace_set_multicast_list()
2755 ap->mcast_all = 0; in ace_set_multicast_list()
2758 if ((dev->flags & IFF_PROMISC) && !(ap->promisc)) { in ace_set_multicast_list()
2763 ap->promisc = 1; in ace_set_multicast_list()
2764 }else if (!(dev->flags & IFF_PROMISC) && (ap->promisc)) { in ace_set_multicast_list()
2769 ap->promisc = 0; in ace_set_multicast_list()
2778 if (!netdev_mc_empty(dev) && !ap->mcast_all) { in ace_set_multicast_list()
2783 }else if (!ap->mcast_all) { in ace_set_multicast_list()
2794 struct ace_private *ap = netdev_priv(dev); in ace_get_stats() local
2796 (struct ace_mac_stats __iomem *)ap->regs->Stats; in ace_get_stats()
2868 struct ace_private *ap = netdev_priv(dev); in ace_load_firmware() local
2869 struct ace_regs __iomem *regs = ap->regs; in ace_load_firmware()
2876 "CPU is running!\n", ap->name); in ace_load_firmware()
2880 if (ACE_IS_TIGON_I(ap)) in ace_load_firmware()
2883 ret = request_firmware(&fw, fw_name, &ap->pdev->dev); in ace_load_firmware()
2886 ap->name, fw_name); in ace_load_firmware()
2897 ap->firmware_major = fw->data[0]; in ace_load_firmware()
2898 ap->firmware_minor = fw->data[1]; in ace_load_firmware()
2899 ap->firmware_fix = fw->data[2]; in ace_load_firmware()
2901 ap->firmware_start = be32_to_cpu(fw_data[1]); in ace_load_firmware()
2902 if (ap->firmware_start < 0x4000 || ap->firmware_start >= 0x80000) { in ace_load_firmware()
2904 ap->name, ap->firmware_start, fw_name); in ace_load_firmware()
2912 ap->name, load_addr, fw_name); in ace_load_firmware()
3075 struct ace_private *ap = netdev_priv(dev); in read_eeprom_byte() local
3076 struct ace_regs __iomem *regs = ap->regs; in read_eeprom_byte()
3093 printk(KERN_ERR "%s: Unable to sync eeprom\n", ap->name); in read_eeprom_byte()
3102 ap->name); in read_eeprom_byte()
3111 ap->name); in read_eeprom_byte()
3121 ap->name); in read_eeprom_byte()
3178 ap->name, offset); in read_eeprom_byte()