panel flickering after the i915.psr2 is enabled

Bug #2046315 reported by Hui Wang
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
New
Undecided
Unassigned
linux (Ubuntu)
Triaged
High
Unassigned
Jammy
Invalid
Undecided
Unassigned
Noble
Triaged
High
Unassigned
linux-oem-6.5 (Ubuntu)
Invalid
High
Hui Wang
Jammy
Fix Released
High
Hui Wang
Noble
Invalid
High
Hui Wang
linux-oem-6.8 (Ubuntu)
Fix Released
Undecided
Unassigned
Jammy
Invalid
Undecided
Unassigned
Noble
Fix Released
Undecided
Unassigned

Bug Description

SRU verificaton for Noble and oem-6.8-noble:

[Impact]
In Dell oem project, we found the graphic is flickering on some
machines, finally we narrowed down the issue on (some specific panels +
i915.psr2 enabled), and the issue was reported to Intel, Intel fixed
the issue in the most recent mainline kernel. Here backporting the
patches to Noble kernel.

It is hard to backport the patches to mantic and oem-6.5, so we wrote
a workaround patch to disable the psr2 for those pannels in the oem-6.5.

https://gitlab.freedesktop.org/drm/intel/-/issues/9739

[Fix]
cherry-pick 8 patches from mainline kernel

[Test]
I applied the patches to Noble kernel and built a testing kernel, and
Dell validated the testing kernel on those machines, the graphic
didn't flicker anymore.

I installed the testing kernel on some machines with Intel 13th, 12th
11th and 10th gen cpu, the grahic worked well too.

[Where problems could occur]
This patchset changes the fast wake settings for some gpu, it is
possible to make the graphic flicker, but this possibility is very
low, since the patchset comes from mainline kernel and we validated
the patchset on different gens of Intel cpus.

===========================================================================

BugLink: https://bugs.launchpad.net/bugs/2046315

[Impact]
On serveral Dell laptops, the screen often displays garbage or the screen is flicking

This PR is just a workaround, the upstream bug is here: https://gitlab.freedesktop.org/drm/intel/-/issues/9739#note_2187863

After the upstream fix this bug with a real fix, I will revert the workaround and backport the real fix to Noble and Jammy oem-kernel.

[Fix]
There is no real fix so far, ODM recommends to use a workaround to disable PSR2, this is a temp solution, after we get the real fix, we could revert the temp workaround.

[Test case]

booting with the patched kernel, If the pannel's edid is in the qurik list, the PSR2 will be disabled (checking /sys/kernel/debug/dri/0/i915_edp_psr_status; if the pannel's edid is not in the quirk list, the graphic driver will work as before.

[Where problems could occur]
It is possible that the temp solution couldn't work, then the screen will still show garbage and the screen is flicking, another possible regression is the screen has no problem before, but after running patched kernel, the PSR2 is disabled and the system cost more power, but this possibility is very low, I tested the patched on some dell machines, all worked well.

Hui Wang (hui.wang)
Changed in linux-oem-6.5 (Ubuntu):
importance: Undecided → High
Changed in linux-oem-6.5 (Ubuntu Jammy):
importance: Undecided → High
assignee: nobody → Hui Wang (hui.wang)
Changed in linux-oem-6.5 (Ubuntu):
status: New → Invalid
tags: added: oem-priority originate-from-2045640 somerville
summary: - oem-6.5: disable psr2 for some panels according edid
+ oem-6.5: disable psr2 for some panels according to edid
Hui Wang (hui.wang)
description: updated
Revision history for this message
Timo Aaltonen (tjaalton) wrote : Re: oem-6.5: disable psr2 for some panels according to edid

is there an upstream bug for this?

Revision history for this message
Ubuntu Kernel Bot (ubuntu-kernel-bot) wrote :

This bug is awaiting verification that the linux-oem-6.5/6.5.0-1010.11 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-jammy-linux-oem-6.5' to 'verification-done-jammy-linux-oem-6.5'. If the problem still exists, change the tag 'verification-needed-jammy-linux-oem-6.5' to 'verification-failed-jammy-linux-oem-6.5'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: kernel-spammed-jammy-linux-oem-6.5-v2 verification-needed-jammy-linux-oem-6.5
Revision history for this message
Hui Wang (hui.wang) wrote :

ODM verify passed on Orchid Bay MLK2 FHD panel.

So verification done forlinux-oem-6.5

tags: added: verification-done-jammy-linux-oem-6.5
removed: verification-needed-jammy-linux-oem-6.5
Hui Wang (hui.wang)
Changed in linux (Ubuntu):
status: New → Invalid
Changed in linux (Ubuntu Jammy):
status: New → Invalid
Hui Wang (hui.wang)
Changed in linux-oem-6.5 (Ubuntu Jammy):
status: New → In Progress
Hui Wang (hui.wang)
Changed in linux (Ubuntu Noble):
status: Invalid → Triaged
Changed in linux-oem-6.5 (Ubuntu Noble):
status: Invalid → Triaged
Changed in linux (Ubuntu Noble):
importance: Undecided → High
Hui Wang (hui.wang)
description: updated
description: updated
Timo Aaltonen (tjaalton)
Changed in linux-oem-6.5 (Ubuntu Noble):
status: Triaged → Invalid
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux-oem-6.5 - 6.5.0-1011.12

