Commit 14bfb615 authored by David Brownell's avatar David Brownell Committed by Greg Kroah-Hartman

[PATCH] USB: ohci module param for broken bios

This patch provides a way to work around especially broken BIOS/SMM
implementations which claim they support the OS-handoff handshake
but actually don't.  It's confirmed that this resolves some OSDL bug
(ID isn't handy just now).
Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
parent bd9ef4d9
...@@ -154,6 +154,11 @@ static int power_switching = 0; ...@@ -154,6 +154,11 @@ static int power_switching = 0;
module_param (power_switching, bool, 0); module_param (power_switching, bool, 0);
MODULE_PARM_DESC (power_switching, "true (not default) to switch port power"); MODULE_PARM_DESC (power_switching, "true (not default) to switch port power");
/* Some boards leave IR set wrongly, since they fail BIOS/SMM handshakes */
static int no_handshake = 0;
module_param (no_handshake, bool, 0);
MODULE_PARM_DESC (no_handshake, "true (not default) disables BIOS handshake");
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/
/* /*
...@@ -426,7 +431,7 @@ static int ohci_init (struct ohci_hcd *ohci) ...@@ -426,7 +431,7 @@ static int ohci_init (struct ohci_hcd *ohci)
#ifndef IR_DISABLE #ifndef IR_DISABLE
/* SMM owns the HC? not for long! */ /* SMM owns the HC? not for long! */
if (ohci_readl (&ohci->regs->control) & OHCI_CTRL_IR) { if (!no_handshake && ohci_readl (&ohci->regs->control) & OHCI_CTRL_IR) {
ohci_dbg (ohci, "USB HC TakeOver from BIOS/SMM\n"); ohci_dbg (ohci, "USB HC TakeOver from BIOS/SMM\n");
/* this timeout is arbitrary. we make it long, so systems /* this timeout is arbitrary. we make it long, so systems
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment