USB: UHCI: disable remote wakeup when it's not needed
This patch (as1084b) fixes the way uhci-hcd handles polling and remote wakeups for its root hubs. When remote wakeup is disabled, neither interrupts nor polling should be enabled during a root-hub suspend. Likewise, if interrupts are enabled during suspend then polling isn't needed. Furthermore the EGSM (Enter Global Suspend Mode) bit shouldn't be set in the Command register unless remote wakeup is enabled. Apparently some controllers will issue a remote-wakeup interrupt whenever EGSM is on, even if Resume-Detect interrupts are supposedly disabled. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
1b7b61c5d4
commit
d8f12ab5d9
@ -400,8 +400,9 @@ struct uhci_hcd {
|
||||
unsigned int scan_in_progress:1; /* Schedule scan is running */
|
||||
unsigned int need_rescan:1; /* Redo the schedule scan */
|
||||
unsigned int dead:1; /* Controller has died */
|
||||
unsigned int working_RD:1; /* Suspended root hub doesn't
|
||||
need to be polled */
|
||||
unsigned int RD_enable:1; /* Suspended root hub with
|
||||
Resume-Detect interrupts
|
||||
enabled */
|
||||
unsigned int is_initialized:1; /* Data structure is usable */
|
||||
unsigned int fsbr_is_on:1; /* FSBR is turned on */
|
||||
unsigned int fsbr_is_wanted:1; /* Does any URB want FSBR? */
|
||||
|
Reference in New Issue
Block a user