https://github.com/torvalds/linux
Revision c733b77475707cc3980542c86ee0ad5c841d544c authored by Huang Ying on 26 December 2012, 17:39:23 UTC, committed by Bjorn Helgaas on 26 December 2012, 17:39:23 UTC
Ulrich reported that his USB3 cardreader does not work reliably when connected to the USB3 port. It turns out that USB3 controller failed to awaken when plugging in the USB3 cardreader. Further experiments found that the USB3 host controller can only be awakened via polling, not via PME interrupt. But if the PCIe port to which the USB3 host controller is connected is suspended, we cannot poll the controller because its config space is not accessible when the PCIe port is in a low power state. To solve the issue, the PCIe port will not be suspended if any subordinate device needs PME polling. [bhelgaas: use bool consistently rather than mixing int/bool] Reference: http://lkml.kernel.org/r/50841CCC.9030809@uli-eckhardt.de Reported-by: Ulrich Eckhardt <usb@uli-eckhardt.de> Tested-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> CC: stable@vger.kernel.org # v3.6+
1 parent 130f1b8
Tip revision: c733b77475707cc3980542c86ee0ad5c841d544c authored by Huang Ying on 26 December 2012, 17:39:23 UTC
PCI/PM: Do not suspend port if any subordinate device needs PME polling
PCI/PM: Do not suspend port if any subordinate device needs PME polling
Tip revision: c733b77
File | Mode | Size |
---|---|---|
debug | ||
events | ||
gcov | ||
irq | ||
power | ||
sched | ||
time | ||
trace | ||
.gitignore | -rw-r--r-- | 63 bytes |
Kconfig.freezer | -rw-r--r-- | 52 bytes |
Kconfig.hz | -rw-r--r-- | 1.7 KB |
Kconfig.locks | -rw-r--r-- | 4.3 KB |
Kconfig.preempt | -rw-r--r-- | 2.1 KB |
Makefile | -rw-r--r-- | 7.2 KB |
acct.c | -rw-r--r-- | 16.6 KB |
async.c | -rw-r--r-- | 10.4 KB |
audit.c | -rw-r--r-- | 40.5 KB |
audit.h | -rw-r--r-- | 5.8 KB |
audit_tree.c | -rw-r--r-- | 22.1 KB |
audit_watch.c | -rw-r--r-- | 13.9 KB |
auditfilter.c | -rw-r--r-- | 36.1 KB |
auditsc.c | -rw-r--r-- | 71.8 KB |
backtracetest.c | -rw-r--r-- | 2.1 KB |
bounds.c | -rw-r--r-- | 600 bytes |
capability.c | -rw-r--r-- | 11.7 KB |
cgroup.c | -rw-r--r-- | 147.5 KB |
cgroup_freezer.c | -rw-r--r-- | 12.9 KB |
compat.c | -rw-r--r-- | 30.7 KB |
configs.c | -rw-r--r-- | 2.8 KB |
context_tracking.c | -rw-r--r-- | 2.1 KB |
cpu.c | -rw-r--r-- | 17.4 KB |
cpu_pm.c | -rw-r--r-- | 6.5 KB |
cpuset.c | -rw-r--r-- | 73.8 KB |
crash_dump.c | -rw-r--r-- | 1.2 KB |
cred.c | -rw-r--r-- | 21.2 KB |
delayacct.c | -rw-r--r-- | 5.0 KB |
dma.c | -rw-r--r-- | 3.6 KB |
elfcore.c | -rw-r--r-- | 459 bytes |
exec_domain.c | -rw-r--r-- | 4.3 KB |
exit.c | -rw-r--r-- | 42.9 KB |
extable.c | -rw-r--r-- | 3.9 KB |
fork.c | -rw-r--r-- | 45.2 KB |
freezer.c | -rw-r--r-- | 4.0 KB |
futex.c | -rw-r--r-- | 71.2 KB |
futex_compat.c | -rw-r--r-- | 4.5 KB |
groups.c | -rw-r--r-- | 6.0 KB |
hrtimer.c | -rw-r--r-- | 47.0 KB |
hung_task.c | -rw-r--r-- | 5.3 KB |
irq_work.c | -rw-r--r-- | 3.1 KB |
itimer.c | -rw-r--r-- | 7.3 KB |
jump_label.c | -rw-r--r-- | 10.8 KB |
kallsyms.c | -rw-r--r-- | 14.7 KB |
kcmp.c | -rw-r--r-- | 4.3 KB |
kexec.c | -rw-r--r-- | 39.6 KB |
kfifo.c | -rw-r--r-- | 12.8 KB |
kmod.c | -rw-r--r-- | 18.9 KB |
kprobes.c | -rw-r--r-- | 59.1 KB |
ksysfs.c | -rw-r--r-- | 5.5 KB |
kthread.c | -rw-r--r-- | 16.9 KB |
latencytop.c | -rw-r--r-- | 7.6 KB |
lglock.c | -rw-r--r-- | 1.9 KB |
lockdep.c | -rw-r--r-- | 103.8 KB |
lockdep_internals.h | -rw-r--r-- | 4.5 KB |
lockdep_proc.c | -rw-r--r-- | 17.0 KB |
lockdep_states.h | -rw-r--r-- | 233 bytes |
modsign_certificate.S | -rw-r--r-- | 467 bytes |
modsign_pubkey.c | -rw-r--r-- | 2.6 KB |
module-internal.h | -rw-r--r-- | 495 bytes |
module.c | -rw-r--r-- | 93.5 KB |
module_signing.c | -rw-r--r-- | 5.9 KB |
mutex-debug.c | -rw-r--r-- | 2.9 KB |
mutex-debug.h | -rw-r--r-- | 1.7 KB |
mutex.c | -rw-r--r-- | 13.2 KB |
mutex.h | -rw-r--r-- | 1.3 KB |
notifier.c | -rw-r--r-- | 16.0 KB |
nsproxy.c | -rw-r--r-- | 6.3 KB |
padata.c | -rw-r--r-- | 27.1 KB |
panic.c | -rw-r--r-- | 11.2 KB |
params.c | -rw-r--r-- | 21.7 KB |
pid.c | -rw-r--r-- | 14.5 KB |
pid_namespace.c | -rw-r--r-- | 8.7 KB |
posix-cpu-timers.c | -rw-r--r-- | 40.7 KB |
posix-timers.c | -rw-r--r-- | 29.1 KB |
printk.c | -rw-r--r-- | 70.1 KB |
profile.c | -rw-r--r-- | 16.7 KB |
ptrace.c | -rw-r--r-- | 26.6 KB |
range.c | -rw-r--r-- | 2.9 KB |
rcu.h | -rw-r--r-- | 3.8 KB |
rcupdate.c | -rw-r--r-- | 11.8 KB |
rcutiny.c | -rw-r--r-- | 10.3 KB |
rcutiny_plugin.h | -rw-r--r-- | 31.6 KB |
rcutorture.c | -rw-r--r-- | 62.2 KB |
rcutree.c | -rw-r--r-- | 94.4 KB |
rcutree.h | -rw-r--r-- | 22.7 KB |
rcutree_plugin.h | -rw-r--r-- | 73.5 KB |
rcutree_trace.c | -rw-r--r-- | 12.9 KB |
relay.c | -rw-r--r-- | 32.8 KB |
res_counter.c | -rw-r--r-- | 4.3 KB |
resource.c | -rw-r--r-- | 27.8 KB |
rtmutex-debug.c | -rw-r--r-- | 4.7 KB |
rtmutex-debug.h | -rw-r--r-- | 1.4 KB |
rtmutex-tester.c | -rw-r--r-- | 8.7 KB |
rtmutex.c | -rw-r--r-- | 26.3 KB |
rtmutex.h | -rw-r--r-- | 1.1 KB |
rtmutex_common.h | -rw-r--r-- | 3.3 KB |
rwsem.c | -rw-r--r-- | 2.3 KB |
seccomp.c | -rw-r--r-- | 13.9 KB |
semaphore.c | -rw-r--r-- | 7.2 KB |
signal.c | -rw-r--r-- | 87.7 KB |
smp.c | -rw-r--r-- | 21.7 KB |
smpboot.c | -rw-r--r-- | 6.5 KB |
smpboot.h | -rw-r--r-- | 564 bytes |
softirq.c | -rw-r--r-- | 20.8 KB |
spinlock.c | -rw-r--r-- | 9.5 KB |
srcu.c | -rw-r--r-- | 19.6 KB |
stacktrace.c | -rw-r--r-- | 1.1 KB |
stop_machine.c | -rw-r--r-- | 15.5 KB |
sys.c | -rw-r--r-- | 52.2 KB |
sys_ni.c | -rw-r--r-- | 5.9 KB |
sysctl.c | -rw-r--r-- | 59.5 KB |
sysctl_binary.c | -rw-r--r-- | 51.5 KB |
task_work.c | -rw-r--r-- | 2.2 KB |
taskstats.c | -rw-r--r-- | 16.4 KB |
test_kprobes.c | -rw-r--r-- | 8.5 KB |
time.c | -rw-r--r-- | 18.6 KB |
timeconst.pl | -rw-r--r-- | 7.2 KB |
timer.c | -rw-r--r-- | 49.6 KB |
tracepoint.c | -rw-r--r-- | 19.7 KB |
tsacct.c | -rw-r--r-- | 4.4 KB |
uid16.c | -rw-r--r-- | 6.0 KB |
up.c | -rw-r--r-- | 413 bytes |
user-return-notifier.c | -rw-r--r-- | 1.3 KB |
user.c | -rw-r--r-- | 5.2 KB |
user_namespace.c | -rw-r--r-- | 21.2 KB |
utsname.c | -rw-r--r-- | 2.8 KB |
utsname_sysctl.c | -rw-r--r-- | 3.0 KB |
wait.c | -rw-r--r-- | 8.3 KB |
watchdog.c | -rw-r--r-- | 13.9 KB |
workqueue.c | -rw-r--r-- | 106.5 KB |
workqueue_sched.h | -rw-r--r-- | 311 bytes |
Computing file changes ...