I enabled PSR on my Thinkpad T450s (Broadwell) with Linux 5.1.5. This works fine under X, but I get no screen updates on the fbcon (typing etc. does show no change on screen, only switching to/back X makes the stuff visible). Without PSR, the fbcon works fine. I investigated a bit and identified this code in drm/i915/intel_psr.c (printk added by me) to exit PSR on fbcon dirty calls: /* By definition flush = invalidate + flush */ if (frontbuffer_bits) { /* * Display WA #0884: all * This documented WA for bxt can be safely applied * broadly so we can force HW tracking to exit PSR * instead of disabling and re-enabling. * Workaround tells us to write 0 to CUR_SURFLIVE_A, * but it makes more sense write to the current active * pipe. */ printk(KERN_DEBUG "WA\n"); I915_WRITE(CURSURFLIVE(dev_priv->psr.pipe), 0); } The code is called for fbcon changes, but as stated, it does not seem to have the effect of exiting PSR on my hardware.
Created attachment 144387 [details] state on fbcon output of chvt 1 ; cat /sys/kernel/debug/dri/0/state > state.txt ; chvt 8
Created attachment 144388 [details] i915_capabilities /sys/kernel/debug/dri/0/i915_capabilities
Created attachment 144389 [details] dmesg boot dmesg
@DK/Jose, According to https://bugs.freedesktop.org/show_bug.cgi?id=108266#c2 PSR is not supported on BDW. Is it the same here? Do you recommend anything here?
Created attachment 144547 [details] [review] proposed fix As said we don't support PSR in broadwell but thanks to your investigation the fix is supposed to be easy, can you test this patch and let us know if it worked?
Yes, this works (tested with 5.2.0-rc4 + patch). Thanks.
Thanks Thomas Please give you Tested-by here: https://patchwork.freedesktop.org/series/62249/
Hello Jose, I am not sure, how to do that technically on the patchwork system (I can't edit the patch or add comments, even with an account). Feel free to add Tested-by: Thomas Rohwer <trohwer85@gmail.com> Thanks for your work on this. I hope this will go into mainline.
Thanks again for debugging Thomas, I just pushed the patch to dm-intel-next-queued, this fix will probably be shipped in Linux 5.4.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.