.. | .. |
---|
150 | 150 | |
---|
151 | 151 | |
---|
152 | 152 | #define DRV_NAME "e100" |
---|
153 | | -#define DRV_EXT "-NAPI" |
---|
154 | | -#define DRV_VERSION "3.5.24-k2"DRV_EXT |
---|
155 | 153 | #define DRV_DESCRIPTION "Intel(R) PRO/100 Network Driver" |
---|
156 | 154 | #define DRV_COPYRIGHT "Copyright(c) 1999-2006 Intel Corporation" |
---|
157 | 155 | |
---|
.. | .. |
---|
164 | 162 | |
---|
165 | 163 | MODULE_DESCRIPTION(DRV_DESCRIPTION); |
---|
166 | 164 | MODULE_AUTHOR(DRV_COPYRIGHT); |
---|
167 | | -MODULE_LICENSE("GPL"); |
---|
168 | | -MODULE_VERSION(DRV_VERSION); |
---|
| 165 | +MODULE_LICENSE("GPL v2"); |
---|
169 | 166 | MODULE_FIRMWARE(FIRMWARE_D101M); |
---|
170 | 167 | MODULE_FIRMWARE(FIRMWARE_D101S); |
---|
171 | 168 | MODULE_FIRMWARE(FIRMWARE_D102E); |
---|
.. | .. |
---|
387 | 384 | cb_ok = 0x2000, |
---|
388 | 385 | }; |
---|
389 | 386 | |
---|
390 | | -/** |
---|
| 387 | +/* |
---|
391 | 388 | * cb_command - Command Block flags |
---|
392 | 389 | * @cb_tx_nc: 0: controller does CRC (normal), 1: CRC from skb memory |
---|
393 | 390 | */ |
---|
.. | .. |
---|
1534 | 1531 | e100_hw_reset(nic); |
---|
1535 | 1532 | |
---|
1536 | 1533 | netif_err(nic, hw, nic->netdev, "e100_hw_init\n"); |
---|
1537 | | - if (!in_interrupt() && (err = e100_self_test(nic))) |
---|
| 1534 | + if ((err = e100_self_test(nic))) |
---|
1538 | 1535 | return err; |
---|
1539 | 1536 | |
---|
1540 | 1537 | if ((err = e100_phy_init(nic))) |
---|
.. | .. |
---|
1742 | 1739 | dma_addr_t dma_addr; |
---|
1743 | 1740 | cb->command = nic->tx_command; |
---|
1744 | 1741 | |
---|
1745 | | - dma_addr = pci_map_single(nic->pdev, |
---|
1746 | | - skb->data, skb->len, PCI_DMA_TODEVICE); |
---|
| 1742 | + dma_addr = dma_map_single(&nic->pdev->dev, skb->data, skb->len, |
---|
| 1743 | + DMA_TO_DEVICE); |
---|
1747 | 1744 | /* If we can't map the skb, have the upper layer try later */ |
---|
1748 | | - if (pci_dma_mapping_error(nic->pdev, dma_addr)) { |
---|
1749 | | - dev_kfree_skb_any(skb); |
---|
1750 | | - skb = NULL; |
---|
| 1745 | + if (dma_mapping_error(&nic->pdev->dev, dma_addr)) |
---|
1751 | 1746 | return -ENOMEM; |
---|
1752 | | - } |
---|
1753 | 1747 | |
---|
1754 | 1748 | /* |
---|
1755 | 1749 | * Use the last 4 bytes of the SKB payload packet as the CRC, used for |
---|
.. | .. |
---|
1831 | 1825 | dev->stats.tx_packets++; |
---|
1832 | 1826 | dev->stats.tx_bytes += cb->skb->len; |
---|
1833 | 1827 | |
---|
1834 | | - pci_unmap_single(nic->pdev, |
---|
1835 | | - le32_to_cpu(cb->u.tcb.tbd.buf_addr), |
---|
1836 | | - le16_to_cpu(cb->u.tcb.tbd.size), |
---|
1837 | | - PCI_DMA_TODEVICE); |
---|
| 1828 | + dma_unmap_single(&nic->pdev->dev, |
---|
| 1829 | + le32_to_cpu(cb->u.tcb.tbd.buf_addr), |
---|
| 1830 | + le16_to_cpu(cb->u.tcb.tbd.size), |
---|
| 1831 | + DMA_TO_DEVICE); |
---|
1838 | 1832 | dev_kfree_skb_any(cb->skb); |
---|
1839 | 1833 | cb->skb = NULL; |
---|
1840 | 1834 | tx_cleaned = 1; |
---|
.. | .. |
---|
1858 | 1852 | while (nic->cbs_avail != nic->params.cbs.count) { |
---|
1859 | 1853 | struct cb *cb = nic->cb_to_clean; |
---|
1860 | 1854 | if (cb->skb) { |
---|
1861 | | - pci_unmap_single(nic->pdev, |
---|
1862 | | - le32_to_cpu(cb->u.tcb.tbd.buf_addr), |
---|
1863 | | - le16_to_cpu(cb->u.tcb.tbd.size), |
---|
1864 | | - PCI_DMA_TODEVICE); |
---|
| 1855 | + dma_unmap_single(&nic->pdev->dev, |
---|
| 1856 | + le32_to_cpu(cb->u.tcb.tbd.buf_addr), |
---|
| 1857 | + le16_to_cpu(cb->u.tcb.tbd.size), |
---|
| 1858 | + DMA_TO_DEVICE); |
---|
1865 | 1859 | dev_kfree_skb(cb->skb); |
---|
1866 | 1860 | } |
---|
1867 | 1861 | nic->cb_to_clean = nic->cb_to_clean->next; |
---|
.. | .. |
---|
1928 | 1922 | |
---|
1929 | 1923 | /* Init, and map the RFD. */ |
---|
1930 | 1924 | skb_copy_to_linear_data(rx->skb, &nic->blank_rfd, sizeof(struct rfd)); |
---|
1931 | | - rx->dma_addr = pci_map_single(nic->pdev, rx->skb->data, |
---|
1932 | | - RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL); |
---|
| 1925 | + rx->dma_addr = dma_map_single(&nic->pdev->dev, rx->skb->data, |
---|
| 1926 | + RFD_BUF_LEN, DMA_BIDIRECTIONAL); |
---|
1933 | 1927 | |
---|
1934 | | - if (pci_dma_mapping_error(nic->pdev, rx->dma_addr)) { |
---|
| 1928 | + if (dma_mapping_error(&nic->pdev->dev, rx->dma_addr)) { |
---|
1935 | 1929 | dev_kfree_skb_any(rx->skb); |
---|
1936 | 1930 | rx->skb = NULL; |
---|
1937 | 1931 | rx->dma_addr = 0; |
---|
.. | .. |
---|
1944 | 1938 | if (rx->prev->skb) { |
---|
1945 | 1939 | struct rfd *prev_rfd = (struct rfd *)rx->prev->skb->data; |
---|
1946 | 1940 | put_unaligned_le32(rx->dma_addr, &prev_rfd->link); |
---|
1947 | | - pci_dma_sync_single_for_device(nic->pdev, rx->prev->dma_addr, |
---|
1948 | | - sizeof(struct rfd), PCI_DMA_BIDIRECTIONAL); |
---|
| 1941 | + dma_sync_single_for_device(&nic->pdev->dev, |
---|
| 1942 | + rx->prev->dma_addr, |
---|
| 1943 | + sizeof(struct rfd), |
---|
| 1944 | + DMA_BIDIRECTIONAL); |
---|
1949 | 1945 | } |
---|
1950 | 1946 | |
---|
1951 | 1947 | return 0; |
---|
.. | .. |
---|
1964 | 1960 | return -EAGAIN; |
---|
1965 | 1961 | |
---|
1966 | 1962 | /* Need to sync before taking a peek at cb_complete bit */ |
---|
1967 | | - pci_dma_sync_single_for_cpu(nic->pdev, rx->dma_addr, |
---|
1968 | | - sizeof(struct rfd), PCI_DMA_BIDIRECTIONAL); |
---|
| 1963 | + dma_sync_single_for_cpu(&nic->pdev->dev, rx->dma_addr, |
---|
| 1964 | + sizeof(struct rfd), DMA_BIDIRECTIONAL); |
---|
1969 | 1965 | rfd_status = le16_to_cpu(rfd->status); |
---|
1970 | 1966 | |
---|
1971 | 1967 | netif_printk(nic, rx_status, KERN_DEBUG, nic->netdev, |
---|
.. | .. |
---|
1984 | 1980 | |
---|
1985 | 1981 | if (ioread8(&nic->csr->scb.status) & rus_no_res) |
---|
1986 | 1982 | nic->ru_running = RU_SUSPENDED; |
---|
1987 | | - pci_dma_sync_single_for_device(nic->pdev, rx->dma_addr, |
---|
1988 | | - sizeof(struct rfd), |
---|
1989 | | - PCI_DMA_FROMDEVICE); |
---|
| 1983 | + dma_sync_single_for_device(&nic->pdev->dev, rx->dma_addr, |
---|
| 1984 | + sizeof(struct rfd), |
---|
| 1985 | + DMA_FROM_DEVICE); |
---|
1990 | 1986 | return -ENODATA; |
---|
1991 | 1987 | } |
---|
1992 | 1988 | |
---|
.. | .. |
---|
1998 | 1994 | actual_size = RFD_BUF_LEN - sizeof(struct rfd); |
---|
1999 | 1995 | |
---|
2000 | 1996 | /* Get data */ |
---|
2001 | | - pci_unmap_single(nic->pdev, rx->dma_addr, |
---|
2002 | | - RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL); |
---|
| 1997 | + dma_unmap_single(&nic->pdev->dev, rx->dma_addr, RFD_BUF_LEN, |
---|
| 1998 | + DMA_BIDIRECTIONAL); |
---|
2003 | 1999 | |
---|
2004 | 2000 | /* If this buffer has the el bit, but we think the receiver |
---|
2005 | 2001 | * is still running, check to see if it really stopped while |
---|
.. | .. |
---|
2100 | 2096 | (struct rfd *)new_before_last_rx->skb->data; |
---|
2101 | 2097 | new_before_last_rfd->size = 0; |
---|
2102 | 2098 | new_before_last_rfd->command |= cpu_to_le16(cb_el); |
---|
2103 | | - pci_dma_sync_single_for_device(nic->pdev, |
---|
2104 | | - new_before_last_rx->dma_addr, sizeof(struct rfd), |
---|
2105 | | - PCI_DMA_BIDIRECTIONAL); |
---|
| 2099 | + dma_sync_single_for_device(&nic->pdev->dev, |
---|
| 2100 | + new_before_last_rx->dma_addr, |
---|
| 2101 | + sizeof(struct rfd), |
---|
| 2102 | + DMA_BIDIRECTIONAL); |
---|
2106 | 2103 | |
---|
2107 | 2104 | /* Now that we have a new stopping point, we can clear the old |
---|
2108 | 2105 | * stopping point. We must sync twice to get the proper |
---|
2109 | 2106 | * ordering on the hardware side of things. */ |
---|
2110 | 2107 | old_before_last_rfd->command &= ~cpu_to_le16(cb_el); |
---|
2111 | | - pci_dma_sync_single_for_device(nic->pdev, |
---|
2112 | | - old_before_last_rx->dma_addr, sizeof(struct rfd), |
---|
2113 | | - PCI_DMA_BIDIRECTIONAL); |
---|
| 2108 | + dma_sync_single_for_device(&nic->pdev->dev, |
---|
| 2109 | + old_before_last_rx->dma_addr, |
---|
| 2110 | + sizeof(struct rfd), |
---|
| 2111 | + DMA_BIDIRECTIONAL); |
---|
2114 | 2112 | old_before_last_rfd->size = cpu_to_le16(VLAN_ETH_FRAME_LEN |
---|
2115 | 2113 | + ETH_FCS_LEN); |
---|
2116 | | - pci_dma_sync_single_for_device(nic->pdev, |
---|
2117 | | - old_before_last_rx->dma_addr, sizeof(struct rfd), |
---|
2118 | | - PCI_DMA_BIDIRECTIONAL); |
---|
| 2114 | + dma_sync_single_for_device(&nic->pdev->dev, |
---|
| 2115 | + old_before_last_rx->dma_addr, |
---|
| 2116 | + sizeof(struct rfd), |
---|
| 2117 | + DMA_BIDIRECTIONAL); |
---|
2119 | 2118 | } |
---|
2120 | 2119 | |
---|
2121 | 2120 | if (restart_required) { |
---|
.. | .. |
---|
2137 | 2136 | if (nic->rxs) { |
---|
2138 | 2137 | for (rx = nic->rxs, i = 0; i < count; rx++, i++) { |
---|
2139 | 2138 | if (rx->skb) { |
---|
2140 | | - pci_unmap_single(nic->pdev, rx->dma_addr, |
---|
2141 | | - RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL); |
---|
| 2139 | + dma_unmap_single(&nic->pdev->dev, |
---|
| 2140 | + rx->dma_addr, RFD_BUF_LEN, |
---|
| 2141 | + DMA_BIDIRECTIONAL); |
---|
2142 | 2142 | dev_kfree_skb(rx->skb); |
---|
2143 | 2143 | } |
---|
2144 | 2144 | } |
---|
.. | .. |
---|
2158 | 2158 | nic->rx_to_use = nic->rx_to_clean = NULL; |
---|
2159 | 2159 | nic->ru_running = RU_UNINITIALIZED; |
---|
2160 | 2160 | |
---|
2161 | | - if (!(nic->rxs = kcalloc(count, sizeof(struct rx), GFP_ATOMIC))) |
---|
| 2161 | + if (!(nic->rxs = kcalloc(count, sizeof(struct rx), GFP_KERNEL))) |
---|
2162 | 2162 | return -ENOMEM; |
---|
2163 | 2163 | |
---|
2164 | 2164 | for (rx = nic->rxs, i = 0; i < count; rx++, i++) { |
---|
.. | .. |
---|
2180 | 2180 | before_last = (struct rfd *)rx->skb->data; |
---|
2181 | 2181 | before_last->command |= cpu_to_le16(cb_el); |
---|
2182 | 2182 | before_last->size = 0; |
---|
2183 | | - pci_dma_sync_single_for_device(nic->pdev, rx->dma_addr, |
---|
2184 | | - sizeof(struct rfd), PCI_DMA_BIDIRECTIONAL); |
---|
| 2183 | + dma_sync_single_for_device(&nic->pdev->dev, rx->dma_addr, |
---|
| 2184 | + sizeof(struct rfd), DMA_BIDIRECTIONAL); |
---|
2185 | 2185 | |
---|
2186 | 2186 | nic->rx_to_use = nic->rx_to_clean = nic->rxs; |
---|
2187 | 2187 | nic->ru_running = RU_SUSPENDED; |
---|
.. | .. |
---|
2225 | 2225 | e100_rx_clean(nic, &work_done, budget); |
---|
2226 | 2226 | e100_tx_clean(nic); |
---|
2227 | 2227 | |
---|
2228 | | - /* If budget not fully consumed, exit the polling mode */ |
---|
2229 | | - if (work_done < budget) { |
---|
2230 | | - napi_complete_done(napi, work_done); |
---|
| 2228 | + /* If budget fully consumed, continue polling */ |
---|
| 2229 | + if (work_done == budget) |
---|
| 2230 | + return budget; |
---|
| 2231 | + |
---|
| 2232 | + /* only re-enable interrupt if stack agrees polling is really done */ |
---|
| 2233 | + if (likely(napi_complete_done(napi, work_done))) |
---|
2231 | 2234 | e100_enable_irq(nic); |
---|
2232 | | - } |
---|
2233 | 2235 | |
---|
2234 | 2236 | return work_done; |
---|
2235 | 2237 | } |
---|
.. | .. |
---|
2314 | 2316 | e100_rx_clean_list(nic); |
---|
2315 | 2317 | } |
---|
2316 | 2318 | |
---|
2317 | | -static void e100_tx_timeout(struct net_device *netdev) |
---|
| 2319 | +static void e100_tx_timeout(struct net_device *netdev, unsigned int txqueue) |
---|
2318 | 2320 | { |
---|
2319 | 2321 | struct nic *nic = netdev_priv(netdev); |
---|
2320 | 2322 | |
---|
.. | .. |
---|
2378 | 2380 | |
---|
2379 | 2381 | msleep(10); |
---|
2380 | 2382 | |
---|
2381 | | - pci_dma_sync_single_for_cpu(nic->pdev, nic->rx_to_clean->dma_addr, |
---|
2382 | | - RFD_BUF_LEN, PCI_DMA_BIDIRECTIONAL); |
---|
| 2383 | + dma_sync_single_for_cpu(&nic->pdev->dev, nic->rx_to_clean->dma_addr, |
---|
| 2384 | + RFD_BUF_LEN, DMA_BIDIRECTIONAL); |
---|
2383 | 2385 | |
---|
2384 | 2386 | if (memcmp(nic->rx_to_clean->skb->data + sizeof(struct rfd), |
---|
2385 | 2387 | skb->data, ETH_DATA_LEN)) |
---|
.. | .. |
---|
2428 | 2430 | { |
---|
2429 | 2431 | struct nic *nic = netdev_priv(netdev); |
---|
2430 | 2432 | strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); |
---|
2431 | | - strlcpy(info->version, DRV_VERSION, sizeof(info->version)); |
---|
2432 | 2433 | strlcpy(info->bus_info, pci_name(nic->pdev), |
---|
2433 | 2434 | sizeof(info->bus_info)); |
---|
2434 | 2435 | } |
---|
.. | .. |
---|
2603 | 2604 | { |
---|
2604 | 2605 | struct ethtool_cmd cmd; |
---|
2605 | 2606 | struct nic *nic = netdev_priv(netdev); |
---|
2606 | | - int i, err; |
---|
| 2607 | + int i; |
---|
2607 | 2608 | |
---|
2608 | 2609 | memset(data, 0, E100_TEST_LEN * sizeof(u64)); |
---|
2609 | 2610 | data[0] = !mii_link_ok(&nic->mii); |
---|
.. | .. |
---|
2611 | 2612 | if (test->flags & ETH_TEST_FL_OFFLINE) { |
---|
2612 | 2613 | |
---|
2613 | 2614 | /* save speed, duplex & autoneg settings */ |
---|
2614 | | - err = mii_ethtool_gset(&nic->mii, &cmd); |
---|
| 2615 | + mii_ethtool_gset(&nic->mii, &cmd); |
---|
2615 | 2616 | |
---|
2616 | 2617 | if (netif_running(netdev)) |
---|
2617 | 2618 | e100_down(nic); |
---|
.. | .. |
---|
2620 | 2621 | data[4] = e100_loopback_test(nic, lb_phy); |
---|
2621 | 2622 | |
---|
2622 | 2623 | /* restore speed, duplex & autoneg settings */ |
---|
2623 | | - err = mii_ethtool_sset(&nic->mii, &cmd); |
---|
| 2624 | + mii_ethtool_sset(&nic->mii, &cmd); |
---|
2624 | 2625 | |
---|
2625 | 2626 | if (netif_running(netdev)) |
---|
2626 | 2627 | e100_up(nic); |
---|
.. | .. |
---|
2761 | 2762 | |
---|
2762 | 2763 | static int e100_alloc(struct nic *nic) |
---|
2763 | 2764 | { |
---|
2764 | | - nic->mem = pci_alloc_consistent(nic->pdev, sizeof(struct mem), |
---|
2765 | | - &nic->dma_addr); |
---|
| 2765 | + nic->mem = dma_alloc_coherent(&nic->pdev->dev, sizeof(struct mem), |
---|
| 2766 | + &nic->dma_addr, GFP_KERNEL); |
---|
2766 | 2767 | return nic->mem ? 0 : -ENOMEM; |
---|
2767 | 2768 | } |
---|
2768 | 2769 | |
---|
2769 | 2770 | static void e100_free(struct nic *nic) |
---|
2770 | 2771 | { |
---|
2771 | 2772 | if (nic->mem) { |
---|
2772 | | - pci_free_consistent(nic->pdev, sizeof(struct mem), |
---|
2773 | | - nic->mem, nic->dma_addr); |
---|
| 2773 | + dma_free_coherent(&nic->pdev->dev, sizeof(struct mem), |
---|
| 2774 | + nic->mem, nic->dma_addr); |
---|
2774 | 2775 | nic->mem = NULL; |
---|
2775 | 2776 | } |
---|
2776 | 2777 | } |
---|
.. | .. |
---|
2803 | 2804 | |
---|
2804 | 2805 | netdev->features = features; |
---|
2805 | 2806 | e100_exec_cb(nic, NULL, e100_configure); |
---|
2806 | | - return 0; |
---|
| 2807 | + return 1; |
---|
2807 | 2808 | } |
---|
2808 | 2809 | |
---|
2809 | 2810 | static const struct net_device_ops e100_netdev_ops = { |
---|
.. | .. |
---|
2863 | 2864 | goto err_out_disable_pdev; |
---|
2864 | 2865 | } |
---|
2865 | 2866 | |
---|
2866 | | - if ((err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)))) { |
---|
| 2867 | + if ((err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)))) { |
---|
2867 | 2868 | netif_err(nic, probe, nic->netdev, "No usable DMA configuration, aborting\n"); |
---|
2868 | 2869 | goto err_out_free_res; |
---|
2869 | 2870 | } |
---|
.. | .. |
---|
2999 | 3000 | struct net_device *netdev = pci_get_drvdata(pdev); |
---|
3000 | 3001 | struct nic *nic = netdev_priv(netdev); |
---|
3001 | 3002 | |
---|
3002 | | - if (netif_running(netdev)) |
---|
3003 | | - e100_down(nic); |
---|
3004 | 3003 | netif_device_detach(netdev); |
---|
3005 | 3004 | |
---|
3006 | | - pci_save_state(pdev); |
---|
| 3005 | + if (netif_running(netdev)) |
---|
| 3006 | + e100_down(nic); |
---|
3007 | 3007 | |
---|
3008 | 3008 | if ((nic->flags & wol_magic) | e100_asf(nic)) { |
---|
3009 | 3009 | /* enable reverse auto-negotiation */ |
---|
.. | .. |
---|
3020 | 3020 | *enable_wake = false; |
---|
3021 | 3021 | } |
---|
3022 | 3022 | |
---|
3023 | | - pci_clear_master(pdev); |
---|
| 3023 | + pci_disable_device(pdev); |
---|
3024 | 3024 | } |
---|
3025 | 3025 | |
---|
3026 | 3026 | static int __e100_power_off(struct pci_dev *pdev, bool wake) |
---|
.. | .. |
---|
3034 | 3034 | return 0; |
---|
3035 | 3035 | } |
---|
3036 | 3036 | |
---|
3037 | | -#ifdef CONFIG_PM |
---|
3038 | | -static int e100_suspend(struct pci_dev *pdev, pm_message_t state) |
---|
| 3037 | +static int __maybe_unused e100_suspend(struct device *dev_d) |
---|
3039 | 3038 | { |
---|
3040 | 3039 | bool wake; |
---|
3041 | | - __e100_shutdown(pdev, &wake); |
---|
3042 | | - return __e100_power_off(pdev, wake); |
---|
| 3040 | + |
---|
| 3041 | + __e100_shutdown(to_pci_dev(dev_d), &wake); |
---|
| 3042 | + |
---|
| 3043 | + return 0; |
---|
3043 | 3044 | } |
---|
3044 | 3045 | |
---|
3045 | | -static int e100_resume(struct pci_dev *pdev) |
---|
| 3046 | +static int __maybe_unused e100_resume(struct device *dev_d) |
---|
3046 | 3047 | { |
---|
3047 | | - struct net_device *netdev = pci_get_drvdata(pdev); |
---|
| 3048 | + struct net_device *netdev = dev_get_drvdata(dev_d); |
---|
3048 | 3049 | struct nic *nic = netdev_priv(netdev); |
---|
| 3050 | + int err; |
---|
3049 | 3051 | |
---|
3050 | | - pci_set_power_state(pdev, PCI_D0); |
---|
3051 | | - pci_restore_state(pdev); |
---|
3052 | | - /* ack any pending wake events, disable PME */ |
---|
3053 | | - pci_enable_wake(pdev, PCI_D0, 0); |
---|
| 3052 | + err = pci_enable_device(to_pci_dev(dev_d)); |
---|
| 3053 | + if (err) { |
---|
| 3054 | + netdev_err(netdev, "Resume cannot enable PCI device, aborting\n"); |
---|
| 3055 | + return err; |
---|
| 3056 | + } |
---|
| 3057 | + pci_set_master(to_pci_dev(dev_d)); |
---|
3054 | 3058 | |
---|
3055 | 3059 | /* disable reverse auto-negotiation */ |
---|
3056 | 3060 | if (nic->phy == phy_82552_v) { |
---|
.. | .. |
---|
3062 | 3066 | smartspeed & ~(E100_82552_REV_ANEG)); |
---|
3063 | 3067 | } |
---|
3064 | 3068 | |
---|
3065 | | - netif_device_attach(netdev); |
---|
3066 | 3069 | if (netif_running(netdev)) |
---|
3067 | 3070 | e100_up(nic); |
---|
3068 | 3071 | |
---|
| 3072 | + netif_device_attach(netdev); |
---|
| 3073 | + |
---|
3069 | 3074 | return 0; |
---|
3070 | 3075 | } |
---|
3071 | | -#endif /* CONFIG_PM */ |
---|
3072 | 3076 | |
---|
3073 | 3077 | static void e100_shutdown(struct pci_dev *pdev) |
---|
3074 | 3078 | { |
---|
.. | .. |
---|
3156 | 3160 | .resume = e100_io_resume, |
---|
3157 | 3161 | }; |
---|
3158 | 3162 | |
---|
| 3163 | +static SIMPLE_DEV_PM_OPS(e100_pm_ops, e100_suspend, e100_resume); |
---|
| 3164 | + |
---|
3159 | 3165 | static struct pci_driver e100_driver = { |
---|
3160 | 3166 | .name = DRV_NAME, |
---|
3161 | 3167 | .id_table = e100_id_table, |
---|
3162 | 3168 | .probe = e100_probe, |
---|
3163 | 3169 | .remove = e100_remove, |
---|
3164 | | -#ifdef CONFIG_PM |
---|
| 3170 | + |
---|
3165 | 3171 | /* Power Management hooks */ |
---|
3166 | | - .suspend = e100_suspend, |
---|
3167 | | - .resume = e100_resume, |
---|
3168 | | -#endif |
---|
| 3172 | + .driver.pm = &e100_pm_ops, |
---|
| 3173 | + |
---|
3169 | 3174 | .shutdown = e100_shutdown, |
---|
3170 | 3175 | .err_handler = &e100_err_handler, |
---|
3171 | 3176 | }; |
---|
.. | .. |
---|
3173 | 3178 | static int __init e100_init_module(void) |
---|
3174 | 3179 | { |
---|
3175 | 3180 | if (((1 << debug) - 1) & NETIF_MSG_DRV) { |
---|
3176 | | - pr_info("%s, %s\n", DRV_DESCRIPTION, DRV_VERSION); |
---|
| 3181 | + pr_info("%s\n", DRV_DESCRIPTION); |
---|
3177 | 3182 | pr_info("%s\n", DRV_COPYRIGHT); |
---|
3178 | 3183 | } |
---|
3179 | 3184 | return pci_register_driver(&e100_driver); |
---|