Hi Adsynori, On Wed, 2004-05-12 at 12:43, Adsynori wrote: > I changed it to do work ISOC transfer from PC webcam
I ported your version to work on my Xscale based platform as well. My patches contain several cleanups, etc. Perhaps you would like to merge them into your codebase? There are several small patches since I try to keep each change separate, they apply in the order in which I list them here. usb-hcisp116x-tango-timings Remove the WAIT_300NS macro and use udelay instead, also enforce the 110ns delay between successive data accesses. usb-hcisp116x-tango-hardwareconfig Factor out the value of the HcHardwareConfig register into a #define, to make porting easier. usb-hcisp116x-tango-portnames Rename the ports from hcport and hcport2 to cmd_port and data_port, the old names were doing my head in ;-) usb-hcisp116x-tango-configuration Factor default ports, irqs etc into #defines for each platform (I'm not sure CONFIG_ARCH_CAT709 is correct for your platform -- your platform -- you may need to change it) usb-hcisp116x-tango-slab <linux/malloc.h> has been deprecated in favour of <linux/slab.h> for some time now. usb-hcisp116x-tango-io Use inw/outw instead of ctrl_inw and ctrl_outw, the later seem to be SH specific. I don't know enough about the SH port to know whether a #ifdef CONFIG_ARCH_SH is needed here to keep using ctrl_* on that platform, I suspect not. usb-hcisp116x-tango-irqs Enable IRQs even when SWITCH_INT is not defined. usb-hcisp116x-tango-license Set the module license. usb-hcisp116x-tango-busname Set the bus name. Cheers, Ian. -- Ian Campbell, Senior Design Engineer Web: http://www.arcom.com Arcom, Clifton Road, Direct: +44 (0)1223 403 465 Cambridge CB1 7EA, United Kingdom Phone: +44 (0)1223 411 200
Index: linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c =================================================================== --- linux-2.4-vrs-pxa.orig/drivers/usb/host/hc_isp116x.c 2004-05-14 09:23:44.000000000 +0100 +++ linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c 2004-05-14 09:26:36.000000000 +0100 @@ -46,8 +46,9 @@ #include <linux/list.h> #include <linux/ioport.h> #include <asm/io.h> - +#include <linux/delay.h> #include <linux/usb.h> + //#include "../core/hcd.h" #include "../hcd.h" @@ -89,14 +90,6 @@ //MODULE_PARM(wuport,"i"); //MODULE_PARM_DESC(wuport,"WAKEUP PORT 0x240"); -/* it depends on your system */ -/* it's for CAT709 */ -#define WAIT_300NS ctrl_inw(0xa0000000);\ -ctrl_inw(0xa0000000);\ -ctrl_inw(0xa0000000);\ -ctrl_inw(0xa0000000);\ -ctrl_inw(0xa0000000); - static inline void ISP116x_OUTW (int val, int addr) { ctrl_outw (val, addr); @@ -115,9 +108,10 @@ int val16, val; ISP116x_OUTW (regindex, hp->hcport2); - WAIT_300NS - val16 = ISP116x_INW (hp->hcport); + ndelay(300); + val16 = ISP116x_INW (hp->hcport); val = val16 & 0xffff; + ndelay(110); val16 = ISP116x_INW (hp->hcport); val += val16 << 16; return val; @@ -128,8 +122,9 @@ hcipriv_t * hp = &hci->hp; int val = 0; ISP116x_OUTW (regindex, hp->hcport2); - WAIT_300NS + ndelay(300); val = ISP116x_INW (hp->hcport); + ndelay(110); return val; } @@ -139,14 +134,16 @@ int i; int val = 0; ISP116x_OUTW (regindex, hp->hcport2); - WAIT_300NS - for (i = 0; i < length - 1; i += 2) { + ndelay(300); + for (i = 0; i < length - 1; i += 2) { val = ISP116x_INW (hp->hcport); + ndelay(110); buffer [i] = val; buffer [i+1] = val >> 8; } if (length & 1) { val = ISP116x_INW (hp->hcport); + ndelay(110); buffer [length - 1] = val; } #ifdef DEBUG1 @@ -162,24 +159,27 @@ { hcipriv_t * hp = &hci->hp; ISP116x_OUTW (regindex | 0x80, hp->hcport2); - WAIT_300NS + ndelay(300); ISP116x_OUTW (value & 0xffff, hp->hcport); - ISP116x_OUTW (value >> 16, hp->hcport); + ndelay(110); + ISP116x_OUTW (value >> 16, hp->hcport); + ndelay(110); } static inline void WRITE_REG16 (hci_t * hci, unsigned int value, int regindex) { hcipriv_t * hp = &hci->hp; ISP116x_OUTW (regindex | 0x80, hp->hcport2); - WAIT_300NS + ndelay(300); ISP116x_OUTW (value, hp->hcport); + ndelay(110); } static inline void WRITE_REG0 (hci_t * hci, int regindex) { hcipriv_t * hp = &hci->hp; ISP116x_OUTW (regindex | 0x80, hp->hcport2); - WAIT_300NS + ndelay(300); } static inline void WRITE_REGn16 (hci_t * hci, int regindex, int length, __u8 * buffer) @@ -187,12 +187,14 @@ hcipriv_t * hp = &hci->hp; int i; ISP116x_OUTW (regindex | 0x80, hp->hcport2); - WAIT_300NS + ndelay(300); for (i = 0; i < length - 1; i += 2) { ISP116x_OUTW (buffer [i] + (buffer [i+1] << 8), hp->hcport); + ndelay(110); } if (length & 1) { ISP116x_OUTW (buffer [length - 1], hp->hcport); + ndelay(110); } #ifdef DEBUG1 printk (" WRITE_REGn16: %d :", length);
Index: linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c =================================================================== --- linux-2.4-vrs-pxa.orig/drivers/usb/host/hc_isp116x.c 2004-05-25 13:16:33.000000000 +0100 +++ linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c 2004-05-25 13:33:09.000000000 +0100 @@ -72,7 +72,7 @@ static int hcport = 0xba00c000; static int hcport2 = 0xba00c002; static int wuport = 0x0; /* Not work */ - +#define HC_HARDWARE_CONFIG (DataBusWidth16 | DownstreamPort15KRSel) MODULE_PARM(hc_verbose,"i"); MODULE_PARM_DESC(hc_verbose,"verbose startup messages, default is 1 (yes)"); @@ -316,7 +316,7 @@ int mask = SOFITLInt | ATLInt | OPR_Reg; WRITE_REG16 (hci, mask, HcuPInterrupt); WRITE_REG16 (hci, mask, HcuPInterruptEnable); - WRITE_REG16 (hci,InterruptPinEnable | DataBusWidth16 | DownstreamPort15KRSel, HcHardwareConfiguration); + WRITE_REG16 (hci, InterruptPinEnable | HC_HARDWARE_CONFIG, HcHardwareConfiguration); #endif } @@ -325,7 +325,7 @@ #ifdef HC_SWITCH_INT WRITE_REG16 (hci, 0, HcuPInterrupt); /* maybe need */ WRITE_REG16 (hci, 0, HcuPInterruptEnable); - WRITE_REG16 (hci,DataBusWidth16 | DownstreamPort15KRSel, HcHardwareConfiguration); + WRITE_REG16 (hci, HC_HARDWARE_CONFIG, HcHardwareConfiguration); #endif } @@ -443,8 +443,8 @@ int timeout = 30; /* Disable HC interrupts */ WRITE_REG16 (hci, 0,HcuPInterruptEnable); - WRITE_REG16 (hci,InterruptPinEnable | DataBusWidth16 | DownstreamPort15KRSel, HcHardwareConfiguration); - WRITE_REG16 (hci,InterruptOutputPolarity | DataBusWidth16 | DownstreamPort15KRSel, HcHardwareConfiguration); + WRITE_REG16 (hci, InterruptPinEnable | HC_HARDWARE_CONFIG, HcHardwareConfiguration); + WRITE_REG16 (hci, InterruptOutputPolarity | HC_HARDWARE_CONFIG, HcHardwareConfiguration); dbg ("USB HC reset_hc usb-: ctrl = 0x%x ;", READ_REG32 (hci, HcControl)); @@ -527,7 +527,6 @@ #endif WRITE_REG16 (hci, mask, HcuPInterrupt); WRITE_REG16 (hci, mask, HcuPInterruptEnable); -// WRITE_REG16 (hci,InterruptPinEnable | DataBusWidth16 , HcHardwareConfiguration); #ifdef OHCI_USE_NPS @@ -538,8 +537,6 @@ // POTPGT delay is bits 24-31, in 2 ms units. mdelay ((READ_REG32 (hci, HcRhDescriptorA) >> 23) & 0x1fe); -// WRITE_REG16 (hci,InterruptPinEnable | DataBusWidth16 | DownstreamPort15KRSel, HcHardwareConfiguration); -// WRITE_REG16 (hci,InterruptPinEnable | DataBusWidth16 , HcHardwareConfiguration); rh_connect_rh (hci); return 0;
Index: linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c =================================================================== --- linux-2.4-vrs-pxa.orig/drivers/usb/host/hc_isp116x.c 2004-05-25 13:33:09.000000000 +0100 +++ linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c 2004-05-25 13:38:04.000000000 +0100 @@ -69,9 +69,9 @@ /* it depends on your system */ /* it's for CAT709 */ static int irq = 74; -static int hcport = 0xba00c000; -static int hcport2 = 0xba00c002; -static int wuport = 0x0; /* Not work */ +static int data_port = 0xba00c000; +static int cmd_port = 0xba00c002; +static int wu_port = -1; /* Not work */ #define HC_HARDWARE_CONFIG (DataBusWidth16 | DownstreamPort15KRSel) MODULE_PARM(hc_verbose,"i"); @@ -83,12 +83,12 @@ MODULE_PARM(irq,"i"); MODULE_PARM_DESC(irq,"IRQ 74 (default)"); -MODULE_PARM(hcport,"i"); -MODULE_PARM_DESC(hcport,"ISP116x PORT 0xba00c000"); -MODULE_PARM(hcport2,"i"); -MODULE_PARM_DESC(hcport2,"ISP116x PORT2 0xba00c002"); -//MODULE_PARM(wuport,"i"); -//MODULE_PARM_DESC(wuport,"WAKEUP PORT 0x240"); +MODULE_PARM(data_port,"i"); +MODULE_PARM_DESC(data_port,"ISP116x PORT 0xba00c000"); +MODULE_PARM(cmd_port,"i"); +MODULE_PARM_DESC(cmd_port,"ISP116x PORT2 0xba00c002"); +MODULE_PARM(wu_port,"i"); +MODULE_PARM_DESC(wu_port,"WAKEUP PORT 0x240"); static inline void ISP116x_OUTW (int val, int addr) { @@ -107,12 +107,12 @@ hcipriv_t * hp = &hci->hp; int val16, val; - ISP116x_OUTW (regindex, hp->hcport2); + ISP116x_OUTW (regindex, hp->cmd_port); ndelay(300); - val16 = ISP116x_INW (hp->hcport); + val16 = ISP116x_INW (hp->data_port); val = val16 & 0xffff; ndelay(110); - val16 = ISP116x_INW (hp->hcport); + val16 = ISP116x_INW (hp->data_port); val += val16 << 16; return val; } @@ -121,9 +121,9 @@ { hcipriv_t * hp = &hci->hp; int val = 0; - ISP116x_OUTW (regindex, hp->hcport2); + ISP116x_OUTW (regindex, hp->cmd_port); ndelay(300); - val = ISP116x_INW (hp->hcport); + val = ISP116x_INW (hp->data_port); ndelay(110); return val; } @@ -133,16 +133,16 @@ hcipriv_t * hp = &hci->hp; int i; int val = 0; - ISP116x_OUTW (regindex, hp->hcport2); + ISP116x_OUTW (regindex, hp->cmd_port); ndelay(300); for (i = 0; i < length - 1; i += 2) { - val = ISP116x_INW (hp->hcport); + val = ISP116x_INW (hp->data_port); ndelay(110); buffer [i] = val; buffer [i+1] = val >> 8; } if (length & 1) { - val = ISP116x_INW (hp->hcport); + val = ISP116x_INW (hp->data_port); ndelay(110); buffer [length - 1] = val; } @@ -158,27 +158,27 @@ static inline void WRITE_REG32 (hci_t * hci, unsigned int value, int regindex) { hcipriv_t * hp = &hci->hp; - ISP116x_OUTW (regindex | 0x80, hp->hcport2); + ISP116x_OUTW (regindex | 0x80, hp->cmd_port); ndelay(300); - ISP116x_OUTW (value & 0xffff, hp->hcport); + ISP116x_OUTW (value & 0xffff, hp->data_port); ndelay(110); - ISP116x_OUTW (value >> 16, hp->hcport); + ISP116x_OUTW (value >> 16, hp->data_port); ndelay(110); } static inline void WRITE_REG16 (hci_t * hci, unsigned int value, int regindex) { hcipriv_t * hp = &hci->hp; - ISP116x_OUTW (regindex | 0x80, hp->hcport2); + ISP116x_OUTW (regindex | 0x80, hp->cmd_port); ndelay(300); - ISP116x_OUTW (value, hp->hcport); + ISP116x_OUTW (value, hp->data_port); ndelay(110); } static inline void WRITE_REG0 (hci_t * hci, int regindex) { hcipriv_t * hp = &hci->hp; - ISP116x_OUTW (regindex | 0x80, hp->hcport2); + ISP116x_OUTW (regindex | 0x80, hp->cmd_port); ndelay(300); } @@ -186,14 +186,14 @@ { hcipriv_t * hp = &hci->hp; int i; - ISP116x_OUTW (regindex | 0x80, hp->hcport2); + ISP116x_OUTW (regindex | 0x80, hp->cmd_port); ndelay(300); for (i = 0; i < length - 1; i += 2) { - ISP116x_OUTW (buffer [i] + (buffer [i+1] << 8), hp->hcport); + ISP116x_OUTW (buffer [i] + (buffer [i+1] << 8), hp->data_port); ndelay(110); } if (length & 1) { - ISP116x_OUTW (buffer [length - 1], hp->hcport); + ISP116x_OUTW (buffer [length - 1], hp->data_port); ndelay(110); } #ifdef DEBUG1 @@ -563,7 +563,9 @@ hp = &hci->hp; hp->irq = -1; - hp->hcport = -1; + hp->data_port = -1; + hp->cmd_port = -1; + hp->wu_port = -1; hci->a_td_array.len = 0; hci->i_td_array[0].len = 0; @@ -607,7 +609,7 @@ if (hci->bus->root_hub) usb_disconnect (&hci->bus->root_hub); - if (hp->hcport > 0) { + if (hp->data_port != -1) { WRITE_REG16 (hci, 0, HcHardwareConfiguration); WRITE_REG16 (hci, 0, HcDMAConfiguration); WRITE_REG16 (hci, 0, HcuPInterruptEnable); @@ -619,20 +621,20 @@ if (hp->tl) kfree (hp->tl); - if (hp->hcport > 0) { - release_region (hp->hcport, 2); - hp->hcport = 0; + if (hp->data_port != -1) { + release_region (hp->data_port, 2); + hp->data_port = -1; } - if (hp->hcport2 > 0) { - release_region (hp->hcport2, 2); - hp->hcport2 = 0; + if (hp->cmd_port != -1) { + release_region (hp->cmd_port, 2); + hp->cmd_port = -1; } -// if (hp->wuport > 0) { -// release_region (hp->wuport, 2); -// hp->wuport = 0; -// } + if (hp->wu_port != -1) { + release_region (hp->wu_port, 2); + hp->wu_port = -1; + } if (hp->irq >= 0) { free_irq (hp->irq, hci); @@ -654,7 +656,7 @@ * return success. */ -static int __devinit hc_found_hci (int addr, int addr2, int wuaddr, int irq, int dma) +static int __devinit hc_found_hci (int data_port, int cmd_port, int wu_addr, int irq, int dma) { hci_t * hci; hcipriv_t * hp; @@ -666,36 +668,35 @@ hp = &hci->hp; - if (!request_region (addr, 2, "ISP116x USB HOST")) { - err ("request address %d-%d failed", addr, addr+4); + if (!request_region (data_port, 2, "ISP116x USB HOST")) { + err ("request address %d-%d failed", data_port, data_port+4); hc_release_hci (hci); return -EBUSY; } + hp->data_port = data_port; - hp->hcport = addr; - - if (!request_region (addr2, 2, "ISP116x USB HOST")) { - err ("request address %d-%d failed", addr, addr+4); + if (!request_region (cmd_port, 2, "ISP116x USB HOST")) { + err ("request address %d-%d failed", data_port, data_port+4); hc_release_hci (hci); return -EBUSY; } + hp->cmd_port = cmd_port; - hp->hcport2 = addr2; + if ( wu_addr != -1 ) { + if (!request_region (wu_addr, 2, "ISP116x USB HOST")) { + err ("request address %d-%d failed", wu_addr, wu_addr+2); + hc_release_hci (hci); + return -EBUSY; + } + } + hp->wu_port = wu_addr; if ((READ_REG16(hci, HcChipID) & 0xff00) != 0x6100) { - printk("ISP1161 Not Found HcChipID =%x\n",READ_REG16(hci, HcChipID)); + printk("ISP116x Not Found. HcChipID = 0x%x\n",READ_REG16(hci, HcChipID)); hc_release_hci (hci); return -ENODEV; } -// if (!request_region (wuaddr, 2, "ISP116x USB HOST")) { -// err ("request address %d-%d failed", wuaddr, wuaddr+2); -// hc_release_hci (hci); -// return -EBUSY; -// } - -// hp->wuport = wuaddr; - if (hc_reset (hci) < 0) { hc_release_hci (hci); return -ENODEV; @@ -707,7 +708,7 @@ } printk(KERN_INFO __FILE__ ": USB ISP116x at %x/%x,%x IRQ %d Rev. %x ChipID: %x\n", - addr, addr2, wuaddr, irq, READ_REG32(hci, HcRevision), READ_REG16(hci, HcChipID)); + data_port, cmd_port, wu_addr, irq, READ_REG32(hci, HcRevision), READ_REG16(hci, HcChipID)); /* FIXME this is a second HC reset; why?? */ // WRITE_REG32 (hci, hp->hc_control = OHCI_USB_RESET, HcControl); @@ -723,7 +724,7 @@ } hp->irq = irq; if (hc_start (hci) < 0) { - err ("can't start usb-%x", addr); + err ("can't start usb-%x", data_port); hc_release_hci (hci); return -EBUSY; } @@ -738,7 +739,7 @@ { int ret; - ret = hc_found_hci (hcport, hcport2, wuport, irq, 0); + ret = hc_found_hci (data_port, cmd_port, wu_port, irq, 0); return ret; } Index: linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.h =================================================================== --- linux-2.4-vrs-pxa.orig/drivers/usb/host/hc_isp116x.h 2004-05-25 13:32:56.000000000 +0100 +++ linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.h 2004-05-25 13:37:43.000000000 +0100 @@ -181,9 +181,9 @@ int disabled; /* e.g. got a UE, we're hung */ atomic_t resume_count; /* defending against multiple resumes */ struct ohci_regs * regs; /* OHCI controller's memory */ - int hcport; - int hcport2; - int wuport; + int data_port; + int cmd_port; + int wu_port; int intrstatus; __u32 hc_control; /* copy of the hc control reg */
Index: linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c =================================================================== --- linux-2.4-vrs-pxa.orig/drivers/usb/host/hc_isp116x.c 2004-05-25 13:16:36.000000000 +0100 +++ linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c 2004-05-25 13:29:47.000000000 +0100 @@ -48,6 +48,7 @@ #include <asm/io.h> #include <linux/delay.h> #include <linux/usb.h> +#include <linux/stringify.h> //#include "../core/hcd.h" #include "../hcd.h" @@ -66,13 +67,18 @@ #include "hc_simple_isp116x.c" #include "hc_isp116x_rh.c" -/* it depends on your system */ -/* it's for CAT709 */ -static int irq = 74; -static int data_port = 0xba00c000; -static int cmd_port = 0xba00c002; -static int wu_port = -1; /* Not work */ +#if defined(CONFIG_ARCH_CAT709) +#define HC_DEFAULT_IRQ 74 +#define HC_DEFAULT_DATA_PORT 0xba00c000 +#define HC_DEFAULT_CMD_PORT 0xba00c002 +#define HC_DEFAULT_WU_PORT -1 #define HC_HARDWARE_CONFIG (DataBusWidth16 | DownstreamPort15KRSel) +#endif + +static int irq = HC_DEFAULT_IRQ; +static int data_port = HC_DEFAULT_DATA_PORT; +static int cmd_port = HC_DEFAULT_CMD_PORT; +static int wu_port = HC_DEFAULT_WU_PORT; /* Not used. */ MODULE_PARM(hc_verbose,"i"); MODULE_PARM_DESC(hc_verbose,"verbose startup messages, default is 1 (yes)"); @@ -82,13 +88,13 @@ MODULE_PARM_DESC(urb_debug,"debug urb messages, default is 0 (no)"); MODULE_PARM(irq,"i"); -MODULE_PARM_DESC(irq,"IRQ 74 (default)"); +MODULE_PARM_DESC(irq,"IRQ. default " __stringify(HC_DEFAULT_IRQ)); MODULE_PARM(data_port,"i"); -MODULE_PARM_DESC(data_port,"ISP116x PORT 0xba00c000"); +MODULE_PARM_DESC(data_port,"Data port. default " __stringify(HC_DEFAULT_DATA_PORT)); MODULE_PARM(cmd_port,"i"); -MODULE_PARM_DESC(cmd_port,"ISP116x PORT2 0xba00c002"); +MODULE_PARM_DESC(cmd_port,"Command port. default " __stringify(HC_DEFAULT_CMD_PORT)); MODULE_PARM(wu_port,"i"); -MODULE_PARM_DESC(wu_port,"WAKEUP PORT 0x240"); +MODULE_PARM_DESC(wu_port,"Wakeup port. default " __stringify(HC_DEFAULT_WU_PORT)); static inline void ISP116x_OUTW (int val, int addr) {
Index: linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c =================================================================== --- linux-2.4-vrs-pxa.orig/drivers/usb/host/hc_isp116x.c 2004-05-25 13:38:18.000000000 +0100 +++ linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c 2004-05-25 13:38:20.000000000 +0100 @@ -39,7 +39,7 @@ #include <linux/kernel.h> #include <linux/delay.h> #include <linux/sched.h> -#include <linux/malloc.h> +#include <linux/slab.h> #include <linux/errno.h> #include <linux/init.h> #include <linux/smp_lock.h>
Index: linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c =================================================================== --- linux-2.4-vrs-pxa.orig/drivers/usb/host/hc_isp116x.c 2004-05-25 13:38:18.000000000 +0100 +++ linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c 2004-05-25 13:38:20.000000000 +0100 @@ -104,13 +104,13 @@ static inline void ISP116x_OUTW (int val, int addr) { - ctrl_outw (val, addr); + outw (val, addr); } static inline int ISP116x_INW (int addr) { - return ctrl_inw (addr); + return inw (addr); }
Index: linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c =================================================================== --- linux-2.4-vrs-pxa.orig/drivers/usb/host/hc_isp116x.c 2004-05-25 13:44:19.000000000 +0100 +++ linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c 2004-05-25 13:44:20.000000000 +0100 @@ -497,6 +497,12 @@ WRITE_REG16 (hci, hp->itl_buffer_len, HcITLBufferLength); WRITE_REG16 (hci, hp->atl_buffer_len, HcATLBufferLength); + + /* Enable IRQ's */ + WRITE_REG16 (hci, + InterruptPinEnable | HC_HARDWARE_CONFIG, + HcHardwareConfiguration); + WRITE_REG16 (hci, 0, HcDMAConfiguration); maxlen = (hp->itl_buffer_len > hp->atl_buffer_len) ? hp->itl_buffer_len : hp->atl_buffer_len;
Index: linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c =================================================================== --- linux-2.4-vrs-pxa.orig/drivers/usb/host/hc_isp116x.c 2004-05-25 13:44:19.000000000 +0100 +++ linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c 2004-05-25 13:44:20.000000000 +0100 @@ -775,15 +782,4 @@ MODULE_AUTHOR ("Roman Weissgaerber <[EMAIL PROTECTED]>"); MODULE_DESCRIPTION ("USB ISP116x Host Controller Driver"); - - - - - - - - - - - - +MODULE_LICENSE("GPL");
Index: linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c =================================================================== --- linux-2.4-vrs-pxa.orig/drivers/usb/host/hc_isp116x.c 2004-05-25 13:44:19.000000000 +0100 +++ linux-2.4-vrs-pxa/drivers/usb/host/hc_isp116x.c 2004-05-25 13:44:20.000000000 +0100 @@ -602,6 +608,7 @@ } hci->bus = bus; + bus->bus_name = "isp116x"; bus->hcpriv = (void *) hci; return hci;