forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/net/ethernet/dec/tulip/de2104x.c
....@@ -30,7 +30,6 @@
3030 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
3131
3232 #define DRV_NAME "de2104x"
33
-#define DRV_VERSION "0.7"
3433 #define DRV_RELDATE "Mar 17, 2004"
3534
3635 #include <linux/module.h>
....@@ -52,14 +51,9 @@
5251 #include <linux/uaccess.h>
5352 #include <asm/unaligned.h>
5453
55
-/* These identify the driver base version and may not be removed. */
56
-static char version[] =
57
-"PCI Ethernet driver v" DRV_VERSION " (" DRV_RELDATE ")";
58
-
5954 MODULE_AUTHOR("Jeff Garzik <jgarzik@pobox.com>");
6055 MODULE_DESCRIPTION("Intel/Digital 21040/1 series PCI Ethernet driver");
6156 MODULE_LICENSE("GPL");
62
-MODULE_VERSION(DRV_VERSION);
6357
6458 static int debug = -1;
6559 module_param (debug, int, 0);
....@@ -417,7 +411,10 @@
417411 if (status & DescOwn)
418412 break;
419413
420
- len = ((status >> 16) & 0x7ff) - 4;
414
+ /* the length is actually a 15 bit value here according
415
+ * to Table 4-1 in the DE2104x spec so mask is 0x7fff
416
+ */
417
+ len = ((status >> 16) & 0x7fff) - 4;
421418 mapping = de->rx_skb[rx_tail].mapping;
422419
423420 if (unlikely(drop)) {
....@@ -446,21 +443,23 @@
446443 }
447444
448445 if (!copying_skb) {
449
- pci_unmap_single(de->pdev, mapping,
450
- buflen, PCI_DMA_FROMDEVICE);
446
+ dma_unmap_single(&de->pdev->dev, mapping, buflen,
447
+ DMA_FROM_DEVICE);
451448 skb_put(skb, len);
452449
453450 mapping =
454451 de->rx_skb[rx_tail].mapping =
455
- pci_map_single(de->pdev, copy_skb->data,
456
- buflen, PCI_DMA_FROMDEVICE);
452
+ dma_map_single(&de->pdev->dev, copy_skb->data,
453
+ buflen, DMA_FROM_DEVICE);
457454 de->rx_skb[rx_tail].skb = copy_skb;
458455 } else {
459
- pci_dma_sync_single_for_cpu(de->pdev, mapping, len, PCI_DMA_FROMDEVICE);
456
+ dma_sync_single_for_cpu(&de->pdev->dev, mapping, len,
457
+ DMA_FROM_DEVICE);
460458 skb_reserve(copy_skb, RX_OFFSET);
461459 skb_copy_from_linear_data(skb, skb_put(copy_skb, len),
462460 len);
463
- pci_dma_sync_single_for_device(de->pdev, mapping, len, PCI_DMA_FROMDEVICE);
461
+ dma_sync_single_for_device(&de->pdev->dev, mapping,
462
+ len, DMA_FROM_DEVICE);
464463
465464 /* We'll reuse the original ring buffer. */
466465 skb = copy_skb;
....@@ -557,13 +556,15 @@
557556 goto next;
558557
559558 if (unlikely(skb == DE_SETUP_SKB)) {
560
- pci_unmap_single(de->pdev, de->tx_skb[tx_tail].mapping,
561
- sizeof(de->setup_frame), PCI_DMA_TODEVICE);
559
+ dma_unmap_single(&de->pdev->dev,
560
+ de->tx_skb[tx_tail].mapping,
561
+ sizeof(de->setup_frame),
562
+ DMA_TO_DEVICE);
562563 goto next;
563564 }
564565
565
- pci_unmap_single(de->pdev, de->tx_skb[tx_tail].mapping,
566
- skb->len, PCI_DMA_TODEVICE);
566
+ dma_unmap_single(&de->pdev->dev, de->tx_skb[tx_tail].mapping,
567
+ skb->len, DMA_TO_DEVICE);
567568
568569 if (status & LastFrag) {
569570 if (status & TxError) {
....@@ -585,7 +586,7 @@
585586 netif_dbg(de, tx_done, de->dev,
586587 "tx done, slot %d\n", tx_tail);
587588 }
588
- dev_kfree_skb_irq(skb);
589
+ dev_consume_skb_irq(skb);
589590 }
590591
591592 next:
....@@ -623,7 +624,8 @@
623624 txd = &de->tx_ring[entry];
624625
625626 len = skb->len;
626
- mapping = pci_map_single(de->pdev, skb->data, len, PCI_DMA_TODEVICE);
627
+ mapping = dma_map_single(&de->pdev->dev, skb->data, len,
628
+ DMA_TO_DEVICE);
627629 if (entry == (DE_TX_RING_SIZE - 1))
628630 flags |= RingEnd;
629631 if (!tx_free || (tx_free == (DE_TX_RING_SIZE / 2)))
....@@ -766,8 +768,8 @@
766768
767769 de->tx_skb[entry].skb = DE_SETUP_SKB;
768770 de->tx_skb[entry].mapping = mapping =
769
- pci_map_single (de->pdev, de->setup_frame,
770
- sizeof (de->setup_frame), PCI_DMA_TODEVICE);
771
+ dma_map_single(&de->pdev->dev, de->setup_frame,
772
+ sizeof(de->setup_frame), DMA_TO_DEVICE);
771773
772774 /* Put the setup frame on the Tx list. */
773775 txd = &de->tx_ring[entry];
....@@ -1282,8 +1284,10 @@
12821284 if (!skb)
12831285 goto err_out;
12841286
1285
- de->rx_skb[i].mapping = pci_map_single(de->pdev,
1286
- skb->data, de->rx_buf_sz, PCI_DMA_FROMDEVICE);
1287
+ de->rx_skb[i].mapping = dma_map_single(&de->pdev->dev,
1288
+ skb->data,
1289
+ de->rx_buf_sz,
1290
+ DMA_FROM_DEVICE);
12871291 de->rx_skb[i].skb = skb;
12881292
12891293 de->rx_ring[i].opts1 = cpu_to_le32(DescOwn);
....@@ -1316,7 +1320,8 @@
13161320
13171321 static int de_alloc_rings (struct de_private *de)
13181322 {
1319
- de->rx_ring = pci_alloc_consistent(de->pdev, DE_RING_BYTES, &de->ring_dma);
1323
+ de->rx_ring = dma_alloc_coherent(&de->pdev->dev, DE_RING_BYTES,
1324
+ &de->ring_dma, GFP_KERNEL);
13201325 if (!de->rx_ring)
13211326 return -ENOMEM;
13221327 de->tx_ring = &de->rx_ring[DE_RX_RING_SIZE];
....@@ -1336,8 +1341,9 @@
13361341
13371342 for (i = 0; i < DE_RX_RING_SIZE; i++) {
13381343 if (de->rx_skb[i].skb) {
1339
- pci_unmap_single(de->pdev, de->rx_skb[i].mapping,
1340
- de->rx_buf_sz, PCI_DMA_FROMDEVICE);
1344
+ dma_unmap_single(&de->pdev->dev,
1345
+ de->rx_skb[i].mapping, de->rx_buf_sz,
1346
+ DMA_FROM_DEVICE);
13411347 dev_kfree_skb(de->rx_skb[i].skb);
13421348 }
13431349 }
....@@ -1347,15 +1353,15 @@
13471353 if ((skb) && (skb != DE_DUMMY_SKB)) {
13481354 if (skb != DE_SETUP_SKB) {
13491355 de->dev->stats.tx_dropped++;
1350
- pci_unmap_single(de->pdev,
1351
- de->tx_skb[i].mapping,
1352
- skb->len, PCI_DMA_TODEVICE);
1356
+ dma_unmap_single(&de->pdev->dev,
1357
+ de->tx_skb[i].mapping,
1358
+ skb->len, DMA_TO_DEVICE);
13531359 dev_kfree_skb(skb);
13541360 } else {
1355
- pci_unmap_single(de->pdev,
1356
- de->tx_skb[i].mapping,
1357
- sizeof(de->setup_frame),
1358
- PCI_DMA_TODEVICE);
1361
+ dma_unmap_single(&de->pdev->dev,
1362
+ de->tx_skb[i].mapping,
1363
+ sizeof(de->setup_frame),
1364
+ DMA_TO_DEVICE);
13591365 }
13601366 }
13611367 }
....@@ -1367,7 +1373,8 @@
13671373 static void de_free_rings (struct de_private *de)
13681374 {
13691375 de_clean_rings(de);
1370
- pci_free_consistent(de->pdev, DE_RING_BYTES, de->rx_ring, de->ring_dma);
1376
+ dma_free_coherent(&de->pdev->dev, DE_RING_BYTES, de->rx_ring,
1377
+ de->ring_dma);
13711378 de->rx_ring = NULL;
13721379 de->tx_ring = NULL;
13731380 }
....@@ -1436,7 +1443,7 @@
14361443 return 0;
14371444 }
14381445
1439
-static void de_tx_timeout (struct net_device *dev)
1446
+static void de_tx_timeout (struct net_device *dev, unsigned int txqueue)
14401447 {
14411448 struct de_private *de = netdev_priv(dev);
14421449 const int irq = de->pdev->irq;
....@@ -1600,7 +1607,6 @@
16001607 struct de_private *de = netdev_priv(dev);
16011608
16021609 strlcpy(info->driver, DRV_NAME, sizeof(info->driver));
1603
- strlcpy(info->version, DRV_VERSION, sizeof(info->version));
16041610 strlcpy(info->bus_info, pci_name(de->pdev), sizeof(info->bus_info));
16051611 }
16061612
....@@ -1977,11 +1983,6 @@
19771983
19781984 board_idx++;
19791985
1980
-#ifndef MODULE
1981
- if (board_idx == 0)
1982
- pr_info("%s\n", version);
1983
-#endif
1984
-
19851986 /* allocate a new ethernet device structure, and fill in defaults */
19861987 dev = alloc_etherdev(sizeof(struct de_private));
19871988 if (!dev)
....@@ -2039,7 +2040,7 @@
20392040 }
20402041
20412042 /* remap CSR registers */
2042
- regs = ioremap_nocache(pciaddr, DE_REGS_SIZE);
2043
+ regs = ioremap(pciaddr, DE_REGS_SIZE);
20432044 if (!regs) {
20442045 rc = -EIO;
20452046 pr_err("Cannot map PCI MMIO (%llx@%lx) on pci dev %s\n",
....@@ -2114,11 +2115,10 @@
21142115 free_netdev(dev);
21152116 }
21162117
2117
-#ifdef CONFIG_PM
2118
-
2119
-static int de_suspend (struct pci_dev *pdev, pm_message_t state)
2118
+static int __maybe_unused de_suspend(struct device *dev_d)
21202119 {
2121
- struct net_device *dev = pci_get_drvdata (pdev);
2120
+ struct pci_dev *pdev = to_pci_dev(dev_d);
2121
+ struct net_device *dev = pci_get_drvdata(pdev);
21222122 struct de_private *de = netdev_priv(dev);
21232123
21242124 rtnl_lock();
....@@ -2145,7 +2145,6 @@
21452145 de_clean_rings(de);
21462146
21472147 de_adapter_sleep(de);
2148
- pci_disable_device(pdev);
21492148 } else {
21502149 netif_device_detach(dev);
21512150 }
....@@ -2153,21 +2152,17 @@
21532152 return 0;
21542153 }
21552154
2156
-static int de_resume (struct pci_dev *pdev)
2155
+static int __maybe_unused de_resume(struct device *dev_d)
21572156 {
2158
- struct net_device *dev = pci_get_drvdata (pdev);
2157
+ struct pci_dev *pdev = to_pci_dev(dev_d);
2158
+ struct net_device *dev = pci_get_drvdata(pdev);
21592159 struct de_private *de = netdev_priv(dev);
2160
- int retval = 0;
21612160
21622161 rtnl_lock();
21632162 if (netif_device_present(dev))
21642163 goto out;
21652164 if (!netif_running(dev))
21662165 goto out_attach;
2167
- if ((retval = pci_enable_device(pdev))) {
2168
- netdev_err(dev, "pci_enable_device failed in resume\n");
2169
- goto out;
2170
- }
21712166 pci_set_master(pdev);
21722167 de_init_rings(de);
21732168 de_init_hw(de);
....@@ -2178,24 +2173,18 @@
21782173 return 0;
21792174 }
21802175
2181
-#endif /* CONFIG_PM */
2176
+static SIMPLE_DEV_PM_OPS(de_pm_ops, de_suspend, de_resume);
21822177
21832178 static struct pci_driver de_driver = {
21842179 .name = DRV_NAME,
21852180 .id_table = de_pci_tbl,
21862181 .probe = de_init_one,
21872182 .remove = de_remove_one,
2188
-#ifdef CONFIG_PM
2189
- .suspend = de_suspend,
2190
- .resume = de_resume,
2191
-#endif
2183
+ .driver.pm = &de_pm_ops,
21922184 };
21932185
21942186 static int __init de_init (void)
21952187 {
2196
-#ifdef MODULE
2197
- pr_info("%s\n", version);
2198
-#endif
21992188 return pci_register_driver(&de_driver);
22002189 }
22012190