hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/net/ethernet/dec/tulip/winbond-840.c
....@@ -47,9 +47,6 @@
4747 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
4848
4949 #define DRV_NAME "winbond-840"
50
-#define DRV_VERSION "1.01-e"
51
-#define DRV_RELDATE "Sep-11-2006"
52
-
5350
5451 /* Automatically extracted configuration info:
5552 probe-func: winbond840_probe
....@@ -139,16 +136,9 @@
139136 #undef PKT_BUF_SZ /* tulip.h also defines this */
140137 #define PKT_BUF_SZ 1536 /* Size of each temporary Rx buffer.*/
141138
142
-/* These identify the driver base version and may not be removed. */
143
-static const char version[] __initconst =
144
- "v" DRV_VERSION " (2.4 port) "
145
- DRV_RELDATE " Donald Becker <becker@scyld.com>\n"
146
- " http://www.scyld.com/network/drivers.html\n";
147
-
148139 MODULE_AUTHOR("Donald Becker <becker@scyld.com>");
149140 MODULE_DESCRIPTION("Winbond W89c840 Ethernet driver");
150141 MODULE_LICENSE("GPL");
151
-MODULE_VERSION(DRV_VERSION);
152142
153143 module_param(max_interrupt_work, int, 0);
154144 module_param(debug, int, 0);
....@@ -331,7 +321,7 @@
331321 static void init_rxtx_rings(struct net_device *dev);
332322 static void free_rxtx_rings(struct netdev_private *np);
333323 static void init_registers(struct net_device *dev);
334
-static void tx_timeout(struct net_device *dev);
324
+static void tx_timeout(struct net_device *dev, unsigned int txqueue);
335325 static int alloc_ringdesc(struct net_device *dev);
336326 static void free_ringdesc(struct netdev_private *np);
337327 static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
....@@ -374,7 +364,7 @@
374364
375365 irq = pdev->irq;
376366
377
- if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) {
367
+ if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))) {
378368 pr_warn("Device %s disabled due to DMA limitations\n",
379369 pci_name(pdev));
380370 return -EIO;
....@@ -638,9 +628,10 @@
638628 goto out_err;
639629
640630 if (debug > 1)
641
- netdev_dbg(dev, "w89c840_open() irq %d\n", irq);
631
+ netdev_dbg(dev, "%s() irq %d\n", __func__, irq);
642632
643
- if((i=alloc_ringdesc(dev)))
633
+ i = alloc_ringdesc(dev);
634
+ if (i)
644635 goto out_err;
645636
646637 spin_lock_irq(&np->lock);
....@@ -650,7 +641,7 @@
650641
651642 netif_start_queue(dev);
652643 if (debug > 2)
653
- netdev_dbg(dev, "Done netdev_open()\n");
644
+ netdev_dbg(dev, "Done %s()\n", __func__);
654645
655646 /* Set the timer to check for link beat. */
656647 timer_setup(&np->timer, netdev_timer, 0);
....@@ -810,8 +801,9 @@
810801 np->rx_skbuff[i] = skb;
811802 if (skb == NULL)
812803 break;
813
- np->rx_addr[i] = pci_map_single(np->pci_dev,skb->data,
814
- np->rx_buf_sz,PCI_DMA_FROMDEVICE);
804
+ np->rx_addr[i] = dma_map_single(&np->pci_dev->dev, skb->data,
805
+ np->rx_buf_sz,
806
+ DMA_FROM_DEVICE);
815807
816808 np->rx_ring[i].buffer1 = np->rx_addr[i];
817809 np->rx_ring[i].status = DescOwned;
....@@ -841,20 +833,17 @@
841833 for (i = 0; i < RX_RING_SIZE; i++) {
842834 np->rx_ring[i].status = 0;
843835 if (np->rx_skbuff[i]) {
844
- pci_unmap_single(np->pci_dev,
845
- np->rx_addr[i],
846
- np->rx_skbuff[i]->len,
847
- PCI_DMA_FROMDEVICE);
836
+ dma_unmap_single(&np->pci_dev->dev, np->rx_addr[i],
837
+ np->rx_skbuff[i]->len,
838
+ DMA_FROM_DEVICE);
848839 dev_kfree_skb(np->rx_skbuff[i]);
849840 }
850841 np->rx_skbuff[i] = NULL;
851842 }
852843 for (i = 0; i < TX_RING_SIZE; i++) {
853844 if (np->tx_skbuff[i]) {
854
- pci_unmap_single(np->pci_dev,
855
- np->tx_addr[i],
856
- np->tx_skbuff[i]->len,
857
- PCI_DMA_TODEVICE);
845
+ dma_unmap_single(&np->pci_dev->dev, np->tx_addr[i],
846
+ np->tx_skbuff[i]->len, DMA_TO_DEVICE);
858847 dev_kfree_skb(np->tx_skbuff[i]);
859848 }
860849 np->tx_skbuff[i] = NULL;
....@@ -919,7 +908,7 @@
919908 iowrite32(0, ioaddr + RxStartDemand);
920909 }
921910
922
-static void tx_timeout(struct net_device *dev)
911
+static void tx_timeout(struct net_device *dev, unsigned int txqueue)
923912 {
924913 struct netdev_private *np = netdev_priv(dev);
925914 void __iomem *ioaddr = np->base_addr;
....@@ -972,10 +961,10 @@
972961
973962 np->rx_buf_sz = (dev->mtu <= 1500 ? PKT_BUF_SZ : dev->mtu + 32);
974963
975
- np->rx_ring = pci_alloc_consistent(np->pci_dev,
976
- sizeof(struct w840_rx_desc)*RX_RING_SIZE +
977
- sizeof(struct w840_tx_desc)*TX_RING_SIZE,
978
- &np->ring_dma_addr);
964
+ np->rx_ring = dma_alloc_coherent(&np->pci_dev->dev,
965
+ sizeof(struct w840_rx_desc) * RX_RING_SIZE +
966
+ sizeof(struct w840_tx_desc) * TX_RING_SIZE,
967
+ &np->ring_dma_addr, GFP_KERNEL);
979968 if(!np->rx_ring)
980969 return -ENOMEM;
981970 init_rxtx_rings(dev);
....@@ -984,10 +973,10 @@
984973
985974 static void free_ringdesc(struct netdev_private *np)
986975 {
987
- pci_free_consistent(np->pci_dev,
988
- sizeof(struct w840_rx_desc)*RX_RING_SIZE +
989
- sizeof(struct w840_tx_desc)*TX_RING_SIZE,
990
- np->rx_ring, np->ring_dma_addr);
976
+ dma_free_coherent(&np->pci_dev->dev,
977
+ sizeof(struct w840_rx_desc) * RX_RING_SIZE +
978
+ sizeof(struct w840_tx_desc) * TX_RING_SIZE,
979
+ np->rx_ring, np->ring_dma_addr);
991980
992981 }
993982
....@@ -1002,8 +991,8 @@
1002991 /* Calculate the next Tx descriptor entry. */
1003992 entry = np->cur_tx % TX_RING_SIZE;
1004993
1005
- np->tx_addr[entry] = pci_map_single(np->pci_dev,
1006
- skb->data,skb->len, PCI_DMA_TODEVICE);
994
+ np->tx_addr[entry] = dma_map_single(&np->pci_dev->dev, skb->data,
995
+ skb->len, DMA_TO_DEVICE);
1007996 np->tx_skbuff[entry] = skb;
1008997
1009998 np->tx_ring[entry].buffer1 = np->tx_addr[entry];
....@@ -1086,9 +1075,8 @@
10861075 np->stats.tx_packets++;
10871076 }
10881077 /* Free the original skb. */
1089
- pci_unmap_single(np->pci_dev,np->tx_addr[entry],
1090
- np->tx_skbuff[entry]->len,
1091
- PCI_DMA_TODEVICE);
1078
+ dma_unmap_single(&np->pci_dev->dev, np->tx_addr[entry],
1079
+ np->tx_skbuff[entry]->len, DMA_TO_DEVICE);
10921080 np->tx_q_bytes -= np->tx_skbuff[entry]->len;
10931081 dev_kfree_skb_irq(np->tx_skbuff[entry]);
10941082 np->tx_skbuff[entry] = NULL;
....@@ -1225,18 +1213,21 @@
12251213 if (pkt_len < rx_copybreak &&
12261214 (skb = netdev_alloc_skb(dev, pkt_len + 2)) != NULL) {
12271215 skb_reserve(skb, 2); /* 16 byte align the IP header */
1228
- pci_dma_sync_single_for_cpu(np->pci_dev,np->rx_addr[entry],
1229
- np->rx_skbuff[entry]->len,
1230
- PCI_DMA_FROMDEVICE);
1216
+ dma_sync_single_for_cpu(&np->pci_dev->dev,
1217
+ np->rx_addr[entry],
1218
+ np->rx_skbuff[entry]->len,
1219
+ DMA_FROM_DEVICE);
12311220 skb_copy_to_linear_data(skb, np->rx_skbuff[entry]->data, pkt_len);
12321221 skb_put(skb, pkt_len);
1233
- pci_dma_sync_single_for_device(np->pci_dev,np->rx_addr[entry],
1234
- np->rx_skbuff[entry]->len,
1235
- PCI_DMA_FROMDEVICE);
1222
+ dma_sync_single_for_device(&np->pci_dev->dev,
1223
+ np->rx_addr[entry],
1224
+ np->rx_skbuff[entry]->len,
1225
+ DMA_FROM_DEVICE);
12361226 } else {
1237
- pci_unmap_single(np->pci_dev,np->rx_addr[entry],
1238
- np->rx_skbuff[entry]->len,
1239
- PCI_DMA_FROMDEVICE);
1227
+ dma_unmap_single(&np->pci_dev->dev,
1228
+ np->rx_addr[entry],
1229
+ np->rx_skbuff[entry]->len,
1230
+ DMA_FROM_DEVICE);
12401231 skb_put(skb = np->rx_skbuff[entry], pkt_len);
12411232 np->rx_skbuff[entry] = NULL;
12421233 }
....@@ -1266,9 +1257,10 @@
12661257 np->rx_skbuff[entry] = skb;
12671258 if (skb == NULL)
12681259 break; /* Better luck next round. */
1269
- np->rx_addr[entry] = pci_map_single(np->pci_dev,
1270
- skb->data,
1271
- np->rx_buf_sz, PCI_DMA_FROMDEVICE);
1260
+ np->rx_addr[entry] = dma_map_single(&np->pci_dev->dev,
1261
+ skb->data,
1262
+ np->rx_buf_sz,
1263
+ DMA_FROM_DEVICE);
12721264 np->rx_ring[entry].buffer1 = np->rx_addr[entry];
12731265 }
12741266 wmb();
....@@ -1383,7 +1375,6 @@
13831375 struct netdev_private *np = netdev_priv(dev);
13841376
13851377 strlcpy(info->driver, DRV_NAME, sizeof(info->driver));
1386
- strlcpy(info->version, DRV_VERSION, sizeof(info->version));
13871378 strlcpy(info->bus_info, pci_name(np->pci_dev), sizeof(info->bus_info));
13881379 }
13891380
....@@ -1452,7 +1443,7 @@
14521443 switch(cmd) {
14531444 case SIOCGMIIPHY: /* Get address of MII PHY in use. */
14541445 data->phy_id = ((struct netdev_private *)netdev_priv(dev))->phys[0] & 0x1f;
1455
- /* Fall Through */
1446
+ fallthrough;
14561447
14571448 case SIOCGMIIREG: /* Read MII PHY register. */
14581449 spin_lock_irq(&np->lock);
....@@ -1538,8 +1529,6 @@
15381529 }
15391530 }
15401531
1541
-#ifdef CONFIG_PM
1542
-
15431532 /*
15441533 * suspend/resume synchronization:
15451534 * - open, close, do_ioctl:
....@@ -1563,9 +1552,9 @@
15631552 * Detach must occur under spin_unlock_irq(), interrupts from a detached
15641553 * device would cause an irq storm.
15651554 */
1566
-static int w840_suspend (struct pci_dev *pdev, pm_message_t state)
1555
+static int __maybe_unused w840_suspend(struct device *dev_d)
15671556 {
1568
- struct net_device *dev = pci_get_drvdata (pdev);
1557
+ struct net_device *dev = dev_get_drvdata(dev_d);
15691558 struct netdev_private *np = netdev_priv(dev);
15701559 void __iomem *ioaddr = np->base_addr;
15711560
....@@ -1598,21 +1587,15 @@
15981587 return 0;
15991588 }
16001589
1601
-static int w840_resume (struct pci_dev *pdev)
1590
+static int __maybe_unused w840_resume(struct device *dev_d)
16021591 {
1603
- struct net_device *dev = pci_get_drvdata (pdev);
1592
+ struct net_device *dev = dev_get_drvdata(dev_d);
16041593 struct netdev_private *np = netdev_priv(dev);
1605
- int retval = 0;
16061594
16071595 rtnl_lock();
16081596 if (netif_device_present(dev))
16091597 goto out; /* device not suspended */
16101598 if (netif_running(dev)) {
1611
- if ((retval = pci_enable_device(pdev))) {
1612
- dev_err(&dev->dev,
1613
- "pci_enable_device failed in resume\n");
1614
- goto out;
1615
- }
16161599 spin_lock_irq(&np->lock);
16171600 iowrite32(1, np->base_addr+PCIBusCfg);
16181601 ioread32(np->base_addr+PCIBusCfg);
....@@ -1630,24 +1613,21 @@
16301613 }
16311614 out:
16321615 rtnl_unlock();
1633
- return retval;
1616
+ return 0;
16341617 }
1635
-#endif
1618
+
1619
+static SIMPLE_DEV_PM_OPS(w840_pm_ops, w840_suspend, w840_resume);
16361620
16371621 static struct pci_driver w840_driver = {
16381622 .name = DRV_NAME,
16391623 .id_table = w840_pci_tbl,
16401624 .probe = w840_probe1,
16411625 .remove = w840_remove1,
1642
-#ifdef CONFIG_PM
1643
- .suspend = w840_suspend,
1644
- .resume = w840_resume,
1645
-#endif
1626
+ .driver.pm = &w840_pm_ops,
16461627 };
16471628
16481629 static int __init w840_init(void)
16491630 {
1650
- printk(version);
16511631 return pci_register_driver(&w840_driver);
16521632 }
16531633