On Wed, 26 May 2004, Alexander Kulakov wrote: > Alan Stern wrote: > > >Your log didn't give me any great new ideas... Clearly the device works > >okay with the usb-uhci driver in 2.4 but not the uhci-hcd driver in 2.6. > >Have you tried the uhci driver in 2.4 as well? > > > >Also, do you have any other USB devices you can try plugging in to that > >same port? > > > > > Alan > > uhci driver doesn't work either.
This is just a shot in the dark. It's a patch for 2.6.6, addressing the only significant difference I could see between the uhci and usb-uhci drivers. Maybe it will make a difference, who knows? If this doesn't work... In 2.6.6, look in the file drivers/usb/core/usb.c. Around line 1124 you should see this: wait_ms(10); /* Let the SET_ADDRESS settle */ Try changing the 10 to something larger, like 20, or 50, or 100. Alan Stern ===== drivers/usb/host/uhci-hcd.c 1.110 vs edited ===== --- 1.110/drivers/usb/host/uhci-hcd.c Wed May 19 19:41:50 2004 +++ edited/drivers/usb/host/uhci-hcd.c Tue Jun 1 15:03:26 2004 @@ -2004,6 +2010,10 @@ outw(USBCMD_RS | USBCMD_CF | USBCMD_MAXP, io_addr + USBCMD); uhci->hcd.state = USB_STATE_RUNNING; + + /* Enable PIRQ */ + pci_write_config_word(to_pci_dev(uhci_dev(uhci)), USBLEGSUP, + USBLEGSUP_DEFAULT); } /* @@ -2054,15 +2064,16 @@ uhci->io_addr = (unsigned long) hcd->regs; + /* Kick BIOS off this hardware and disable PIRQ */ + pci_write_config_word(to_pci_dev(uhci_dev(uhci)), USBLEGSUP, 0); + /* Turn off all interrupts */ outw(0, uhci->io_addr + USBINTR); - /* Maybe kick BIOS off this hardware. Then reset, so we won't get - * interrupts from any previous setup. + /* Reset the entire controller and the USB bus, to wipe out any + * previous configuration. */ reset_hc(uhci); - pci_write_config_word(to_pci_dev(uhci_dev(uhci)), USBLEGSUP, - USBLEGSUP_DEFAULT); return 0; } @@ -2324,7 +2335,7 @@ * At this point, we're guaranteed that no new connects can be made * to this bus since there are no more parents */ - + pci_write_config_word(to_pci_dev(uhci_dev(uhci)), USBLEGSUP, 0); reset_hc(uhci); spin_lock_irq(&uhci->schedule_lock); @@ -2376,6 +2387,8 @@ outl(uhci->fl->dma_handle, uhci->io_addr + USBFLBASEADD); outw(USBINTR_TIMEOUT | USBINTR_RESUME | USBINTR_IOC | USBINTR_SP, uhci->io_addr + USBINTR); + pci_write_config_word(to_pci_dev(uhci_dev(uhci)), USBLEGSUP, + USBLEGSUP_DEFAULT); uhci->resume_detect = 1; } else { reset_hc(uhci); ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel