hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/drivers/net/ethernet/natsemi/jazzsonic.c
....@@ -36,9 +36,9 @@
3636 #include <linux/platform_device.h>
3737 #include <linux/dma-mapping.h>
3838 #include <linux/slab.h>
39
+#include <linux/pgtable.h>
3940
4041 #include <asm/bootinfo.h>
41
-#include <asm/pgtable.h>
4242 #include <asm/io.h>
4343 #include <asm/dma.h>
4444 #include <asm/jazz.h>
....@@ -147,38 +147,11 @@
147147 dev->dev_addr[i*2+1] = val >> 8;
148148 }
149149
150
- err = -ENOMEM;
151
-
152
- /* Initialize the device structure. */
153
-
154150 lp->dma_bitmode = SONIC_BITMODE32;
155151
156
- /* Allocate the entire chunk of memory for the descriptors.
157
- Note that this cannot cross a 64K boundary. */
158
- lp->descriptors = dma_alloc_coherent(lp->device,
159
- SIZEOF_SONIC_DESC *
160
- SONIC_BUS_SCALE(lp->dma_bitmode),
161
- &lp->descriptors_laddr,
162
- GFP_KERNEL);
163
- if (lp->descriptors == NULL)
152
+ err = sonic_alloc_descriptors(dev);
153
+ if (err)
164154 goto out;
165
-
166
- /* Now set up the pointers to point to the appropriate places */
167
- lp->cda = lp->descriptors;
168
- lp->tda = lp->cda + (SIZEOF_SONIC_CDA
169
- * SONIC_BUS_SCALE(lp->dma_bitmode));
170
- lp->rda = lp->tda + (SIZEOF_SONIC_TD * SONIC_NUM_TDS
171
- * SONIC_BUS_SCALE(lp->dma_bitmode));
172
- lp->rra = lp->rda + (SIZEOF_SONIC_RD * SONIC_NUM_RDS
173
- * SONIC_BUS_SCALE(lp->dma_bitmode));
174
-
175
- lp->cda_laddr = lp->descriptors_laddr;
176
- lp->tda_laddr = lp->cda_laddr + (SIZEOF_SONIC_CDA
177
- * SONIC_BUS_SCALE(lp->dma_bitmode));
178
- lp->rda_laddr = lp->tda_laddr + (SIZEOF_SONIC_TD * SONIC_NUM_TDS
179
- * SONIC_BUS_SCALE(lp->dma_bitmode));
180
- lp->rra_laddr = lp->rda_laddr + (SIZEOF_SONIC_RD * SONIC_NUM_RDS
181
- * SONIC_BUS_SCALE(lp->dma_bitmode));
182155
183156 dev->netdev_ops = &sonic_netdev_ops;
184157 dev->watchdog_timeo = TX_TIMEOUT;