forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/drivers/net/ethernet/sis/sis190.c
....@@ -494,9 +494,9 @@
494494 skb = netdev_alloc_skb(tp->dev, rx_buf_sz);
495495 if (unlikely(!skb))
496496 goto skb_alloc_failed;
497
- mapping = pci_map_single(tp->pci_dev, skb->data, tp->rx_buf_sz,
498
- PCI_DMA_FROMDEVICE);
499
- if (pci_dma_mapping_error(tp->pci_dev, mapping))
497
+ mapping = dma_map_single(&tp->pci_dev->dev, skb->data, tp->rx_buf_sz,
498
+ DMA_FROM_DEVICE);
499
+ if (dma_mapping_error(&tp->pci_dev->dev, mapping))
500500 goto out;
501501 sis190_map_to_asic(desc, mapping, rx_buf_sz);
502502
....@@ -542,8 +542,8 @@
542542 if (!skb)
543543 goto out;
544544
545
- pci_dma_sync_single_for_cpu(tp->pci_dev, addr, tp->rx_buf_sz,
546
- PCI_DMA_FROMDEVICE);
545
+ dma_sync_single_for_cpu(&tp->pci_dev->dev, addr, tp->rx_buf_sz,
546
+ DMA_FROM_DEVICE);
547547 skb_copy_to_linear_data(skb, sk_buff[0]->data, pkt_size);
548548 *sk_buff = skb;
549549 done = true;
....@@ -612,12 +612,14 @@
612612
613613
614614 if (sis190_try_rx_copy(tp, &skb, pkt_size, addr)) {
615
- pci_dma_sync_single_for_device(pdev, addr,
616
- tp->rx_buf_sz, PCI_DMA_FROMDEVICE);
615
+ dma_sync_single_for_device(&pdev->dev, addr,
616
+ tp->rx_buf_sz,
617
+ DMA_FROM_DEVICE);
617618 sis190_give_to_asic(desc, tp->rx_buf_sz);
618619 } else {
619
- pci_unmap_single(pdev, addr, tp->rx_buf_sz,
620
- PCI_DMA_FROMDEVICE);
620
+ dma_unmap_single(&pdev->dev, addr,
621
+ tp->rx_buf_sz,
622
+ DMA_FROM_DEVICE);
621623 tp->Rx_skbuff[entry] = NULL;
622624 sis190_make_unusable_by_asic(desc);
623625 }
....@@ -654,7 +656,8 @@
654656
655657 len = skb->len < ETH_ZLEN ? ETH_ZLEN : skb->len;
656658
657
- pci_unmap_single(pdev, le32_to_cpu(desc->addr), len, PCI_DMA_TODEVICE);
659
+ dma_unmap_single(&pdev->dev, le32_to_cpu(desc->addr), len,
660
+ DMA_TO_DEVICE);
658661
659662 memset(desc, 0x00, sizeof(*desc));
660663 }
....@@ -714,7 +717,7 @@
714717
715718 sis190_unmap_tx_skb(tp->pci_dev, skb, txd);
716719 tp->Tx_skbuff[entry] = NULL;
717
- dev_kfree_skb_irq(skb);
720
+ dev_consume_skb_irq(skb);
718721 }
719722
720723 if (tp->dirty_tx != dirty_tx) {
....@@ -785,8 +788,8 @@
785788 {
786789 struct pci_dev *pdev = tp->pci_dev;
787790
788
- pci_unmap_single(pdev, le32_to_cpu(desc->addr), tp->rx_buf_sz,
789
- PCI_DMA_FROMDEVICE);
791
+ dma_unmap_single(&pdev->dev, le32_to_cpu(desc->addr), tp->rx_buf_sz,
792
+ DMA_FROM_DEVICE);
790793 dev_kfree_skb(*sk_buff);
791794 *sk_buff = NULL;
792795 sis190_make_unusable_by_asic(desc);
....@@ -1069,11 +1072,13 @@
10691072 * Rx and Tx descriptors need 256 bytes alignment.
10701073 * pci_alloc_consistent() guarantees a stronger alignment.
10711074 */
1072
- tp->TxDescRing = pci_alloc_consistent(pdev, TX_RING_BYTES, &tp->tx_dma);
1075
+ tp->TxDescRing = dma_alloc_coherent(&pdev->dev, TX_RING_BYTES,
1076
+ &tp->tx_dma, GFP_KERNEL);
10731077 if (!tp->TxDescRing)
10741078 goto out;
10751079
1076
- tp->RxDescRing = pci_alloc_consistent(pdev, RX_RING_BYTES, &tp->rx_dma);
1080
+ tp->RxDescRing = dma_alloc_coherent(&pdev->dev, RX_RING_BYTES,
1081
+ &tp->rx_dma, GFP_KERNEL);
10771082 if (!tp->RxDescRing)
10781083 goto err_free_tx_0;
10791084
....@@ -1095,9 +1100,11 @@
10951100 sis190_delete_timer(dev);
10961101 sis190_rx_clear(tp);
10971102 err_free_rx_1:
1098
- pci_free_consistent(pdev, RX_RING_BYTES, tp->RxDescRing, tp->rx_dma);
1103
+ dma_free_coherent(&pdev->dev, RX_RING_BYTES, tp->RxDescRing,
1104
+ tp->rx_dma);
10991105 err_free_tx_0:
1100
- pci_free_consistent(pdev, TX_RING_BYTES, tp->TxDescRing, tp->tx_dma);
1106
+ dma_free_coherent(&pdev->dev, TX_RING_BYTES, tp->TxDescRing,
1107
+ tp->tx_dma);
11011108 goto out;
11021109 }
11031110
....@@ -1142,7 +1149,7 @@
11421149 if (!poll_locked)
11431150 poll_locked++;
11441151
1145
- synchronize_sched();
1152
+ synchronize_rcu();
11461153
11471154 } while (SIS_R32(IntrMask));
11481155
....@@ -1159,8 +1166,10 @@
11591166
11601167 free_irq(pdev->irq, dev);
11611168
1162
- pci_free_consistent(pdev, TX_RING_BYTES, tp->TxDescRing, tp->tx_dma);
1163
- pci_free_consistent(pdev, RX_RING_BYTES, tp->RxDescRing, tp->rx_dma);
1169
+ dma_free_coherent(&pdev->dev, TX_RING_BYTES, tp->TxDescRing,
1170
+ tp->tx_dma);
1171
+ dma_free_coherent(&pdev->dev, RX_RING_BYTES, tp->RxDescRing,
1172
+ tp->rx_dma);
11641173
11651174 tp->TxDescRing = NULL;
11661175 tp->RxDescRing = NULL;
....@@ -1197,8 +1206,9 @@
11971206 return NETDEV_TX_BUSY;
11981207 }
11991208
1200
- mapping = pci_map_single(tp->pci_dev, skb->data, len, PCI_DMA_TODEVICE);
1201
- if (pci_dma_mapping_error(tp->pci_dev, mapping)) {
1209
+ mapping = dma_map_single(&tp->pci_dev->dev, skb->data, len,
1210
+ DMA_TO_DEVICE);
1211
+ if (dma_mapping_error(&tp->pci_dev->dev, mapping)) {
12021212 netif_err(tp, tx_err, dev,
12031213 "PCI mapping failed, dropping packet");
12041214 return NETDEV_TX_BUSY;
....@@ -1498,7 +1508,7 @@
14981508 goto err_pci_disable_2;
14991509 }
15001510
1501
- rc = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
1511
+ rc = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
15021512 if (rc < 0) {
15031513 if (netif_msg_probe(tp))
15041514 pr_err("%s: DMA configuration failed\n",
....@@ -1538,7 +1548,7 @@
15381548 goto out;
15391549 }
15401550
1541
-static void sis190_tx_timeout(struct net_device *dev)
1551
+static void sis190_tx_timeout(struct net_device *dev, unsigned int txqueue)
15421552 {
15431553 struct sis190_private *tp = netdev_priv(dev);
15441554 void __iomem *ioaddr = tp->mmio_addr;