[SRU] [PULL] [OEM-6.1] [PATCH 00/41] Fix screen that remains blank forever after it gets locked

Kai-Heng Feng kai.heng.feng at canonical.com
Fri Mar 3 14:40:46 UTC 2023


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

[Impact]
Once screen is locked under gnome-shell, the screen never wakes up and
remains in blank forever.

[Fix]
"drm/i915: Create resized LUTs for ivb+ split gamma mode" makes gamma
LUT operations in atomic context, so userspace can no longer misuse libdrm.

"drm/i915: Rework legacy LUT handling" starts to use the reworked gamma
LUT.

Pull the whole series and series they depends upon to properly support
gamma LUT.

[Test]
The easier way to reproduce the issue is to
1) Login under Wayland
2) Logout and login under X
3) Go back to wayland
4) Super + L to screenlock

With the LUT reworked series applied, screen can always come back alive.

[Where problems could occur]
Regression can happen on refactoring patches with "no functional change
intended", let alone overhauls like this one.

So only OEM-6.1 and Unstable are targeted to contain the potential
regression.

----------------------------------------------------------------

The following changes since commit bd85cf30cf96a979ee8cb82a9322ea6ec4ff2940:

  UBUNTU: Ubuntu-oem-6.1-6.1.0-1008.8 (2023-03-03 11:27:39 +0200)

are available in the Git repository at:

  git+ssh://kaihengfeng@git.launchpad.net/~kaihengfeng/+git/linux tags/lp2006667-oem-6.1

for you to fetch changes up to 6d60af37ba26921d04f5e3ec7f6795aea7d92853:

  drm/i915: Add 10bit gamma mode for gen2/3 (2023-03-03 22:23:11 +0800)

----------------------------------------------------------------
Ville Syrjälä (41):
      drm/i915: Remove PLL asserts from .load_luts()
      drm/i915: Split up intel_color_init()
      drm/i915: Simplify the intel_color_init_hooks() if ladder
      drm/i915: Clean up intel_color_init_hooks()
      drm/i915: Change glk_load_degamma_lut() calling convention
      drm/i915: Make ilk_load_luts() deal with degamma
      drm/i915: Introduce crtc_state->{pre,post}_csc_lut
      drm/i915: Assert {pre,post}_csc_lut were assigned sensibly
      drm/i915: Clean up some namespacing
      drm/i915: Get rid of glk_load_degamma_lut_linear()
      drm/i915: Stop loading linear degamma LUT on glk needlessly
      drm/i915: Use sizeof(variable) instead sizeof(type)
      drm/i915: Use _MMIO_PIPE() for SKL_BOTTOM_COLOR
      drm/i915: s/dev_priv/i915/ in intel_color.c
      drm/i915: s/icl_load_gcmax/ivb_load_lut_max/
      drm/i915: Split ivb_load_lut_ext_max() into two parts
      drm/i915: Deconfuse the ilk+ 12.4 LUT entry functions
      drm/i915: Pass limited_range explicitly to ilk_csc_convert_ctm()
      drm/i915: Reuse ilk_gamma_mode() on ivb+
      drm/i915: Reject YCbCr output with degamma+gamma on pre-icl
      drm/i915: Share {csc,gamma}_enable calculation for ilk/snb vs. ivb+
      drm/i915: Create resized LUTs for ivb+ split gamma mode
      drm/i915: Clean up legacy palette defines
      drm/i915: Clean up 10bit precision palette defines
      drm/i915: Clean up 12.4bit precision palette defines
      drm/i915: Clean up chv CGM (de)gamma defines
      drm/i915: Reorder 12.4 lut udw vs. ldw functions
      drm/i915: Fix adl+ degamma LUT size
      drm/i915: s/gamma/post_csc_lut/
      drm/i915: Add glk+ degamma readout
      drm/i915: Read out CHV CGM degamma
      drm/i915: Add gamma/degamma readout for bdw+
      drm/i915: Add gamma/degamma readout for ivb/hsw
      drm/i915: Make ilk_read_luts() capable of degamma readout
      drm/i915: Prep for C8 palette readout
      drm/i915: Make .read_luts() mandatory
      drm/i915: Finish the LUT state checker
      drm/i915: Rework legacy LUT handling
      drm/i915: Use hw degamma LUT for sw gamma on glk with YCbCr output
      drm/i915: Use gamma LUT for RGB limited range compression
      drm/i915: Add 10bit gamma mode for gen2/3

 drivers/gpu/drm/i915/display/intel_atomic.c        |    8 +
 drivers/gpu/drm/i915/display/intel_color.c         | 1962 ++++++++++++++------
 drivers/gpu/drm/i915/display/intel_color.h         |   14 +-
 drivers/gpu/drm/i915/display/intel_crtc.c          |    5 +-
 .../gpu/drm/i915/display/intel_crtc_state_dump.c   |   12 +-
 drivers/gpu/drm/i915/display/intel_display.c       |   40 +-
 drivers/gpu/drm/i915/display/intel_display_core.h  |    5 +
 drivers/gpu/drm/i915/display/intel_display_types.h |    4 +
 drivers/gpu/drm/i915/display/intel_drrs.c          |    4 +-
 drivers/gpu/drm/i915/display/intel_drrs.h          |    2 +-
 drivers/gpu/drm/i915/display/intel_modeset_setup.c |    6 +
 drivers/gpu/drm/i915/i915_pci.c                    |   12 +-
 drivers/gpu/drm/i915/i915_reg.h                    |   70 +-
 13 files changed, 1534 insertions(+), 610 deletions(-)



More information about the kernel-team mailing list