1 --- AdiUsbAdslDriver.c.orig 2003-09-11 19:48:46.000000000 +0200
2 +++ AdiUsbAdslDriver.c 2003-09-12 12:40:54.000000000 +0200
4 #include <linux/init.h>
5 #include <linux/proc_fs.h>
6 #include <linux/list.h>
7 +#include <linux/interrupt.h>
8 #include <asm/uaccess.h>
9 #include <linux/if_arp.h>
10 #include "AdiUsbAdslDriver.h"
14 /* Try to select the first USB configuration: */
15 - if (usb_set_configuration(usb, usb->config[0].bConfigurationValue) < 0)
16 + if (usb_set_configuration(usb, usb->config[0].desc.bConfigurationValue) < 0)
18 adi_err ("adi_probe : set_configuration failed.\n");
22 pHw->pIncomingData[i] = GET_KBUFFER(INCOMING_DATA_SIZE);
24 - pHw->pUrbReadIso[i] = usb_alloc_urb(pHw->IsoFramesPerUrb);
25 + pHw->pUrbReadIso[i] = usb_alloc_urb(pHw->IsoFramesPerUrb,in_interrupt() ? GFP_ATOMIC : GFP_KERNEL);
26 pHw->pIncomingData[i] = GET_KBUFFER((pHw->IsoPipeSize * pHw->IsoFramesPerUrb));
28 if (!pHw->pIncomingData[i])
30 usb_driver_claim_interface(&adi_driver, &(usb->actconfig->interface[1]), pHw);
31 usb_driver_claim_interface(&adi_driver, &(usb->actconfig->interface[2]), pHw);
32 /* Get information about our endpoints*/
33 - epoutidma = usb->actconfig->interface[1].altsetting[0].endpoint + 0;
34 - epoutdata = usb->actconfig->interface[1].altsetting[0].endpoint + 1;
35 + epoutidma = &usb->actconfig->interface[1]->altsetting[0].endpoint->desc;
36 + epoutdata = &usb->actconfig->interface[1]->altsetting[0].endpoint->desc;
38 - epindata = usb->actconfig->interface[2].altsetting[0].endpoint + 0;
39 + epindata = &usb->actconfig->interface[2]->altsetting[0].endpoint->desc;
40 #else /*ifdef USEBULK*/
41 /*******************************************************************************/
42 /* Need to eventually choose the alternate interface based on the train ds rate*/
47 - epindata=usb->actconfig->interface[kUSB_INTF_IN].altsetting[kFASTEST_ISO_INTF].endpoint+0;
48 + epindata=usb->actconfig->interface[kUSB_INTF_IN]->altsetting[kFASTEST_ISO_INTF].endpoint+0;
50 #endif /*ifdef USEBULK else*/
53 /* Unlink pending interrupt URBs: */
56 - pHw->urbInt.transfer_flags &= ~USB_ASYNC_UNLINK;
57 + pHw->urbInt.transfer_flags &= ~URB_ASYNC_UNLINK;
58 usb_unlink_urb(&pHw->urbInt);
59 pHw->HasIntURB = FALSE;
61 @@ -1231,13 +1232,13 @@
63 /* Get the USB endpoint for IDMA uploading: */
64 struct usb_endpoint_descriptor *epint =
65 - dev->actconfig->interface[0].altsetting[0].endpoint + 0;
66 + &dev->actconfig->interface[0]->altsetting[0].endpoint->desc;
67 /* Install the interrupt handler to send IDMA pages to the modem
68 and handle further incoming data: */
69 usb_fill_int_urb(&pHw->urbInt, dev, pHw->pipeIntIn, pHw->pInterruptData,
70 sizeof(CDC_NOTIFY), adi_irq, pHw, epint->bInterval);
71 pHw->HasIntURB = TRUE;
72 - if (usb_submit_urb(&pHw->urbInt) < 0)
73 + if (usb_submit_urb(&pHw->urbInt,0) < 0)
75 adi_err ("Unable to submit interrupt URB!\n");
78 /* Stop our outgoing data urbs */
81 - pHw->urbWrite.transfer_flags &= ~USB_ASYNC_UNLINK;
82 + pHw->urbWrite.transfer_flags &= ~URB_ASYNC_UNLINK;
83 usb_unlink_urb(&pHw->urbWrite);
86 @@ -1787,10 +1788,10 @@
87 URB. This will call WriteCompletion, which will call
90 - pHw->urbWrite.transfer_flags |= USB_ASYNC_UNLINK;
91 + pHw->urbWrite.transfer_flags |= URB_ASYNC_UNLINK;
92 usb_unlink_urb(&pHw->urbWrite);
94 - pHw->urbOAMWrite.transfer_flags |= USB_ASYNC_UNLINK;
95 + pHw->urbOAMWrite.transfer_flags |= URB_ASYNC_UNLINK;
96 usb_unlink_urb(&pHw->urbOAMWrite);
98 /* We must reset the transaction time to keep the watchdog quiet: */
99 --- Boot.c.orig 2003-09-12 12:43:26.000000000 +0200
100 +++ Boot.c 2003-09-12 14:22:12.000000000 +0200
106 +#define USB_ST_NOERROR 0
107 +#define USB_QUEUE_BULK 0x0010
108 /*********************************************************************************/
109 /* Local only prototypes */
110 /*********************************************************************************/
111 @@ -465,14 +466,14 @@
112 memcpy(xfer_buf, pData, Size);
114 /* Get an URB and prepare it for submission*/
115 - urb = usb_alloc_urb(0);
116 + urb = usb_alloc_urb(0,0);
118 usb_fill_bulk_urb(urb, pHw->usbdev, pHw->pipeBulkIdmaOut, xfer_buf, Size, IDMACompletion, pHw);
119 urb->transfer_flags |= USB_QUEUE_BULK;
121 adi_dbg (DBG_BOOT,"Submitting BULK URB %p\n", urb);
123 - ret = usb_submit_urb(urb);
124 + ret = usb_submit_urb(urb,0);
127 adi_leaves (DBG_BOOT);
128 --- Me.c.orig 2003-09-12 14:56:03.000000000 +0200
129 +++ Me.c 2003-09-12 14:55:47.000000000 +0200
135 +#define USB_ST_NOERROR 0
136 /***************************************************************************************/
137 /* ProcessIncomingCmv */
139 --- Oam.c.orig 2003-09-12 14:56:41.000000000 +0200
140 +++ Oam.c 2003-09-12 14:57:11.000000000 +0200
145 +#define USB_ST_NOERROR 0
147 //---------------------------------------------------------------------------
148 // Some sample OAM cells from Dennis Chan ...
150 FILL_BULK_URB(&pHw->urbOAMWrite, pHw->usbdev, pHw->pipeBulkDataOut,
151 pCell,uiTotalBytes , AmoebaCompletion, pHw);
153 - result = usb_submit_urb(&pHw->urbOAMWrite);
154 + result = usb_submit_urb(&pHw->urbOAMWrite,0);
156 adi_dbg (DBG_OAM,"usb_submit_urb result=%d \n",result);
157 adi_leaves (DBG_OAM);
158 --- Pipes.c.orig 2003-09-12 14:27:57.000000000 +0200
159 +++ Pipes.c 2003-09-12 15:42:29.091320528 +0200
161 /* the DMA of an incoming packet could be happening while the CPU is doing the */
162 /* reassembly of another packet. */
163 /**********************************************************************************/
164 +#define USB_ST_NOERROR 0
165 +#define USB_QUEUE_BULK 0x0010
166 void StartReadPipe(Hardware *pHw)
170 memset(pUrb, 0, sizeof(*pUrb));
171 spin_lock_init(&pUrb->lock);
172 /*Init the URB fields per the spec*/
173 - pUrb->next = pHw->pUrbReadIso[(i+1) % INCOMING_Q_SIZE];
174 +// pUrb->next = pHw->pUrbReadIso[(i+1) % INCOMING_Q_SIZE];
175 pUrb->dev = pHw->usbdev;
176 pUrb->pipe = pHw->pipeIsoDataIn;
179 pUrb->transfer_buffer = pHw->pIncomingData[i];
180 pUrb->transfer_buffer_length = pHw->IsoPipeSize * pHw->IsoFramesPerUrb;
181 pUrb->number_of_packets = pHw->IsoFramesPerUrb;
182 - pUrb->transfer_flags = USB_ISO_ASAP;
183 + pUrb->transfer_flags = URB_ISO_ASAP;
185 CC - FIXME : Voir ce que ces flags signifient avant de les activer :
186 pUrb->transfer_flags &= ~USB_DISABLE_SPD; // Curieux: cela suppose que ISO_ASAP contiendrait DISABLE_SPD ?
188 for (i=0; i<INCOMING_Q_SIZE; i++)
190 /*Ok, data is initialized, fire off the ISO URB ring*/
191 - if ((result = usb_submit_urb(pHw->pUrbReadIso[i])))
192 + if ((result = usb_submit_urb(pHw->pUrbReadIso[i],0)))
194 adi_dbg (DBG_READ,"Error %d on ISO read URB submit.\n", result);
197 memset(urb, 0, sizeof(*urb));
198 usb_fill_bulk_urb(urb, pHw->usbdev, pHw->pipeBulkDataIn,
199 urb->transfer_buffer, INCOMING_DATA_SIZE, ReadBulkCompletion, pHw);
200 - if ((result = usb_submit_urb(urb)))
201 + if ((result = usb_submit_urb(urb,0)))
203 adi_dbg (DBG_READ,"Error %d on read URB submit.\n", result);
205 @@ -374,10 +376,10 @@
206 for (i=0; i<INCOMING_Q_SIZE; i++)
209 - pHw->urbRead[i].transfer_flags &= ~USB_ASYNC_UNLINK;
210 + pHw->urbRead[i].transfer_flags &= ~URB_ASYNC_UNLINK;
211 usb_unlink_urb(&pHw->urbRead[i]);
213 - pHw->pUrbReadIso[i]->transfer_flags &= ~USB_ASYNC_UNLINK;
214 + pHw->pUrbReadIso[i]->transfer_flags &= ~URB_ASYNC_UNLINK;
215 usb_unlink_urb(pHw->pUrbReadIso[i]);
219 pHw->urbWrite.transfer_flags |= USB_QUEUE_BULK;
222 - result = usb_submit_urb(&pHw->urbWrite);
223 + result = usb_submit_urb(&pHw->urbWrite,0);
231 - urb->transfer_flags &= ~USB_ASYNC_UNLINK;
232 + urb->transfer_flags &= ~URB_ASYNC_UNLINK;
236 --- Sm.c.orig 2003-09-12 14:56:18.000000000 +0200
237 +++ Sm.c 2003-09-12 14:56:29.000000000 +0200
239 /* Rewrite for MAC OS, 09/2001 */
241 /************************************************************************************/
242 +#define USB_ST_NOERROR 0
243 void ModemSM(UInt16 uEventCode, Hardware *pHw, void *pData)
246 --- Util.c.niedakh 2003-06-04 00:52:10.000000000 +0200
247 +++ Util.c 2003-09-12 15:53:46.430349344 +0200
251 #include "Firmware8051.h"
253 +#define USB_ST_NOERROR 0
254 /**********************************************************************************/
255 /* Local utilities */
256 /**********************************************************************************/
258 pdr = (devrequest *)(xfer_buf+CMV_DATA_WORDS*2);
260 /*Get an URB and prepare it for submission*/
261 - urb = usb_alloc_urb(0);
262 + urb = usb_alloc_urb(0,0);
264 FILL_USB_CTRL_REQUEST(pdr,
265 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
267 pdr = (devrequest *)(xfer_buf+CMV_DATA_WORDS*2);
269 /*Get an URB and prepare it for submission*/
270 - urb = usb_alloc_urb(0);
271 + urb = usb_alloc_urb(0,0);
273 FILL_USB_CTRL_REQUEST(pdr,
274 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
276 if ( list_was_empty )
278 adi_dbg(DBG_UTILS,"Submit urb %p immediately\n", urb);
279 - ret = usb_submit_urb (urb);
280 + ret = usb_submit_urb (urb,0);
283 adi_err ("Failed to send ctrl urb (%p) with err=%d\n",
285 adi_dbg(DBG_UTILS,"rm_queued_urb: Submitting urb %p\n",qhead->urb);
288 - ret = usb_submit_urb ( qhead->urb );
289 + ret = usb_submit_urb ( qhead->urb , 0);
292 adi_err ("Failed to send pending ctrl urb (%p) with err=%d\n",
297 - ret = usb_submit_urb (pHw->ctrl_urb_failed);
298 + ret = usb_submit_urb (pHw->ctrl_urb_failed,0);
301 adi_err ("ADI: Failed to send faulty ctrl urb (%p) with err=%d\n",
303 /* We have to unlink it */
304 qhead = list_entry ( pHw->ctrl_urb_ipg_q.next, queued_urb_t, list);
306 - qhead->urb->transfer_flags &= ~USB_ASYNC_UNLINK;
307 + qhead->urb->transfer_flags &= ~URB_ASYNC_UNLINK;
308 usb_unlink_urb(qhead->urb);
311 --- user/Makefile.orig 2003-09-13 20:44:11.207726216 +0200
312 +++ user/Makefile 2003-09-13 21:21:04.834203840 +0200
314 # Makefile for adictrl
317 -CFLAGS=-O2 -pipe -Wall -pedantic -DLINUX -g
318 +CFLAGS=-O2 -I../../kern-fixed -DLINUX -Wall
320 CONFIGDIR=/etc/analog
321 INSTALLER = $(shell which install)
322 --- user/adictrl.c.orig 2003-09-13 21:06:07.408633264 +0200
323 +++ user/adictrl.c 2003-09-13 21:23:39.022763616 +0200
328 -#include <linux/usb.h>
331 -#include <linux/usbdevice_fs.h>
332 +#include "usbdevice_fs.h"
337 * @bNumConfigurations
342 typedef struct usb_device_descriptor
346 uint8_t iSerialNumber;
347 uint8_t bNumConfigurations;
348 } __attribute__((packed)) usb_dev_desc_t;
351 +typedef struct usb_device_descriptor __attribute__((packed)) usb_dev_desc_t;
353 * cmv_msg_t - CMV message description.
354 * Copied and adapted from Struct.sh in order to not enter