Re: OHCI_QUIRK_SHUTDOWN checked against PCI device ID

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

 



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


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

  Powered by Linux