mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Daniel J Blueman <daniel@quora.org>
To: linux-arm-msm@vger.kernel.org,
	Rob Clark <robin.clark@oss.qualcomm.com>,
	 Dmitry Baryshkov <lumag@kernel.org>,
	Abhinav Kumar <abhinav.kumar@linux.dev>,
	 Jessica Zhang <jesszhan0024@gmail.com>,
	Abel Vesa <abel.vesa@oss.qualcomm.com>,
	 Krzysztof Kozlowski <krzk@kernel.org>
Cc: "David Airlie" <airlied@gmail.com>,
	"Simona Vetter" <simona@ffwll.ch>, "Jun Nie" <jun.nie@linaro.org>,
	"Federico Amedeo Izzo" <federico@izzo.pro>,
	"Neil Armstrong" <neil.armstrong@linaro.org>,
	"Thomas Weißschuh" <thomas.weissschuh@linutronix.de>,
	"Randy Dunlap" <rdunlap@infradead.org>,
	"Linux Kernel" <linux-kernel@vger.kernel.org>,
	"Val Packett" <val@packett.cool>,
	"Steev Klimaszewski" <threeway@gmail.com>,
	"Sean Paul" <sean@poorly.run>,
	freedreno@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	"Marijn Suijten" <marijn.suijten@somainline.org>
Subject: Re: [BUG] qcom: x1: GAMMA_LUT corruption on DPMS wake
Date: Sun, 12 Jul 2026 19:49:58 +0800	[thread overview]
Message-ID: <CAMVG2suBZFMbUmUaAdyOhZ=WNysecPQCD5rZpj96AUi7Au_xHw@mail.gmail.com> (raw)
In-Reply-To: <CAMVG2stuY5aTwfmJkL_cLDn86hfuFD+sT-LdqdmN5m21y2aL5g@mail.gmail.com>

On Sun, 14 Jun 2026 at 18:27, Daniel J Blueman <daniel@quora.org> wrote:
> On Mon, 1 Jun 2026 at 13:37, Daniel J Blueman <daniel@quora.org> wrote:
> > Since Adreno X1-85 GAMMA_LUT support was introduced in Linux v7.0 (eg
> > Ubuntu 26.04), when waking from DPMS-off, palette corruption is
> > frequently seen; this manifests as purple banding. If GNOME night
> > light or similar is enabled, the visual impact is greater.
> >
> > Further, on larger panel monitors or laptops eg the Lenovo Yoga Slim
> > 7x (2944x1840), a second INT2 block is used for the right half of the
> > screen, which may remain totally blank on wake; major usability
> > impact.
> >
> > Intuitively, the symptoms feel like the LUT SRAM clock isn't being
> > driven soon enough during the wakeup, thus state loss may depend on
> > silicon binning/variation or related. No such symptom is seen in
> > Windows on the same hardware. I found a workaround supporting this
> > mechanism is to activate the GNOME night light and adjust the slider
> > to update the LUT - any black right half of the screen always
> > reappears.
> >
> > Please can someone with X1-85 Adreno insight check the Linux clock and
> > power domain behaviour around GC_EN, Layer Mixer, INTerFace and INT2
> > on DPMS wake? Happy to test changes; this is a stunning platform
> > otherwise.
> ...
> > Link: https://gitlab.freedesktop.org/drm/msm/-/work_items/89
>
> Just a heads-up on this with additional findings. Note this issue
> could be the only remaining daily friction on X1 laptops with suspend,
> once my video decode reboot workaround or similar is merged. Also note
> in my case, without GNOME night light active, only a few LUT entries
> render purple so visual artifacts often go unnoticed until a gradient
> eg in an image is visible.
>
> From DPMS wake on a dual-LM panel (>2560 pixels wide) with
> INTF_5/DSPP_0 (master) and INTF_6/DSPP_1, I find DSPP_1's registers
> are intermittently unresponsive just after MDSS resume. DSPP_0 doesn't
> exhibit this issue, suggesting some missing slave/second unit setup,
> despite booting clk_ignore_unused pd_ignore_unused.

Guys, further debug reveals the Windows driver (which doesn't exhibit
the issue) doesn't use the same register access as Linux to reprogram
all LUT entries on DPMS wake. Instead, it appears to submit a DMA
descriptor to fetch LUT values which get internally loaded in a stable
manner.

Is it possible for Qualcomm to attempt a minimal fix, or share the DMA
description struct and doorbell/completion register offsets and
related so the community can?

Also, it would be good to hear if anyone with an X1E running a 7.0
kernel or newer with a 4K monitor *doesn't* see palette corruption
across DPMS sleep-wake, as this could indicate another possible
solution.

Thanks,
  Dan
-- 
Daniel J Blueman

  reply	other threads:[~2026-07-12 11:50 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-01  5:37 Daniel J Blueman
2026-06-03 12:53 ` Konrad Dybcio
2026-06-14 10:27 ` Daniel J Blueman
2026-07-12 11:49   ` Daniel J Blueman [this message]
2026-07-12 11:56   ` Dmitry Baryshkov
2026-07-12 12:47     ` Daniel J Blueman
2026-07-12 13:53       ` Dmitry Baryshkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMVG2suBZFMbUmUaAdyOhZ=WNysecPQCD5rZpj96AUi7Au_xHw@mail.gmail.com' \
    --to=daniel@quora.org \
    --cc=abel.vesa@oss.qualcomm.com \
    --cc=abhinav.kumar@linux.dev \
    --cc=airlied@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=federico@izzo.pro \
    --cc=freedreno@lists.freedesktop.org \
    --cc=jesszhan0024@gmail.com \
    --cc=jun.nie@linaro.org \
    --cc=krzk@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lumag@kernel.org \
    --cc=marijn.suijten@somainline.org \
    --cc=neil.armstrong@linaro.org \
    --cc=rdunlap@infradead.org \
    --cc=robin.clark@oss.qualcomm.com \
    --cc=sean@poorly.run \
    --cc=simona@ffwll.ch \
    --cc=thomas.weissschuh@linutronix.de \
    --cc=threeway@gmail.com \
    --cc=val@packett.cool \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox