Re: OHCI_QUIRK_SHUTDOWN checked against PCI device ID

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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?

Alan Stern

--
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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux