Bug 110799

Summary: No Screen Updates on fbcon with PSR enabled on Thinkpad T450s (Broadwell), Linux 5.1.5
Product: DRI Reporter: Thomas Rohwer <trohwer85>
Component: DRM/IntelAssignee: Jose Roberto de Souza <jose.souza>
Status: RESOLVED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: dhinakaran.pandiyan, intel-gfx-bugs, james.ausmus, jose.souza
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard: Triaged
i915 platform: BDW i915 features: display/PSR
Attachments:
Description Flags
state on fbcon
none
i915_capabilities
none
dmesg
none
proposed fix none

Description Thomas Rohwer 2019-05-30 21:13:09 UTC
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.
Comment 1 Thomas Rohwer 2019-05-30 21:20:17 UTC
Created attachment 144387 [details]
state on fbcon


output of
chvt 1 ; cat /sys/kernel/debug/dri/0/state > state.txt ; chvt 8
Comment 2 Thomas Rohwer 2019-05-30 21:23:43 UTC
Created attachment 144388 [details]
i915_capabilities

/sys/kernel/debug/dri/0/i915_capabilities
Comment 3 Thomas Rohwer 2019-05-30 21:27:29 UTC
Created attachment 144389 [details]
dmesg

boot dmesg
Comment 4 Lakshmi 2019-05-31 07:05:19 UTC
@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?
Comment 5 Jose Roberto de Souza 2019-06-14 17:15:59 UTC
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?
Comment 6 Thomas Rohwer 2019-06-15 00:27:24 UTC
Yes, this works (tested with 5.2.0-rc4 + patch).
Thanks.
Comment 7 Jose Roberto de Souza 2019-06-17 20:19:30 UTC
Thanks Thomas

Please give you Tested-by here: https://patchwork.freedesktop.org/series/62249/
Comment 8 Thomas Rohwer 2019-06-18 11:18:46 UTC
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.
Comment 9 Jose Roberto de Souza 2019-06-18 19:39:07 UTC
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.