Lines Matching defs:adapter

181  * @adapter: board private structure
186 * in a variable in the adapter structure.
188 static void atl1_check_options(struct atl1_adapter *adapter)
190 struct pci_dev *pdev = adapter->pdev;
191 int bd = adapter->bd_number;
210 adapter->imt = (u16) val;
212 adapter->imt = (u16) (opt.def);
241 struct atl1_adapter *adapter = hw->back;
250 * atlx_irq_disable(adapter);
281 if (netif_msg_hw(adapter))
513 * Reads the adapter's MAC address from the EEPROM
636 struct atl1_adapter *adapter = hw->back;
669 if (netif_msg_hw(adapter))
680 if (netif_msg_hw(adapter))
773 struct atl1_adapter *adapter = hw->back;
784 if (netif_msg_link(adapter))
792 if (netif_msg_link(adapter))
826 * Performs basic configuration of the adapter.
868 struct atl1_adapter *adapter = hw->back;
891 if (netif_msg_hw(adapter))
922 * @adapter: board private structure to initialize
928 static int atl1_sw_init(struct atl1_adapter *adapter)
930 struct atl1_hw *hw = &adapter->hw;
931 struct net_device *netdev = adapter->netdev;
936 adapter->wol = 0;
937 device_set_wakeup_enable(&adapter->pdev->dev, false);
938 adapter->rx_buffer_len = (hw->max_frame_size + 7) & ~7;
939 adapter->ict = 50000; /* 100ms */
940 adapter->link_speed = SPEED_0; /* hardware init */
941 adapter->link_duplex = FULL_DUPLEX;
955 hw->rx_jumbo_th = adapter->rx_buffer_len / 8;
973 spin_lock_init(&adapter->lock);
974 spin_lock_init(&adapter->mb_lock);
981 struct atl1_adapter *adapter = netdev_priv(netdev);
984 atl1_read_phy_reg(&adapter->hw, reg_num & 0x1f, &result);
992 struct atl1_adapter *adapter = netdev_priv(netdev);
994 atl1_write_phy_reg(&adapter->hw, reg_num, val);
999 struct atl1_adapter *adapter = netdev_priv(netdev);
1006 spin_lock_irqsave(&adapter->lock, flags);
1007 retval = generic_mii_ioctl(&adapter->mii, if_mii(ifr), cmd, NULL);
1008 spin_unlock_irqrestore(&adapter->lock, flags);
1015 * @adapter: board private structure
1019 static s32 atl1_setup_ring_resources(struct atl1_adapter *adapter)
1021 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
1022 struct atl1_rfd_ring *rfd_ring = &adapter->rfd_ring;
1023 struct atl1_rrd_ring *rrd_ring = &adapter->rrd_ring;
1024 struct atl1_ring_header *ring_header = &adapter->ring_header;
1025 struct pci_dev *pdev = adapter->pdev;
1032 if (netif_msg_drv(adapter))
1056 if (netif_msg_drv(adapter))
1085 adapter->cmb.dma = rrd_ring->dma + rrd_ring->size;
1086 offset = (adapter->cmb.dma & 0x7) ? (8 - (adapter->cmb.dma & 0x7)) : 0;
1087 adapter->cmb.dma += offset;
1088 adapter->cmb.cmb = (struct coals_msg_block *)
1092 adapter->smb.dma = adapter->cmb.dma + sizeof(struct coals_msg_block);
1093 offset = (adapter->smb.dma & 0x7) ? (8 - (adapter->smb.dma & 0x7)) : 0;
1094 adapter->smb.dma += offset;
1095 adapter->smb.smb = (struct stats_msg_block *)
1096 ((u8 *) adapter->cmb.cmb +
1106 static void atl1_init_ring_ptrs(struct atl1_adapter *adapter)
1108 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
1109 struct atl1_rfd_ring *rfd_ring = &adapter->rfd_ring;
1110 struct atl1_rrd_ring *rrd_ring = &adapter->rrd_ring;
1124 * @adapter: board private structure
1126 static void atl1_clean_rx_ring(struct atl1_adapter *adapter)
1128 struct atl1_rfd_ring *rfd_ring = &adapter->rfd_ring;
1129 struct atl1_rrd_ring *rrd_ring = &adapter->rrd_ring;
1131 struct pci_dev *pdev = adapter->pdev;
1164 * @adapter: board private structure
1166 static void atl1_clean_tx_ring(struct atl1_adapter *adapter)
1168 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
1170 struct pci_dev *pdev = adapter->pdev;
1204 * @adapter: board private structure
1208 static void atl1_free_ring_resources(struct atl1_adapter *adapter)
1210 struct pci_dev *pdev = adapter->pdev;
1211 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
1212 struct atl1_rfd_ring *rfd_ring = &adapter->rfd_ring;
1213 struct atl1_rrd_ring *rrd_ring = &adapter->rrd_ring;
1214 struct atl1_ring_header *ring_header = &adapter->ring_header;
1216 atl1_clean_tx_ring(adapter);
1217 atl1_clean_rx_ring(adapter);
1234 adapter->cmb.dma = 0;
1235 adapter->cmb.cmb = NULL;
1237 adapter->smb.dma = 0;
1238 adapter->smb.smb = NULL;
1241 static void atl1_setup_mac_ctrl(struct atl1_adapter *adapter)
1244 struct atl1_hw *hw = &adapter->hw;
1245 struct net_device *netdev = adapter->netdev;
1249 if (FULL_DUPLEX == adapter->link_duplex)
1252 value |= ((u32) ((SPEED_1000 == adapter->link_speed) ?
1260 value |= (((u32) adapter->hw.preamble_len
1265 if (adapter->rx_csum)
1278 static u32 atl1_check_link(struct atl1_adapter *adapter)
1280 struct atl1_hw *hw = &adapter->hw;
1281 struct net_device *netdev = adapter->netdev;
1293 if (netif_msg_link(adapter))
1294 dev_info(&adapter->pdev->dev, "link is down\n");
1295 adapter->link_speed = SPEED_0;
1331 if (adapter->link_speed != speed ||
1332 adapter->link_duplex != duplex) {
1333 adapter->link_speed = speed;
1334 adapter->link_duplex = duplex;
1335 atl1_setup_mac_ctrl(adapter);
1336 if (netif_msg_link(adapter))
1337 dev_info(&adapter->pdev->dev,
1339 netdev->name, adapter->link_speed,
1340 adapter->link_duplex == FULL_DUPLEX ?
1352 adapter->link_speed = SPEED_0;
1381 if (!adapter->phy_timer_pending) {
1382 adapter->phy_timer_pending = true;
1383 mod_timer(&adapter->phy_config_timer,
1390 static void set_flow_ctrl_old(struct atl1_adapter *adapter)
1395 value = adapter->rfd_ring.count;
1403 iowrite32(value, adapter->hw.hw_addr + REG_RXQ_RXF_PAUSE_THRESH);
1406 value = adapter->rrd_ring.count;
1413 iowrite32(value, adapter->hw.hw_addr + REG_RXQ_RRD_PAUSE_THRESH);
1447 * @adapter: board private structure
1451 static u32 atl1_configure(struct atl1_adapter *adapter)
1453 struct atl1_hw *hw = &adapter->hw;
1457 iowrite32(0xffffffff, adapter->hw.hw_addr + REG_ISR);
1471 iowrite32((u32) ((adapter->tpd_ring.dma & 0xffffffff00000000ULL) >> 32),
1474 iowrite32((u32) (adapter->rfd_ring.dma & 0x00000000ffffffffULL),
1476 iowrite32((u32) (adapter->rrd_ring.dma & 0x00000000ffffffffULL),
1478 iowrite32((u32) (adapter->tpd_ring.dma & 0x00000000ffffffffULL),
1480 iowrite32((u32) (adapter->cmb.dma & 0x00000000ffffffffULL),
1482 iowrite32((u32) (adapter->smb.dma & 0x00000000ffffffffULL),
1486 value = adapter->rrd_ring.count;
1488 value += adapter->rfd_ring.count;
1490 iowrite32(adapter->tpd_ring.count, hw->hw_addr +
1497 value = ((atomic_read(&adapter->tpd_ring.next_to_use)
1499 ((atomic_read(&adapter->rrd_ring.next_to_clean)
1501 ((atomic_read(&adapter->rfd_ring.next_to_use)
1527 iowrite16(adapter->imt, hw->hw_addr + REG_IRQ_MODU_TIMER_INIT);
1531 iowrite16(adapter->ict, hw->hw_addr + REG_CMBDISDMA_TIMER);
1551 set_flow_ctrl_old(adapter);
1597 value = (hw->cmb_tpd > adapter->tpd_ring.count) ?
1598 hw->cmb_tpd : adapter->tpd_ring.count;
1610 value = ioread32(adapter->hw.hw_addr + REG_ISR);
1617 iowrite32(0x3fffffff, adapter->hw.hw_addr + REG_ISR);
1618 iowrite32(0, adapter->hw.hw_addr + REG_ISR);
1625 static void atl1_pcie_patch(struct atl1_adapter *adapter)
1631 iowrite32(value, adapter->hw.hw_addr + 0x12FC);
1633 value = ioread32(adapter->hw.hw_addr + 0x1008);
1635 iowrite32(value, adapter->hw.hw_addr + 0x1008);
1644 static void atl1_via_workaround(struct atl1_adapter *adapter)
1648 value = ioread16(adapter->hw.hw_addr + PCI_COMMAND);
1651 iowrite32(value, adapter->hw.hw_addr + PCI_COMMAND);
1654 static void atl1_inc_smb(struct atl1_adapter *adapter)
1656 struct net_device *netdev = adapter->netdev;
1657 struct stats_msg_block *smb = adapter->smb.smb;
1672 adapter->soft_stats.rx_packets += smb->rx_ok + new_rx_errors;
1673 adapter->soft_stats.tx_packets += smb->tx_ok + new_tx_errors;
1674 adapter->soft_stats.rx_bytes += smb->rx_byte_cnt;
1675 adapter->soft_stats.tx_bytes += smb->tx_byte_cnt;
1676 adapter->soft_stats.multicast += smb->rx_mcast;
1677 adapter->soft_stats.collisions += smb->tx_1_col +
1683 adapter->soft_stats.rx_errors += new_rx_errors;
1684 adapter->soft_stats.rx_fifo_errors += smb->rx_rxf_ov;
1685 adapter->soft_stats.rx_length_errors += smb->rx_len_err;
1686 adapter->soft_stats.rx_crc_errors += smb->rx_fcs_err;
1687 adapter->soft_stats.rx_frame_errors += smb->rx_align_err;
1689 adapter->soft_stats.rx_pause += smb->rx_pause;
1690 adapter->soft_stats.rx_rrd_ov += smb->rx_rrd_ov;
1691 adapter->soft_stats.rx_trunc += smb->rx_sz_ov;
1694 adapter->soft_stats.tx_errors += new_tx_errors;
1695 adapter->soft_stats.tx_fifo_errors += smb->tx_underrun;
1696 adapter->soft_stats.tx_aborted_errors += smb->tx_abort_col;
1697 adapter->soft_stats.tx_window_errors += smb->tx_late_col;
1699 adapter->soft_stats.excecol += smb->tx_abort_col;
1700 adapter->soft_stats.deffer += smb->tx_defer;
1701 adapter->soft_stats.scc += smb->tx_1_col;
1702 adapter->soft_stats.mcc += smb->tx_2_col;
1703 adapter->soft_stats.latecol += smb->tx_late_col;
1704 adapter->soft_stats.tx_underrun += smb->tx_underrun;
1705 adapter->soft_stats.tx_trunc += smb->tx_trunc;
1706 adapter->soft_stats.tx_pause += smb->tx_pause;
1708 netdev->stats.rx_bytes = adapter->soft_stats.rx_bytes;
1709 netdev->stats.tx_bytes = adapter->soft_stats.tx_bytes;
1710 netdev->stats.multicast = adapter->soft_stats.multicast;
1711 netdev->stats.collisions = adapter->soft_stats.collisions;
1712 netdev->stats.rx_errors = adapter->soft_stats.rx_errors;
1714 adapter->soft_stats.rx_length_errors;
1715 netdev->stats.rx_crc_errors = adapter->soft_stats.rx_crc_errors;
1717 adapter->soft_stats.rx_frame_errors;
1718 netdev->stats.rx_fifo_errors = adapter->soft_stats.rx_fifo_errors;
1719 netdev->stats.rx_dropped = adapter->soft_stats.rx_rrd_ov;
1720 netdev->stats.tx_errors = adapter->soft_stats.tx_errors;
1721 netdev->stats.tx_fifo_errors = adapter->soft_stats.tx_fifo_errors;
1723 adapter->soft_stats.tx_aborted_errors;
1725 adapter->soft_stats.tx_window_errors;
1727 adapter->soft_stats.tx_carrier_errors;
1729 netdev->stats.rx_packets = adapter->soft_stats.rx_packets;
1730 netdev->stats.tx_packets = adapter->soft_stats.tx_packets;
1733 static void atl1_update_mailbox(struct atl1_adapter *adapter)
1741 spin_lock_irqsave(&adapter->mb_lock, flags);
1743 tpd_next_to_use = atomic_read(&adapter->tpd_ring.next_to_use);
1744 rfd_next_to_use = atomic_read(&adapter->rfd_ring.next_to_use);
1745 rrd_next_to_clean = atomic_read(&adapter->rrd_ring.next_to_clean);
1753 iowrite32(value, adapter->hw.hw_addr + REG_MAILBOX);
1755 spin_unlock_irqrestore(&adapter->mb_lock, flags);
1758 static void atl1_clean_alloc_flag(struct atl1_adapter *adapter,
1761 struct atl1_rfd_ring *rfd_ring = &adapter->rfd_ring;
1771 static void atl1_update_rfd_index(struct atl1_adapter *adapter,
1776 num_buf = (rrd->xsz.xsum_sz.pkt_size + adapter->rx_buffer_len - 1) /
1777 adapter->rx_buffer_len;
1780 atl1_clean_alloc_flag(adapter, rrd, num_buf);
1783 static void atl1_rx_checksum(struct atl1_adapter *adapter,
1786 struct pci_dev *pdev = adapter->pdev;
1804 adapter->hw_csum_err++;
1805 if (netif_msg_rx_err(adapter))
1821 adapter->hw_csum_good++;
1828 * @adapter: address of board private structure
1830 static u16 atl1_alloc_rx_buffers(struct atl1_adapter *adapter)
1832 struct atl1_rfd_ring *rfd_ring = &adapter->rfd_ring;
1833 struct pci_dev *pdev = adapter->pdev;
1856 skb = netdev_alloc_skb_ip_align(adapter->netdev,
1857 adapter->rx_buffer_len);
1860 adapter->soft_stats.rx_dropped++;
1866 buffer_info->length = (u16) adapter->rx_buffer_len;
1870 adapter->rx_buffer_len,
1873 rfd_desc->buf_len = cpu_to_le16(adapter->rx_buffer_len);
1899 static int atl1_intr_rx(struct atl1_adapter *adapter, int budget)
1905 struct atl1_rfd_ring *rfd_ring = &adapter->rfd_ring;
1906 struct atl1_rrd_ring *rrd_ring = &adapter->rrd_ring;
1923 else if (netif_msg_rx_err(adapter)) {
1924 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
1926 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
1928 adapter->rx_buffer_len);
1929 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
1932 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
1935 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
1938 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
1941 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
1953 if (netif_msg_rx_err(adapter))
1954 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
1958 atl1_update_rfd_index(adapter, rrd);
1972 atl1_clean_alloc_flag(adapter, rrd, 0);
1995 dma_unmap_page(&adapter->pdev->dev, buffer_info->dma,
2004 atl1_rx_checksum(adapter, rrd, skb);
2005 skb->protocol = eth_type_trans(skb, adapter->netdev);
2024 atl1_alloc_rx_buffers(adapter);
2031 spin_lock(&adapter->mb_lock);
2033 tpd_next_to_use = atomic_read(&adapter->tpd_ring.next_to_use);
2035 atomic_read(&adapter->rfd_ring.next_to_use);
2037 atomic_read(&adapter->rrd_ring.next_to_clean);
2044 iowrite32(value, adapter->hw.hw_addr + REG_MAILBOX);
2045 spin_unlock(&adapter->mb_lock);
2051 static int atl1_intr_tx(struct atl1_adapter *adapter)
2053 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
2060 cmb_tpd_next_to_clean = le16_to_cpu(adapter->cmb.cmb->tpd_cons_idx);
2065 dma_unmap_page(&adapter->pdev->dev, buffer_info->dma,
2082 if (netif_queue_stopped(adapter->netdev) &&
2083 netif_carrier_ok(adapter->netdev))
2084 netif_wake_queue(adapter->netdev);
2098 static int atl1_tso(struct atl1_adapter *adapter, struct sk_buff *skb,
2161 static int atl1_tx_csum(struct atl1_adapter *adapter, struct sk_buff *skb,
2171 if (netif_msg_tx_err(adapter))
2172 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
2186 static void atl1_tx_map(struct atl1_adapter *adapter, struct sk_buff *skb,
2189 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
2216 buffer_info->dma = dma_map_page(&adapter->pdev->dev, page,
2241 buffer_info->dma = dma_map_page(&adapter->pdev->dev,
2254 buffer_info->dma = dma_map_page(&adapter->pdev->dev, page,
2277 buffer_info->dma = skb_frag_dma_map(&adapter->pdev->dev,
2290 static void atl1_tx_queue(struct atl1_adapter *adapter, u16 count,
2293 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
2302 tpd = ATL1_TPD_DESC(&adapter->tpd_ring, next_to_use);
2343 struct atl1_adapter *adapter = netdev_priv(netdev);
2344 struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
2386 if (atl1_tpd_avail(&adapter->tpd_ring) < count) {
2389 if (netif_msg_tx_queued(adapter))
2390 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
2408 tso = atl1_tso(adapter, skb, ptpd);
2415 ret_val = atl1_tx_csum(adapter, skb, ptpd);
2422 atl1_tx_map(adapter, skb, ptpd);
2423 atl1_tx_queue(adapter, count, ptpd);
2424 atl1_update_mailbox(adapter);
2430 struct atl1_adapter *adapter = container_of(napi, struct atl1_adapter, napi);
2431 int work_done = atl1_intr_rx(adapter, budget);
2433 if (atl1_intr_tx(adapter))
2442 if (likely(adapter->int_enabled))
2443 atlx_imr_set(adapter, IMR_NORMAL_MASK);
2447 static inline int atl1_sched_rings_clean(struct atl1_adapter* adapter)
2449 if (!napi_schedule_prep(&adapter->napi))
2457 __napi_schedule(&adapter->napi);
2464 if (!adapter->int_enabled)
2467 atlx_imr_set(adapter, IMR_NORXTX_MASK);
2478 struct atl1_adapter *adapter = netdev_priv(data);
2481 status = adapter->cmb.cmb->int_stats;
2490 adapter->cmb.cmb->int_stats = status & (ISR_CMB_TX | ISR_CMB_RX);
2493 atlx_clear_phy_int(adapter);
2496 iowrite32(status | ISR_DIS_INT, adapter->hw.hw_addr + REG_ISR);
2500 atl1_inc_smb(adapter);
2504 if (netif_msg_intr(adapter))
2505 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
2507 if (netif_running(adapter->netdev)) { /* reset MAC */
2508 atlx_irq_disable(adapter);
2509 schedule_work(&adapter->reset_dev_task);
2516 if (netif_msg_intr(adapter))
2517 dev_printk(KERN_DEBUG, &adapter->pdev->dev,
2520 atlx_irq_disable(adapter);
2521 schedule_work(&adapter->reset_dev_task);
2527 adapter->soft_stats.tx_carrier_errors++;
2528 atl1_check_for_link(adapter);
2533 atl1_sched_rings_clean(adapter))
2534 adapter->cmb.cmb->int_stats = adapter->cmb.cmb->int_stats &
2541 if (netif_msg_intr(adapter))
2543 &adapter->pdev->dev,
2546 atl1_sched_rings_clean(adapter);
2550 iowrite32(ISR_DIS_SMB | ISR_DIS_DMA, adapter->hw.hw_addr + REG_ISR);
2561 struct atl1_adapter *adapter = from_timer(adapter, t,
2563 struct atl1_hw *hw = &adapter->hw;
2566 spin_lock_irqsave(&adapter->lock, flags);
2567 adapter->phy_timer_pending = false;
2571 spin_unlock_irqrestore(&adapter->lock, flags);
2585 static int atl1_reset(struct atl1_adapter *adapter)
2588 ret = atl1_reset_hw(&adapter->hw);
2591 return atl1_init_hw(&adapter->hw);
2594 static s32 atl1_up(struct atl1_adapter *adapter)
2596 struct net_device *netdev = adapter->netdev;
2602 atl1_init_ring_ptrs(adapter);
2603 atlx_restore_vlan(adapter);
2604 err = atl1_alloc_rx_buffers(adapter);
2609 if (unlikely(atl1_configure(adapter))) {
2614 err = pci_enable_msi(adapter->pdev);
2616 if (netif_msg_ifup(adapter))
2617 dev_info(&adapter->pdev->dev,
2622 err = request_irq(adapter->pdev->irq, atl1_intr, irq_flags,
2627 napi_enable(&adapter->napi);
2628 atlx_irq_enable(adapter);
2629 atl1_check_link(adapter);
2634 pci_disable_msi(adapter->pdev);
2636 atl1_clean_rx_ring(adapter);
2640 static void atl1_down(struct atl1_adapter *adapter)
2642 struct net_device *netdev = adapter->netdev;
2644 napi_disable(&adapter->napi);
2646 del_timer_sync(&adapter->phy_config_timer);
2647 adapter->phy_timer_pending = false;
2649 atlx_irq_disable(adapter);
2650 free_irq(adapter->pdev->irq, netdev);
2651 pci_disable_msi(adapter->pdev);
2652 atl1_reset_hw(&adapter->hw);
2653 adapter->cmb.cmb->int_stats = 0;
2655 adapter->link_speed = SPEED_0;
2656 adapter->link_duplex = -1;
2659 atl1_clean_tx_ring(adapter);
2660 atl1_clean_rx_ring(adapter);
2665 struct atl1_adapter *adapter =
2667 struct net_device *netdev = adapter->netdev;
2670 atl1_down(adapter);
2671 atl1_up(adapter);
2684 struct atl1_adapter *adapter = netdev_priv(netdev);
2687 adapter->hw.max_frame_size = max_frame;
2688 adapter->hw.tx_jumbo_task_th = (max_frame + 7) >> 3;
2689 adapter->rx_buffer_len = (max_frame + 7) & ~7;
2690 adapter->hw.rx_jumbo_th = adapter->rx_buffer_len / 8;
2694 atl1_down(adapter);
2695 atl1_up(adapter);
2715 struct atl1_adapter *adapter = netdev_priv(netdev);
2721 err = atl1_setup_ring_resources(adapter);
2725 err = atl1_up(adapter);
2732 atl1_reset(adapter);
2749 struct atl1_adapter *adapter = netdev_priv(netdev);
2750 atl1_down(adapter);
2751 atl1_free_ring_resources(adapter);
2759 struct atl1_adapter *adapter = netdev_priv(netdev);
2760 struct atl1_hw *hw = &adapter->hw;
2762 u32 wufc = adapter->wol;
2769 atl1_down(adapter);
2782 if (netif_msg_ifdown(adapter))
2802 ctrl |= (((u32)adapter->hw.preamble_len &
2841 struct atl1_adapter *adapter = netdev_priv(netdev);
2843 iowrite32(0, adapter->hw.hw_addr + REG_WOL_CTRL);
2845 atl1_reset_hw(&adapter->hw);
2848 adapter->cmb.cmb->int_stats = 0;
2849 atl1_up(adapter);
2862 struct atl1_adapter *adapter = netdev_priv(netdev);
2867 pci_wake_from_d3(pdev, adapter->wol);
2904 * atl1_probe initializes an adapter identified by a pci_dev structure.
2905 * The OS initialization, configuring of the adapter private structure,
2911 struct atl1_adapter *adapter;
2956 adapter = netdev_priv(netdev);
2957 adapter->netdev = netdev;
2958 adapter->pdev = pdev;
2959 adapter->hw.back = adapter;
2960 adapter->msg_enable = netif_msg_init(debug, atl1_default_msg);
2962 adapter->hw.hw_addr = pci_iomap(pdev, 0, 0);
2963 if (!adapter->hw.hw_addr) {
2968 adapter->hw.dev_rev = ioread16(adapter->hw.hw_addr +
2972 adapter->rfd_ring.count = adapter->rrd_ring.count = ATL1_DEFAULT_RFD;
2973 adapter->tpd_ring.count = ATL1_DEFAULT_TPD;
2975 adapter->mii.dev = netdev;
2976 adapter->mii.mdio_read = mdio_read;
2977 adapter->mii.mdio_write = mdio_write;
2978 adapter->mii.phy_id_mask = 0x1f;
2979 adapter->mii.reg_num_mask = 0x1f;
2983 netif_napi_add(netdev, &adapter->napi, atl1_rings_clean);
2986 adapter->bd_number = cards_found;
2989 err = atl1_sw_init(adapter);
3013 /* atl1_pcie_patch(adapter); */
3016 iowrite16(0, adapter->hw.hw_addr + REG_PHY_ENABLE);
3022 if (atl1_reset_hw(&adapter->hw)) {
3028 if (atl1_read_mac_addr(&adapter->hw)) {
3032 eth_hw_addr_set(netdev, adapter->hw.mac_addr);
3039 atl1_check_options(adapter);
3042 err = atl1_init_hw(&adapter->hw);
3048 atl1_pcie_patch(adapter);
3052 timer_setup(&adapter->phy_config_timer, atl1_phy_config, 0);
3053 adapter->phy_timer_pending = false;
3055 INIT_WORK(&adapter->reset_dev_task, atl1_reset_dev_task);
3057 INIT_WORK(&adapter->link_chg_task, atlx_link_chg_task);
3064 atl1_via_workaround(adapter);
3068 pci_iounmap(pdev, adapter->hw.hw_addr);
3091 struct atl1_adapter *adapter;
3096 adapter = netdev_priv(netdev);
3103 if (!ether_addr_equal_unaligned(adapter->hw.mac_addr,
3104 adapter->hw.perm_mac_addr)) {
3105 memcpy(adapter->hw.mac_addr, adapter->hw.perm_mac_addr,
3107 atl1_set_mac_addr(&adapter->hw);
3110 iowrite16(0, adapter->hw.hw_addr + REG_PHY_ENABLE);
3112 pci_iounmap(pdev, adapter->hw.hw_addr);
3171 struct atl1_adapter *adapter = netdev_priv(netdev);
3176 p = (char *)adapter+atl1_gstrings_stats[i].stat_offset;
3196 struct atl1_adapter *adapter = netdev_priv(netdev);
3197 struct atl1_hw *hw = &adapter->hw;
3224 if (netif_carrier_ok(adapter->netdev)) {
3253 struct atl1_adapter *adapter = netdev_priv(netdev);
3254 struct atl1_hw *hw = &adapter->hw;
3259 if (netif_running(adapter->netdev)) {
3260 if (netif_msg_link(adapter))
3261 dev_dbg(&adapter->pdev->dev,
3262 "ethtool shutting down adapter\n");
3263 atl1_down(adapter);
3272 if (netif_msg_link(adapter))
3273 dev_warn(&adapter->pdev->dev,
3294 if (netif_msg_link(adapter))
3295 dev_warn(&adapter->pdev->dev,
3327 if (netif_running(adapter->netdev)) {
3328 if (netif_msg_link(adapter))
3329 dev_dbg(&adapter->pdev->dev,
3330 "ethtool starting adapter\n");
3331 atl1_up(adapter);
3333 if (netif_msg_link(adapter))
3334 dev_dbg(&adapter->pdev->dev,
3335 "ethtool resetting adapter\n");
3336 atl1_reset(adapter);
3344 struct atl1_adapter *adapter = netdev_priv(netdev);
3347 strscpy(drvinfo->bus_info, pci_name(adapter->pdev),
3354 struct atl1_adapter *adapter = netdev_priv(netdev);
3358 if (adapter->wol & ATLX_WUFC_MAG)
3365 struct atl1_adapter *adapter = netdev_priv(netdev);
3370 adapter->wol = 0;
3372 adapter->wol |= ATLX_WUFC_MAG;
3374 device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol);
3381 struct atl1_adapter *adapter = netdev_priv(netdev);
3382 return adapter->msg_enable;
3387 struct atl1_adapter *adapter = netdev_priv(netdev);
3388 adapter->msg_enable = value;
3399 struct atl1_adapter *adapter = netdev_priv(netdev);
3400 struct atl1_hw *hw = &adapter->hw;
3447 struct atl1_adapter *adapter = netdev_priv(netdev);
3448 struct atl1_tpd_ring *txdr = &adapter->tpd_ring;
3449 struct atl1_rfd_ring *rxdr = &adapter->rfd_ring;
3462 struct atl1_adapter *adapter = netdev_priv(netdev);
3463 struct atl1_tpd_ring *tpdr = &adapter->tpd_ring;
3464 struct atl1_rrd_ring *rrdr = &adapter->rrd_ring;
3465 struct atl1_rfd_ring *rfdr = &adapter->rfd_ring;
3475 tpd_old = adapter->tpd_ring;
3476 rfd_old = adapter->rfd_ring;
3477 rrd_old = adapter->rrd_ring;
3478 rhdr_old = adapter->ring_header;
3480 if (netif_running(adapter->netdev))
3481 atl1_down(adapter);
3494 if (netif_running(adapter->netdev)) {
3496 err = atl1_setup_ring_resources(adapter);
3505 rfd_new = adapter->rfd_ring;
3506 rrd_new = adapter->rrd_ring;
3507 tpd_new = adapter->tpd_ring;
3508 rhdr_new = adapter->ring_header;
3509 adapter->rfd_ring = rfd_old;
3510 adapter->rrd_ring = rrd_old;
3511 adapter->tpd_ring = tpd_old;
3512 adapter->ring_header = rhdr_old;
3517 smb = adapter->smb;
3518 cmb = adapter->cmb;
3519 atl1_free_ring_resources(adapter);
3520 adapter->rfd_ring = rfd_new;
3521 adapter->rrd_ring = rrd_new;
3522 adapter->tpd_ring = tpd_new;
3523 adapter->ring_header = rhdr_new;
3524 adapter->smb = smb;
3525 adapter->cmb = cmb;
3527 err = atl1_up(adapter);
3534 adapter->rfd_ring = rfd_old;
3535 adapter->rrd_ring = rrd_old;
3536 adapter->tpd_ring = tpd_old;
3537 adapter->ring_header = rhdr_old;
3538 atl1_up(adapter);
3545 struct atl1_adapter *adapter = netdev_priv(netdev);
3546 struct atl1_hw *hw = &adapter->hw;
3561 struct atl1_adapter *adapter = netdev_priv(netdev);
3562 struct atl1_hw *hw = &adapter->hw;
3596 struct atl1_adapter *adapter = netdev_priv(netdev);
3597 struct atl1_hw *hw = &adapter->hw;
3601 atl1_down(adapter);
3625 atl1_up(adapter);