Hi,
My investigation into some sporadic i915 runtime PM failures seem to point the finger at snd-hda-intel.
I just tried to play around unloding and reloading snd-hda-intel and sometimes I get snd-hda-intel loaded with runtime PM supposedly enabled, but actually the device won't runtime suspend. At which point frobbing with power/control is enough to kick it back into submission.
# for i in `seq 1 3`; do sleep 1 ; grep . /sys/bus/pci/devices/0000:00:03.0/power/* ; done /sys/bus/pci/devices/0000:00:03.0/power/async:enabled grep: /sys/bus/pci/devices/0000:00:03.0/power/autosuspend_delay_ms: Input/output error /sys/bus/pci/devices/0000:00:03.0/power/control:auto /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_kids:0 /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_time:117045 /sys/bus/pci/devices/0000:00:03.0/power/runtime_enabled:enabled /sys/bus/pci/devices/0000:00:03.0/power/runtime_status:suspended /sys/bus/pci/devices/0000:00:03.0/power/runtime_suspended_time:222657 /sys/bus/pci/devices/0000:00:03.0/power/runtime_usage:0 /sys/bus/pci/devices/0000:00:03.0/power/async:enabled grep: /sys/bus/pci/devices/0000:00:03.0/power/autosuspend_delay_ms: Input/output error /sys/bus/pci/devices/0000:00:03.0/power/control:auto /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_kids:0 /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_time:117045 /sys/bus/pci/devices/0000:00:03.0/power/runtime_enabled:enabled /sys/bus/pci/devices/0000:00:03.0/power/runtime_status:suspended /sys/bus/pci/devices/0000:00:03.0/power/runtime_suspended_time:223666 /sys/bus/pci/devices/0000:00:03.0/power/runtime_usage:0 /sys/bus/pci/devices/0000:00:03.0/power/async:enabled grep: /sys/bus/pci/devices/0000:00:03.0/power/autosuspend_delay_ms: Input/output error /sys/bus/pci/devices/0000:00:03.0/power/control:auto /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_kids:0 /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_time:117045 /sys/bus/pci/devices/0000:00:03.0/power/runtime_enabled:enabled /sys/bus/pci/devices/0000:00:03.0/power/runtime_status:suspended /sys/bus/pci/devices/0000:00:03.0/power/runtime_suspended_time:224674 /sys/bus/pci/devices/0000:00:03.0/power/runtime_usage:0 # rmmod snd-hda-intel # modprobe snd-hda-intel # for i in `seq 1 3`; do sleep 1 ; grep . /sys/bus/pci/devices/0000:00:03.0/power/* ; done /sys/bus/pci/devices/0000:00:03.0/power/async:enabled grep: /sys/bus/pci/devices/0000:00:03.0/power/autosuspend_delay_ms: Input/output error /sys/bus/pci/devices/0000:00:03.0/power/control:auto /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_kids:0 /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_time:121454 /sys/bus/pci/devices/0000:00:03.0/power/runtime_enabled:enabled /sys/bus/pci/devices/0000:00:03.0/power/runtime_status:active /sys/bus/pci/devices/0000:00:03.0/power/runtime_suspended_time:228560 /sys/bus/pci/devices/0000:00:03.0/power/runtime_usage:0 /sys/bus/pci/devices/0000:00:03.0/power/async:enabled grep: /sys/bus/pci/devices/0000:00:03.0/power/autosuspend_delay_ms: Input/output error /sys/bus/pci/devices/0000:00:03.0/power/control:auto /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_kids:0 /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_time:122463 /sys/bus/pci/devices/0000:00:03.0/power/runtime_enabled:enabled /sys/bus/pci/devices/0000:00:03.0/power/runtime_status:active /sys/bus/pci/devices/0000:00:03.0/power/runtime_suspended_time:228560 /sys/bus/pci/devices/0000:00:03.0/power/runtime_usage:0 /sys/bus/pci/devices/0000:00:03.0/power/async:enabled grep: /sys/bus/pci/devices/0000:00:03.0/power/autosuspend_delay_ms: Input/output error /sys/bus/pci/devices/0000:00:03.0/power/control:auto /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_kids:0 /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_time:123472 /sys/bus/pci/devices/0000:00:03.0/power/runtime_enabled:enabled /sys/bus/pci/devices/0000:00:03.0/power/runtime_status:active /sys/bus/pci/devices/0000:00:03.0/power/runtime_suspended_time:228560 /sys/bus/pci/devices/0000:00:03.0/power/runtime_usage:0 # echo on > /sys/bus/pci/devices/0000:00:03.0/power/control # echo auto > /sys/bus/pci/devices/0000:00:03.0/power/control # for i in `seq 1 3`; do sleep 1 ; grep . /sys/bus/pci/devices/0000:00:03.0/power/* ; done /sys/bus/pci/devices/0000:00:03.0/power/async:enabled grep: /sys/bus/pci/devices/0000:00:03.0/power/autosuspend_delay_ms: Input/output error /sys/bus/pci/devices/0000:00:03.0/power/control:auto /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_kids:0 /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_time:141459 /sys/bus/pci/devices/0000:00:03.0/power/runtime_enabled:enabled /sys/bus/pci/devices/0000:00:03.0/power/runtime_status:suspended /sys/bus/pci/devices/0000:00:03.0/power/runtime_suspended_time:231699 /sys/bus/pci/devices/0000:00:03.0/power/runtime_usage:0 /sys/bus/pci/devices/0000:00:03.0/power/async:enabled grep: /sys/bus/pci/devices/0000:00:03.0/power/autosuspend_delay_ms: Input/output error /sys/bus/pci/devices/0000:00:03.0/power/control:auto /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_kids:0 /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_time:141459 /sys/bus/pci/devices/0000:00:03.0/power/runtime_enabled:enabled /sys/bus/pci/devices/0000:00:03.0/power/runtime_status:suspended /sys/bus/pci/devices/0000:00:03.0/power/runtime_suspended_time:232706 /sys/bus/pci/devices/0000:00:03.0/power/runtime_usage:0 /sys/bus/pci/devices/0000:00:03.0/power/async:enabled grep: /sys/bus/pci/devices/0000:00:03.0/power/autosuspend_delay_ms: Input/output error /sys/bus/pci/devices/0000:00:03.0/power/control:auto /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_kids:0 /sys/bus/pci/devices/0000:00:03.0/power/runtime_active_time:141459 /sys/bus/pci/devices/0000:00:03.0/power/runtime_enabled:enabled /sys/bus/pci/devices/0000:00:03.0/power/runtime_status:suspended /sys/bus/pci/devices/0000:00:03.0/power/runtime_suspended_time:233713 /sys/bus/pci/devices/0000:00:03.0/power/runtime_usage:0