projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[adm5120] fix usb mis-cleanup after r27162 (#9581)
[openwrt.git]
/
target
/
linux
/
adm5120
/
files
/
drivers
/
usb
/
host
/
adm5120-pm.c
diff --git
a/target/linux/adm5120/files/drivers/usb/host/adm5120-pm.c
b/target/linux/adm5120/files/drivers/usb/host/adm5120-pm.c
index
9d49664
..
0ccf829
100644
(file)
--- a/
target/linux/adm5120/files/drivers/usb/host/adm5120-pm.c
+++ b/
target/linux/adm5120/files/drivers/usb/host/adm5120-pm.c
@@
-432,13
+432,17
@@
static inline int admhc_rh_resume(struct admhcd *ahcd)
static int admhc_root_hub_state_changes(struct admhcd *ahcd, int changed,
int any_connected)
{
static int admhc_root_hub_state_changes(struct admhcd *ahcd, int changed,
int any_connected)
{
- int poll_rh = 1;
-
- /* keep on polling until RHSC is enabled */
+ /* If INSM is enabled, don't poll */
if (admhc_readl(ahcd, &ahcd->regs->int_enable) & ADMHC_INTR_INSM)
if (admhc_readl(ahcd, &ahcd->regs->int_enable) & ADMHC_INTR_INSM)
-
poll_rh =
0;
+
return
0;
- return poll_rh;
+ /* If no status changes are pending, enable status-change interrupts */
+ if (!changed) {
+ admhc_intr_enable(ahcd, ADMHC_INTR_INSM);
+ return 0;
+ }
+
+ return 1;
}
#endif /* CONFIG_PM */
}
#endif /* CONFIG_PM */
This page took
0.026933 seconds
and
4
git commands to generate.