Re: [39/45] OHCI: work around for nVidia shutdown problem

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

 



On Tue, Mar 29, 2011 at 7:41 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Tue, 29 Mar 2011, Andre "Osku" Schmidt wrote:
>
>> 00:0b.0 USB Controller [0c03]: nVidia Corporation MCP51 USB Controller
>> [10de:026d] (rev a3) (prog-if 10 [OHCI])
>> Â Â Â Subsystem: Micro-Star International Co., Ltd. Device [1462:7350]
>> Â Â Â Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22
>> Â Â Â Memory at fbfff000 (32-bit, non-prefetchable) [size=4K]
>> Â Â Â Capabilities: [44] Power Management version 2
>> Â Â Â Kernel driver in use: ohci_hcd
>> Â Â Â Kernel modules: ohci-hcd
>
> Thanks. ÂIt looks like nVidia "fixed" their hardware at some point.
> The old hardware doesn't work without the kernel patch and the new
> hardware doesn't work with it!
>
> Try applying the patch below instead of your own change, and let me
> know if does what you want.
>
> Alan Stern
>
>
>
> Index: usb-2.6/drivers/usb/host/ohci-pci.c
> ===================================================================
> --- usb-2.6.orig/drivers/usb/host/ohci-pci.c
> +++ usb-2.6/drivers/usb/host/ohci-pci.c
> @@ -207,10 +207,18 @@ static int ohci_quirk_amd700(struct usb_
> Â*/
> Âstatic int ohci_quirk_nvidia_shutdown(struct usb_hcd *hcd)
> Â{
> + Â Â Â struct pci_dev *pdev = to_pci_dev(hcd->self.controller);
> Â Â Â Âstruct ohci_hcd *ohci = hcd_to_ohci(hcd);
>
> - Â Â Â ohci->flags |= OHCI_QUIRK_SHUTDOWN;
> - Â Â Â ohci_dbg(ohci, "enabled nVidia shutdown quirk\n");
> + Â Â Â /* Evidently nVidia fixed their later hardware; this is a guess at
> + Â Â Â Â* the changeover point.
> + Â Â Â Â*/
> +#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_USB Â Â Â Â Â0x026d
> +
> + Â Â Â if (pdev->device < PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_USB) {
> + Â Â Â Â Â Â Â ohci->flags |= OHCI_QUIRK_SHUTDOWN;
> + Â Â Â Â Â Â Â ohci_dbg(ohci, "enabled nVidia shutdown quirk\n");
> + Â Â Â }
>
> Â Â Â Âreturn 0;
> Â}

YAY! it works! :D

eg. patch goes cleanly (with patch -l..., cause im using web mail
client, that probably messed the tab chars) and shutting down system
now powers off usb devices again.

as i was integrating this patch to the build process, i noticed that
archlinux also uses these patches in the build process
http://projects.archlinux.org/linux-2.6-ARCH.git/tree/patches?id=2.6.38.1-1
but none of them seem to modify this file, so i assume they cant be
the source of my bug in the first place. but i can try without them,
if needed.

thank you very much for the fix, and let's hope nvidia didn't/wont't
change it again :P

cheers
.andre
--
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