On Tue, Oct 18, 2011 at 01:41:08PM -0400, Alan Stern wrote: > Always send messages like this to the mailing list. > > On Tue, 18 Oct 2011, Arno Augustin wrote: > > > Hi Alan, > > > > thanks for your ohci-pci.c patch. It fixed my problem with resetting the > > USB devices after system shutdown with kernel code of 2.6.37 to 2.6.39. > > Now I have a problem with the upstream kernel code which contains code > > to check the NVIDIA device id against > > PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_USB to decide if OHCI_QUIRK_SHUTDOWN > > should be set in the flags (And this kernel code is patched against some > > Ubuntu/Lucid kernels). > > With the check of the ID the patch doesn't work for me any more. I think > > the USB reset problem affects different Nvidia chipsets independent to > > the PCI device id. > > > > My (newer than MCP51) ASUS M4N78-Pro and ASUS M4N78-Pro definitely need > > your patch. > > > > lspci output shows the following: > > > > ASUS M4N78-Pro: > > 00:02.0 USB Controller [0c03]: nVidia Corporation MCP78S [GeForce 8200] > > OHCI USB 1.1 Controller [*10de:077b*] (rev a1) (prog-if 10) > > Subsystem: ASUSTeK Computer Inc. Device [*1043:82e2*] > > Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- > > Stepping- SERR- FastB2B- DisINTx- > > Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- > > <TAbort- <MAbort- >SERR- <PERR- INTx- > > Latency: 0 (750ns min, 250ns max) > > Interrupt: pin A routed to IRQ 20 > > Region 0: Memory at fbd7e000 (32-bit, non-prefetchable) [size=4K] > > Capabilities: [44] Power Management version 2 > > Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA > > PME(D0+,D1+,D2+,D3hot+,D3cold+) > > Status: D0 PME-Enable- DSel=0 DScale=0 PME- > > Kernel driver in use: ohci_hcd > > > > 00:04.0 USB Controller [0c03]: nVidia Corporation MCP78S [GeForce 8200] > > OHCI USB 1.1 Controller [*10de:077d*] (rev a1) (prog-if 10) > > Subsystem: ASUSTeK Computer Inc. Device [*1043:82e2*] > > Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- > > Stepping- SERR- FastB2B- DisINTx- > > Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- > > <TAbort- <MAbort- >SERR- <PERR- INTx- > > Latency: 0 (750ns min, 250ns max) > > Interrupt: pin A routed to IRQ 23 > > Region 0: Memory at fbd7d000 (32-bit, non-prefetchable) [size=4K] > > Capabilities: [44] Power Management version 2 > > Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA > > PME(D0+,D1+,D2+,D3hot+,D3cold+) > > Status: D0 PME-Enable- DSel=0 DScale=0 PME- > > Kernel driver in use: ohci_hcd > > > > Same for ASUS M3N78-VM, with different Subsystem IDs: > > 00:02.00 *10de:077b 1043:82f2* 10/ 10/0x71 A V usb-ohci > > 00:04.00 *10de:077d 1043:82f2* 11/ 11/0x71 A V usb-ohci > > Why on earth did they decide to use two different device IDs (077b and > 077d) for the same kind of device? > > > I read, that newer hardware has problems if OHCI_QUIRK_SHUTDOWN is set > > and older hardware needs the flag to be set. > > That's what we have seen so far. > > > What about defining a kernel/module variable which can be set by > > externally to the kernel/module, to avoid recompiling of the kernel for > > special chips? > > Or at least adding MCP78S also? > > > > Hope you can help.... > > This is ridiculous. To continue adding new entries in the kernel > driver is a losing game. The best thing I can think of is a sysfs > attribute file to enable or disable the NVIDIA shutdown quirk. > > Do you think that would be okay? How would userspace know to write to this sysfs file? We have a long history of quirk tables in the kernel to work around broken hardware, adding new devices like this shouldn't be a problem. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html