From: Stephan Gerhold <stephan@gerhold.net>
To: Neil Armstrong <neil.armstrong@linaro.org>
Cc: Caleb Connolly <caleb.connolly@linaro.org>,
phone-devel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
Joel Selvaraj <joelselvaraj.oss@gmail.com>,
Douglas Anderson <dianders@chromium.org>,
dri-devel@lists.freedesktop.org,
Sumit Semwal <sumit.semwal@linaro.org>,
~postmarketos/upstreaming@lists.sr.ht,
Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
Thierry Reding <treding@nvidia.com>,
Sam Ravnborg <sam@ravnborg.org>,
Ajay Kumar <ajaykumar.rs@samsung.com>,
Joel Selvaraj <jo@jsfamily.in>
Subject: Re: [PATCH] drm/panel: move some dsi commands from unprepare to disable
Date: Thu, 15 Jun 2023 10:09:11 +0200 [thread overview]
Message-ID: <ZIrHJwm2-ghSUHL0@gerhold.net> (raw)
In-Reply-To: <4f78b601-6e6e-2274-3174-87c62d7cfcd5@linaro.org>
On Thu, Jun 15, 2023 at 09:49:27AM +0200, Neil Armstrong wrote:
> On 14/06/2023 22:58, Linus Walleij wrote:
> > On Tue, Jun 13, 2023 at 11:08 PM Stephan Gerhold <stephan@gerhold.net> wrote:
> >
> > > I'm still quite confused about what exactly is supposed to be in
> > > (un)prepare and what in enable/disable. I've seen some related
> > > discussion every now and then but it's still quite inconsistent across
> > > different panel drivers... Can someone clarify this?
> >
> > It is somewhat clarified in commit 45527d435c5e39b6eec4aa0065a562e7cf05d503
> > that added the callbacks:
> >
> > Author: Ajay Kumar <ajaykumar.rs@samsung.com>
> > Date: Fri Jul 18 02:13:48 2014 +0530
> >
> > drm/panel: add .prepare() and .unprepare() functions
> >
> > Panels often require an initialization sequence that consists of three
> > steps: a) powering up the panel, b) starting transmission of video data
> > and c) enabling the panel (e.g. turn on backlight). This is usually
> > necessary to avoid visual glitches at the beginning of video data
> > transmission.
> >
> > Similarly, the shutdown sequence is typically done in three steps as
> > well: a) disable the panel (e.g. turn off backlight), b) cease video
> > data transmission and c) power down the panel.
> >
> > Currently drivers can only implement .enable() and .disable() functions,
> > which is not enough to implement the above sequences. This commit adds a
> > second pair of functions, .prepare() and .unprepare() to allow more
> > fine-grained control over when the above steps are performed.
> >
> > Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
> > [treding: rewrite changelog, add kerneldoc]
> > Signed-off-by: Thierry Reding <treding@nvidia.com>
> >
> > My interpretation is that .enable/.disable is for enabling/disabling
> > backlight and well, make things show up on the display, and that
> > happens quickly.
> >
> > prepare/unprepare is for everything else setting up/tearing down
> > the data transmission pipeline.
> >
> > In the clock subsystem the enable/disable could be called in fastpath
> > and prepare/unprepare only from slowpath so e.g an IRQ handler
> > can gate a simple gated clock. This semantic seems to have nothing
> > to do with the display semantic. :/
>
> It had to do, .prepare is called when the DSI link is at LP11 state
> before it has switched to the VIDEO mode, and .unprepare is the
> reverse when VIDEO mode has been disabled and before the DSI link
> is totally disabled.
>
> https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c#L938
>
> then
>
> https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c#L855
>
> but Doug has started changing this starting with MSM DSI driver, leading to
> current panel drivers not working anymore with the current DSI init mode
> and requires setting pre_enable_prev_first for only some DSI hosts
> who switched out of set_mode().
>
Hm, do I understand you correctly that setting
bridge->pre_enable_prev_first / panel->prepare_prev_first should work as
an alternative to $subject patch, at least for the MSM DSI driver? With
it DSI commands should be possible to be sent in .unprepare()?
Thanks,
Stephan
next prev parent reply other threads:[~2023-06-15 8:09 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-12 23:36 [PATCH] drm/panel: move some dsi commands from unprepare to disable Caleb Connolly
2023-06-13 21:08 ` Stephan Gerhold
2023-06-14 20:58 ` Linus Walleij
2023-06-15 7:49 ` Neil Armstrong
2023-06-15 8:09 ` Stephan Gerhold [this message]
2023-06-15 23:36 ` Doug Anderson
2023-06-18 13:47 ` Jakob Hauser
2023-06-18 13:52 ` Jakob Hauser
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=ZIrHJwm2-ghSUHL0@gerhold.net \
--to=stephan@gerhold.net \
--cc=ajaykumar.rs@samsung.com \
--cc=caleb.connolly@linaro.org \
--cc=dianders@chromium.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=jo@jsfamily.in \
--cc=joelselvaraj.oss@gmail.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=phone-devel@vger.kernel.org \
--cc=sam@ravnborg.org \
--cc=sumit.semwal@linaro.org \
--cc=treding@nvidia.com \
--cc=~postmarketos/upstreaming@lists.sr.ht \
/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;
as well as URLs for NNTP newsgroup(s).