hc
2024-05-11 297b60346df8beafee954a0fd7c2d64f33f3b9bc
kernel/drivers/net/ethernet/i825xx/sni_82596.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * sni_82596.c -- driver for intel 82596 ethernet controller, as
34 * used in older SNI RM machines
....@@ -22,12 +23,6 @@
2223 #define SNI_82596_DRIVER_VERSION "SNI RM 82596 driver - Revision: 0.01"
2324
2425 static const char sni_82596_string[] = "snirm_82596";
25
-
26
-#define LIB82596_DMA_ATTR 0
27
-
28
-#define DMA_WBACK(priv, addr, len) do { } while (0)
29
-#define DMA_INV(priv, addr, len) do { } while (0)
30
-#define DMA_WBACK_INV(priv, addr, len) do { } while (0)
3126
3227 #define SYSBUS 0x00004400
3328
....@@ -90,10 +85,10 @@
9085 idprom = platform_get_resource(dev, IORESOURCE_MEM, 2);
9186 if (!res || !ca || !options || !idprom)
9287 return -ENODEV;
93
- mpu_addr = ioremap_nocache(res->start, 4);
88
+ mpu_addr = ioremap(res->start, 4);
9489 if (!mpu_addr)
9590 return -ENOMEM;
96
- ca_addr = ioremap_nocache(ca->start, 4);
91
+ ca_addr = ioremap(ca->start, 4);
9792 if (!ca_addr)
9893 goto probe_failed_free_mpu;
9994
....@@ -109,7 +104,7 @@
109104 netdevice->base_addr = res->start;
110105 netdevice->irq = platform_get_irq(dev, 0);
111106
112
- eth_addr = ioremap_nocache(idprom->start, 0x10);
107
+ eth_addr = ioremap(idprom->start, 0x10);
113108 if (!eth_addr)
114109 goto probe_failed;
115110
....@@ -134,10 +129,19 @@
134129 lp->ca = ca_addr;
135130 lp->mpu_port = mpu_addr;
136131
137
- retval = i82596_probe(netdevice);
138
- if (retval == 0)
139
- return 0;
132
+ lp->dma = dma_alloc_coherent(&dev->dev, sizeof(struct i596_dma),
133
+ &lp->dma_addr, GFP_KERNEL);
134
+ if (!lp->dma)
135
+ goto probe_failed;
140136
137
+ retval = i82596_probe(netdevice);
138
+ if (retval)
139
+ goto probe_failed_free_dma;
140
+ return 0;
141
+
142
+probe_failed_free_dma:
143
+ dma_free_coherent(&dev->dev, sizeof(struct i596_dma), lp->dma,
144
+ lp->dma_addr);
141145 probe_failed:
142146 free_netdev(netdevice);
143147 probe_failed_free_ca:
....@@ -153,8 +157,8 @@
153157 struct i596_private *lp = netdev_priv(dev);
154158
155159 unregister_netdev(dev);
156
- dma_free_attrs(dev->dev.parent, sizeof(struct i596_private), lp->dma,
157
- lp->dma_addr, LIB82596_DMA_ATTR);
160
+ dma_free_coherent(&pdev->dev, sizeof(struct i596_private), lp->dma,
161
+ lp->dma_addr);
158162 iounmap(lp->ca);
159163 iounmap(lp->mpu_port);
160164 free_netdev (dev);