What causes PSR to disable via "sink not reliable" from time-to-time?
In order to reliably get my laptop into the lowest power states (CPU%LPI
and especially SYS%LPI
in turbostat
), my laptop (Dell XPS 7390 2-in-1, with the Sharp LQ134N1 1920x1200 monitor on eDP-1) requires PSR to be enabled, and usually is:
/sys/kernel/debug/dri/0/i915_edp_psr_status:Sink support: yes [0x03]
/sys/kernel/debug/dri/0/i915_edp_psr_status:PSR mode: PSR2 enabled
/sys/kernel/debug/dri/0/i915_edp_psr_status:Source PSR ctl: enabled [0xc2000236]
/sys/kernel/debug/dri/0/i915_edp_psr_status:Source PSR status: IDLE [0x04020030]
/sys/kernel/debug/dri/0/i915_edp_psr_status:Busy frontbuffer bits: 0x00000000
/sys/kernel/debug/dri/0/i915_edp_psr_status:Frame: PSR2 SU blocks:
/sys/kernel/debug/dri/0/i915_edp_psr_status:0 0
/sys/kernel/debug/dri/0/i915_edp_psr_status:1 0
/sys/kernel/debug/dri/0/i915_edp_psr_status:2 0
/sys/kernel/debug/dri/0/i915_edp_psr_status:3 0
/sys/kernel/debug/dri/0/i915_edp_psr_status:4 0
/sys/kernel/debug/dri/0/i915_edp_psr_status:5 0
/sys/kernel/debug/dri/0/i915_edp_psr_status:6 0
/sys/kernel/debug/dri/0/i915_edp_psr_status:7 0
/sys/kernel/debug/dri/0/i915_dmc_info:fw loaded: yes
/sys/kernel/debug/dri/0/i915_dmc_info:path: i915/icl_dmc_ver1_09.bin
/sys/kernel/debug/dri/0/i915_dmc_info:version: 1.9
/sys/kernel/debug/dri/0/i915_dmc_info:DC3 -> DC5 count: 0
/sys/kernel/debug/dri/0/i915_dmc_info:DC5 -> DC6 count: 0
/sys/kernel/debug/dri/0/i915_dmc_info:program base: 0x0b004040
/sys/kernel/debug/dri/0/i915_dmc_info:ssp base: 0x00005fc0
/sys/kernel/debug/dri/0/i915_dmc_info:htp: 0x00a40088
But sometimes, apparently after the laptop has gone into screen-off mode for a while (and I think it's related to having external monitor(s) plugged in) I get PSR sink not reliable: yes
and it gets disabled:
/sys/kernel/debug/dri/0/i915_edp_psr_status:Sink support: yes [0x03]
/sys/kernel/debug/dri/0/i915_edp_psr_status:PSR mode: disabled
/sys/kernel/debug/dri/0/i915_edp_psr_status:PSR sink not reliable: yes
/sys/kernel/debug/dri/0/i915_dmc_info:fw loaded: yes
/sys/kernel/debug/dri/0/i915_dmc_info:path: i915/icl_dmc_ver1_09.bin
/sys/kernel/debug/dri/0/i915_dmc_info:version: 1.9
/sys/kernel/debug/dri/0/i915_dmc_info:DC3 -> DC5 count: 1
/sys/kernel/debug/dri/0/i915_dmc_info:DC5 -> DC6 count: 0
/sys/kernel/debug/dri/0/i915_dmc_info:program base: 0x0b004040
/sys/kernel/debug/dri/0/i915_dmc_info:ssp base: 0x00005fc0
/sys/kernel/debug/dri/0/i915_dmc_info:htp: 0x00a40088
What causes the PSR to fail, and is there anything I can do to get it back? It comes back after a reboot, but apparently not a hibernation/power off cycle so seems to be latched down once it fails. I usually chase Linus' master (am currently running the recently-released 5.7-rc1).
If you need more info, let me know.