Re: [linux-usb-devel] [PATCH] USB BIOS early handoff only when thewe the driver is configured

From: Alan Stern
Date: Tue Aug 07 2007 - 10:37:43 EST


On Tue, 7 Aug 2007, David Engraf wrote:

> You said your Intel board has also problems with the handoff.
> Could you try the follwing patch, because the EHCI documentation
> says that the OS must set the EHCI_USBLEGSUP_OS bit and then
> wait until EHCI_USBLEGSUP_BIOS is cleared. The kernel never
> uses the EHCI_USBLEGSUP_OS flag at the moment.

Yes it does. Maybe not by that name, but it does set the bit.

> On my system there is no change, but maybe this patch works on
> your system.
>
> Thanks
> David Engraf
>
> linux-2.6.22.1
>
> diff -puN drivers/usb/host/pci-quirks_orig.c drivers/usb/host/pci-quirks.c
>
> --- drivers/usb/host/pci-quirks_orig.c 2007-07-10 20:56:30.000000000
> +0200
> +++ drivers/usb/host/pci-quirks.c 2007-08-07 10:38:33.000000000 +0200
> @@ -268,6 +268,8 @@ static void __devinit quirk_usb_disable_
> * handoff..
> */
> pci_write_config_byte(pdev, offset + 3, 1);
> +
> + pci_write_config_byte(pdev, offset, cap |
> EHCI_USBLEGSUP_OS);

This patch is definitely wrong (besides being line-wrapped). Note that
EHCI_USBLEGSUP_OS is equal to (1 << 24) -- it makes no sense to use it
as an argument for a byte-sized write. Also note that the two
low-order bytes in the USBLEGSUP register are read-only; you shouldn't
try to write them at all.

It looks like you are simply attempting to do what the previous line of
code already does.

Alan Stern

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/