From: Vojtech Pavlik Here is a patch from the SuSE kernel CVS. It's been in SuSE's kernels since 9.1 I believe, and that's a long time. Cc: Signed-off-by: Andrew Morton --- Documentation/kernel-parameters.txt | 1 + drivers/pci/quirks.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff -puN Documentation/kernel-parameters.txt~make-usb-handoff-the-default-usb-no-handoff-turns-it-off Documentation/kernel-parameters.txt --- devel/Documentation/kernel-parameters.txt~make-usb-handoff-the-default-usb-no-handoff-turns-it-off 2005-08-05 01:04:41.000000000 -0700 +++ devel-akpm/Documentation/kernel-parameters.txt 2005-08-05 01:04:41.000000000 -0700 @@ -1479,6 +1479,7 @@ running once the system is up. Format: , usb-handoff [HW] Enable early USB BIOS -> OS handoff + usb-no-handoff [HW] Disable early USB BIOS -> OS handoff usbhid.mousepoll= [USBHID] The interval which mice are to be polled at. diff -puN drivers/pci/quirks.c~make-usb-handoff-the-default-usb-no-handoff-turns-it-off drivers/pci/quirks.c --- devel/drivers/pci/quirks.c~make-usb-handoff-the-default-usb-no-handoff-turns-it-off 2005-08-05 01:04:41.000000000 -0700 +++ devel-akpm/drivers/pci/quirks.c 2005-08-05 01:05:19.000000000 -0700 @@ -908,7 +908,11 @@ static void __init quirk_sis_96x_smbus(s #define EHCI_USBLEGCTLSTS 4 /* legacy control/status */ #define EHCI_USBLEGCTLSTS_SOOE (1 << 13) /* SMI on ownership change */ +#ifdef CONFIG_X86 /* x86 && x86_64 */ +int usb_early_handoff __devinitdata = 1; /* Do handoff by default */ +#else int usb_early_handoff __devinitdata = 0; +#endif static int __init usb_handoff_early(char *str) { usb_early_handoff = 1; @@ -916,6 +920,13 @@ static int __init usb_handoff_early(char } __setup("usb-handoff", usb_handoff_early); +static int __init usb_no_handoff_early(char *str) +{ + usb_early_handoff = 0; + return 0; +} +__setup("usb-no-handoff", usb_no_handoff_early); + static void __devinit quirk_usb_handoff_uhci(struct pci_dev *pdev) { unsigned long base = 0; _