---------------
linux-oem-6.5 (6.5.0-1011.12) jammy; urgency=medium

  * jammy/linux-oem-6.5: 6.5.0-1011.12 -proposed tracker (LP: #2047946)

  * [needs-packaging] usbio-drivers (LP: #2041800)
    - SAUCE: usbio-drivers: import intel-usbio-dkms source
    - debian/dkms-versions -- build usbio-drivers from the in-tree copy

  * Support standalone dkms source tree embedded in kernel source (LP: #2047909)
    - [Packaging] dkms-build -- support in-tree dkms source directory

  * jammy-oem-6.5: one more panel needs to disable psr2 (LP: #2046681)
    - SAUCE: drm/i915/display/psr: disable psr2 for panel_0x4d_0x10_0x8f_0x15

 -- Timo Aaltonen <email address hidden> Wed, 03 Jan 2024 21:03:45 +0200

Changed in linux-oem-6.5 (Ubuntu Jammy):
status: In Progress → Fix Released
Revision history for this message
Anthony Wong (anthonywong) wrote :
Hui Wang (hui.wang)
Changed in linux-oem-6.8 (Ubuntu Jammy):
status: New → Invalid
Hui Wang (hui.wang)
summary: - oem-6.5: disable psr2 for some panels according to edid
+ panel flickering after enabling the psr2
Hui Wang (hui.wang)
summary: - panel flickering after enabling the psr2
+ panel flickering after the i915.psr2 is enabled
Hui Wang (hui.wang)
description: updated
Timo Aaltonen (tjaalton)
Changed in linux-oem-6.8 (Ubuntu Noble):
status: New → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (11.9 KiB)

This bug was fixed in the package linux-oem-6.8 - 6.8.0-1004.4

---------------
linux-oem-6.8 (6.8.0-1004.4) noble; urgency=medium

  * noble/linux-oem-6.8: 6.8.0-1004.4 -proposed tracker (LP: #2062020)

  * panel flickering after the i915.psr2 is enabled (LP: #2046315)
    - drm/i915/alpm: Add ALPM register definitions
    - drm/i915/psr: Add alpm_parameters struct
    - drm/i915/alpm: Calculate ALPM Entry check
    - drm/i915/alpm: Alpm aux wake configuration for lnl
    - drm/i915/display: Make intel_dp_aux_fw_sync_len available for PSR code
    - drm/i915/psr: Improve fast and IO wake lines calculation
    - drm/i915/psr: Calculate IO wake and fast wake lines for DISPLAY_VER < 12
    - drm/i915/display: Increase number of fast wake precharge pulses

  * Packaging resync (LP: #1786013)
    - [Packaging] update Ubuntu.md
    - [Packaging] update update.conf
    - debian.oem/dkms-versions -- update from kernel-versions (main/d2024.04.04)

  * intel_rapl_common: Add support for ARL and LNL (LP: #2061953)
    - powercap: intel_rapl: Add support for Lunar Lake-M paltform
    - powercap: intel_rapl: Add support for Arrow Lake

  [ Ubuntu: 6.8.0-28.28 ]

  * noble/linux: 6.8.0-28.28 -proposed tracker (LP: #2061867)
  * linux-gcp 6.8.0-1005.5 (+ others) Noble kernel regression iwth new apparmor
    profiles/features (LP: #2061851)
    - SAUCE: apparmor4.0.0 [92/90]: fix address mapping for recvfrom

  [ Ubuntu: 6.8.0-25.25 ]

  * noble/linux: 6.8.0-25.25 -proposed tracker (LP: #2061083)
  * Packaging resync (LP: #1786013)
    - [Packaging] debian.master/dkms-versions -- update from kernel-versions
      (main/d2024.04.04)
  * Apply mitigations for the native BHI hardware vulnerabilty (LP: #2060909)
    - x86/cpufeatures: Add new word for scattered features
    - x86/bugs: Change commas to semicolons in 'spectre_v2' sysfs file
    - x86/syscall: Don't force use of indirect calls for system calls
    - x86/bhi: Add support for clearing branch history at syscall entry
    - x86/bhi: Define SPEC_CTRL_BHI_DIS_S
    - x86/bhi: Enumerate Branch History Injection (BHI) bug
    - x86/bhi: Add BHI mitigation knob
    - x86/bhi: Mitigate KVM by default
    - KVM: x86: Add BHI_NO
    - x86: set SPECTRE_BHI_ON as default
    - [Config] enable spectre_bhi=auto by default
  * update apparmor and LSM stacking patch set (LP: #2028253)
    - SAUCE: apparmor4.0.0 [01/90]: LSM stacking v39: integrity: disassociate
      ima_filter_rule from security_audit_rule
    - SAUCE: apparmor4.0.0 [02/90]: LSM stacking v39: SM: Infrastructure
      management of the sock security
    - SAUCE: apparmor4.0.0 [03/90]: LSM stacking v39: LSM: Add the lsmblob data
      structure.
    - SAUCE: apparmor4.0.0 [04/90]: LSM stacking v39: IMA: avoid label collisions
      with stacked LSMs
    - SAUCE: apparmor4.0.0 [05/90]: LSM stacking v39: LSM: Use lsmblob in
      security_audit_rule_match
    - SAUCE: apparmor4.0.0 [06/90]: LSM stacking v39: LSM: Add lsmblob_to_secctx
      hook
    - SAUCE: apparmor4.0.0 [07/90]: LSM stacking v39: Audit: maintain an lsmblob
      in audit_context
    - SAUCE: apparmor4.0.0 [08/90]: LSM stacking v39: LSM: Use lsmblob in
      security_ipc_getsecid
  ...

Changed in linux-oem-6.8 (Ubuntu Noble):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.