All of lore.kernel.org
 help / color / mirror / Atom feed
From: Doug Anderson <dianders@chromium.org>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Abhinav Kumar <quic_abhinavk@quicinc.com>,
	"Sankeerth Billakanti (QUIC)" <quic_sbillaka@quicinc.com>,
	quic_kalyant <quic_kalyant@quicinc.com>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" 
	<devicetree@vger.kernel.org>,
	quic_vproddut <quic_vproddut@quicinc.com>,
	David Airlie <airlied@linux.ie>,
	linux-arm-msm <linux-arm-msm@vger.kernel.org>,
	"Kuogee Hsieh (QUIC)" <quic_khsieh@quicinc.com>,
	freedreno <freedreno@lists.freedesktop.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"bjorn.andersson@linaro.org" <bjorn.andersson@linaro.org>,
	Sean Paul <seanpaul@chromium.org>,
	"Aravind Venkateswaran (QUIC)" <quic_aravindh@quicinc.com>,
	Stephen Boyd <swboyd@chromium.org>, Sean Paul <sean@poorly.run>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v6 1/8] drm/msm/dp: Add eDP support via aux_bus
Date: Fri, 8 Apr 2022 06:43:28 -0700	[thread overview]
Message-ID: <CAD=FV=UG7k4A+hMXxwju-0mLddD1oJdGngXMkMA-dO3AxOx0rQ@mail.gmail.com> (raw)
In-Reply-To: <CAA8EJprb5UF24WRNvGaY_hSqW--NPd=9=8AaPYWSMbUumNn+dQ@mail.gmail.com>

Hi,

On Fri, Apr 8, 2022 at 5:20 AM Dmitry Baryshkov
<dmitry.baryshkov@linaro.org> wrote:
>
> > I guess my thought was that in DP you could still create the AUX bus
> > at probe time. Then for DP you just return an instant "transfer
> > failed" from the AUX bus if HPD isn't asserted. For eDP (as discussed
> > elsewhere) when we try to do an AUX transfer then we delay until HPD
> > is there.
>
> I think panel-edp would already handle the delay, so we do not need to
> have this logic in the DP driver.

There's a whole discussion about this between Stephen and me in patch
#5 ("drm/msm/dp: wait for hpd high before any sink interaction").
Basically:

* If panel HPD is hooked up to the dedicated HPD pin on the eDP
controller then the panel driver doesn't have a way to read it.

* We can't leverage the existing "HPD" query functions in DRM because
those indicate whether a panel is _physically_ connected. For eDP, it
always is.

For now the rule is that the AUX transfer function is in charge of
waiting for HPD for eDP if the dedicated HPD pin is used. If we want
to re-invent this we could, but that system works, isn't _too_ ugly,
and we're already making big enough changes in this series.


> > So we can still acquire resources (clocks, PHY, io maps, etc) at probe
> > time for DP and create the AUX bus, right? It will just return
> > "-ENODEV" if HPD isn't asserted and you're DP?
>
> Yes, please. I still suppose that we'd need a separate case to
> power_on eDP's PHY during the probe time. Maybe I'm mistaken here.

I think the ideal way is to do it like Kieran's proposal for sn65dsi86:

https://lore.kernel.org/r/20220317131250.1481275-4-kieran.bingham+renesas@ideasonboard.com/

* When enabling HPD (physical hot plug detect) in the hpd_enable()
callback you do a pm_runtime_get(). You do the
pm_runtime_put_autosuspend() when disabling. This is only used for DP
since we only provide DRM_BRIDGE_OP_HPD for DP, not for eDP.

* We do a pm_runtime_get() / pm_runtime_put_autosuspend() in the AUX
transfer routine. While holding the pm_runtime reference we check HPD.
For DP we return immediately if HPD isn't asserted. For eDP, we delay.

* We do the pm_runtime_get() in pre_enable and the pm_runtime_put() in
post_disable. For DP this will add a 2nd refcount (since we probably
were holding the reference for HPD). For eDP this will cause us to
power on.

* If there's any other time we need to read HW registers, and we
aren't guaranteed to already have a pm_runtime reference (like during
probe), we can do a temporary pm_runtime_get() /
pm_runtime_put_autosuspend().

WARNING: multiple messages have this Message-ID (diff)
From: Doug Anderson <dianders@chromium.org>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: quic_kalyant <quic_kalyant@quicinc.com>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
	<devicetree@vger.kernel.org>,
	"Sankeerth Billakanti \(QUIC\)" <quic_sbillaka@quicinc.com>,
	quic_vproddut <quic_vproddut@quicinc.com>,
	David Airlie <airlied@linux.ie>,
	linux-arm-msm <linux-arm-msm@vger.kernel.org>,
	Stephen Boyd <swboyd@chromium.org>,
	Abhinav Kumar <quic_abhinavk@quicinc.com>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	"Kuogee Hsieh \(QUIC\)" <quic_khsieh@quicinc.com>,
	Sean Paul <sean@poorly.run>, Sean Paul <seanpaul@chromium.org>,
	"Aravind Venkateswaran \(QUIC\)" <quic_aravindh@quicinc.com>,
	"bjorn.andersson@linaro.org" <bjorn.andersson@linaro.org>,
	freedreno <freedreno@lists.freedesktop.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v6 1/8] drm/msm/dp: Add eDP support via aux_bus
Date: Fri, 8 Apr 2022 06:43:28 -0700	[thread overview]
Message-ID: <CAD=FV=UG7k4A+hMXxwju-0mLddD1oJdGngXMkMA-dO3AxOx0rQ@mail.gmail.com> (raw)
In-Reply-To: <CAA8EJprb5UF24WRNvGaY_hSqW--NPd=9=8AaPYWSMbUumNn+dQ@mail.gmail.com>

Hi,

On Fri, Apr 8, 2022 at 5:20 AM Dmitry Baryshkov
<dmitry.baryshkov@linaro.org> wrote:
>
> > I guess my thought was that in DP you could still create the AUX bus
> > at probe time. Then for DP you just return an instant "transfer
> > failed" from the AUX bus if HPD isn't asserted. For eDP (as discussed
> > elsewhere) when we try to do an AUX transfer then we delay until HPD
> > is there.
>
> I think panel-edp would already handle the delay, so we do not need to
> have this logic in the DP driver.

There's a whole discussion about this between Stephen and me in patch
#5 ("drm/msm/dp: wait for hpd high before any sink interaction").
Basically:

* If panel HPD is hooked up to the dedicated HPD pin on the eDP
controller then the panel driver doesn't have a way to read it.

* We can't leverage the existing "HPD" query functions in DRM because
those indicate whether a panel is _physically_ connected. For eDP, it
always is.

For now the rule is that the AUX transfer function is in charge of
waiting for HPD for eDP if the dedicated HPD pin is used. If we want
to re-invent this we could, but that system works, isn't _too_ ugly,
and we're already making big enough changes in this series.


> > So we can still acquire resources (clocks, PHY, io maps, etc) at probe
> > time for DP and create the AUX bus, right? It will just return
> > "-ENODEV" if HPD isn't asserted and you're DP?
>
> Yes, please. I still suppose that we'd need a separate case to
> power_on eDP's PHY during the probe time. Maybe I'm mistaken here.

I think the ideal way is to do it like Kieran's proposal for sn65dsi86:

https://lore.kernel.org/r/20220317131250.1481275-4-kieran.bingham+renesas@ideasonboard.com/

* When enabling HPD (physical hot plug detect) in the hpd_enable()
callback you do a pm_runtime_get(). You do the
pm_runtime_put_autosuspend() when disabling. This is only used for DP
since we only provide DRM_BRIDGE_OP_HPD for DP, not for eDP.

* We do a pm_runtime_get() / pm_runtime_put_autosuspend() in the AUX
transfer routine. While holding the pm_runtime reference we check HPD.
For DP we return immediately if HPD isn't asserted. For eDP, we delay.

* We do the pm_runtime_get() in pre_enable and the pm_runtime_put() in
post_disable. For DP this will add a 2nd refcount (since we probably
were holding the reference for HPD). For eDP this will cause us to
power on.

* If there's any other time we need to read HW registers, and we
aren't guaranteed to already have a pm_runtime reference (like during
probe), we can do a temporary pm_runtime_get() /
pm_runtime_put_autosuspend().

  reply	other threads:[~2022-04-08 13:43 UTC|newest]

Thread overview: 140+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-30 16:02 [PATCH v6 0/8] Add support for the eDP panel over aux_bus Sankeerth Billakanti
2022-03-30 16:02 ` Sankeerth Billakanti
2022-03-30 16:02 ` [PATCH v6 1/8] drm/msm/dp: Add eDP support via aux_bus Sankeerth Billakanti
2022-03-30 16:02   ` Sankeerth Billakanti
2022-03-30 23:19   ` Dmitry Baryshkov
2022-03-30 23:19     ` Dmitry Baryshkov
2022-03-31  0:33     ` Doug Anderson
2022-03-31  0:33       ` Doug Anderson
2022-03-31 23:22   ` Doug Anderson
2022-03-31 23:22     ` Doug Anderson
2022-04-02 10:37     ` Dmitry Baryshkov
2022-04-02 10:37       ` Dmitry Baryshkov
2022-04-02 17:06       ` Doug Anderson
2022-04-02 17:06         ` Doug Anderson
2022-04-02 20:26         ` Dmitry Baryshkov
2022-04-02 20:26           ` Dmitry Baryshkov
2022-04-04 20:53           ` Doug Anderson
2022-04-04 20:53             ` Doug Anderson
2022-04-05 12:53             ` Dmitry Baryshkov
2022-04-05 12:53               ` Dmitry Baryshkov
2022-04-05 17:02               ` Doug Anderson
2022-04-05 17:02                 ` Doug Anderson
2022-04-05 17:36                 ` Dmitry Baryshkov
2022-04-05 17:36                   ` Dmitry Baryshkov
2022-04-05 18:11                   ` Doug Anderson
2022-04-05 18:11                     ` Doug Anderson
2022-04-07 14:19                     ` Sankeerth Billakanti (QUIC)
2022-04-07 14:19                       ` Sankeerth Billakanti (QUIC)
2022-04-07 17:07                       ` Doug Anderson
2022-04-07 17:07                         ` Doug Anderson
2022-04-07 20:11                         ` Abhinav Kumar
2022-04-07 20:11                           ` Abhinav Kumar
2022-04-07 20:47                           ` Doug Anderson
2022-04-07 20:47                             ` Doug Anderson
2022-04-07 22:03                             ` Abhinav Kumar
2022-04-07 22:03                               ` Abhinav Kumar
2022-04-07 23:34                               ` Doug Anderson
2022-04-07 23:34                                 ` Doug Anderson
2022-04-07 23:46                                 ` Dmitry Baryshkov
2022-04-07 23:46                                   ` Dmitry Baryshkov
2022-04-08  0:21                                   ` Doug Anderson
2022-04-08  0:21                                     ` Doug Anderson
2022-04-08 12:19                                     ` Dmitry Baryshkov
2022-04-08 12:19                                       ` Dmitry Baryshkov
2022-04-08 13:43                                       ` Doug Anderson [this message]
2022-04-08 13:43                                         ` Doug Anderson
2022-04-08 14:58                                         ` Dmitry Baryshkov
2022-04-08 14:58                                           ` Dmitry Baryshkov
2022-04-08 17:23                                           ` Abhinav Kumar
2022-04-08 17:23                                             ` Abhinav Kumar
2022-04-07 23:35                           ` Dmitry Baryshkov
2022-04-07 23:35                             ` Dmitry Baryshkov
2022-04-08  0:20                             ` Doug Anderson
2022-04-08  0:20                               ` Doug Anderson
2022-04-08 12:13                               ` Dmitry Baryshkov
2022-04-08 12:13                                 ` Dmitry Baryshkov
2022-04-08 13:56                                 ` Doug Anderson
2022-04-08 13:56                                   ` Doug Anderson
2022-04-08 14:17                                   ` Dmitry Baryshkov
2022-04-08 14:17                                     ` Dmitry Baryshkov
2022-03-30 16:02 ` [PATCH v6 2/8] drm/msm/dp: wait for hpd high before aux transaction Sankeerth Billakanti
2022-03-30 16:02   ` Sankeerth Billakanti
2022-03-31 23:22   ` Doug Anderson
2022-03-31 23:22     ` Doug Anderson
2022-04-04 12:43     ` Sankeerth Billakanti (QUIC)
2022-04-04 12:43       ` Sankeerth Billakanti (QUIC)
2022-03-30 16:02 ` [PATCH v6 3/8] drm/msm/dp: Support only IRQ_HPD and REPLUG interrupts for eDP Sankeerth Billakanti
2022-03-30 16:02   ` Sankeerth Billakanti
2022-03-31 23:22   ` Doug Anderson
2022-03-31 23:22     ` Doug Anderson
2022-04-04 12:56     ` Sankeerth Billakanti (QUIC)
2022-04-04 12:56       ` Sankeerth Billakanti (QUIC)
2022-03-30 16:02 ` [PATCH v6 4/8] drm/msm/dp: avoid handling masked interrupts Sankeerth Billakanti
2022-03-30 16:02   ` Sankeerth Billakanti
2022-03-30 22:16   ` Dmitry Baryshkov
2022-03-30 22:16     ` Dmitry Baryshkov
2022-03-31  5:53     ` Sankeerth Billakanti (QUIC)
2022-03-31  5:53       ` Sankeerth Billakanti (QUIC)
2022-03-31 10:10       ` Dmitry Baryshkov
2022-03-31 10:10         ` Dmitry Baryshkov
2022-03-31 11:04         ` Sankeerth Billakanti
2022-03-31 11:04           ` Sankeerth Billakanti
2022-03-31 11:06           ` Dmitry Baryshkov
2022-03-31 11:06             ` Dmitry Baryshkov
2022-04-04 17:56             ` Sankeerth Billakanti (QUIC)
2022-04-04 17:56               ` Sankeerth Billakanti (QUIC)
2022-03-30 16:02 ` [PATCH v6 5/8] drm/msm/dp: prevent multiple votes for dp resources Sankeerth Billakanti
2022-03-30 16:02   ` Sankeerth Billakanti
2022-03-31 23:23   ` Doug Anderson
2022-03-31 23:23     ` Doug Anderson
2022-04-08 16:14     ` Dmitry Baryshkov
2022-04-08 16:14       ` Dmitry Baryshkov
2022-04-08 17:12       ` Sankeerth Billakanti
2022-04-08 17:12         ` Sankeerth Billakanti
2022-04-08 18:02         ` Dmitry Baryshkov
2022-04-08 18:02           ` Dmitry Baryshkov
2022-03-30 16:02 ` [PATCH v6 6/8] drm/msm/dp: remove unnecessary delay during boot Sankeerth Billakanti
2022-03-30 16:02   ` Sankeerth Billakanti
2022-03-31 23:23   ` Doug Anderson
2022-03-31 23:23     ` Doug Anderson
2022-04-04 13:52     ` Sankeerth Billakanti (QUIC)
2022-04-04 13:52       ` Sankeerth Billakanti (QUIC)
2022-04-04 21:13       ` Dmitry Baryshkov
2022-04-04 21:13         ` Dmitry Baryshkov
2022-04-07 12:40         ` Sankeerth Billakanti (QUIC)
2022-04-07 12:40           ` Sankeerth Billakanti (QUIC)
2022-03-30 16:02 ` [PATCH v6 7/8] drm/msm/dp: Support edp/dp without hpd Sankeerth Billakanti
2022-03-30 16:02   ` Sankeerth Billakanti
2022-03-31 23:23   ` Doug Anderson
2022-03-31 23:23     ` Doug Anderson
2022-04-04 18:32     ` Sankeerth Billakanti (QUIC)
2022-04-04 18:32       ` Sankeerth Billakanti (QUIC)
2022-04-04 21:15       ` Dmitry Baryshkov
2022-04-04 21:15         ` Dmitry Baryshkov
2022-04-07 12:41         ` Sankeerth Billakanti (QUIC)
2022-04-07 12:41           ` Sankeerth Billakanti (QUIC)
2022-03-30 16:02 ` [PATCH v6 8/8] drm/msm/dp: Handle eDP mode_valid differently from dp Sankeerth Billakanti
2022-03-30 16:02   ` Sankeerth Billakanti
2022-03-30 22:08   ` Dmitry Baryshkov
2022-03-30 22:08     ` Dmitry Baryshkov
2022-03-31  6:02     ` Sankeerth Billakanti (QUIC)
2022-03-31  6:02       ` Sankeerth Billakanti (QUIC)
2022-03-31 23:24       ` Doug Anderson
2022-03-31 23:24         ` Doug Anderson
2022-04-04 18:20         ` Sankeerth Billakanti (QUIC)
2022-04-04 18:20           ` Sankeerth Billakanti (QUIC)
2022-04-04 21:29           ` Dmitry Baryshkov
2022-04-04 21:29             ` Dmitry Baryshkov
2022-04-07 14:05             ` Sankeerth Billakanti (QUIC)
2022-04-07 14:05               ` Sankeerth Billakanti (QUIC)
2022-04-08 12:08               ` Dmitry Baryshkov
2022-04-08 12:08                 ` Dmitry Baryshkov
2022-04-08 15:50                 ` Sankeerth Billakanti
2022-04-08 15:50                   ` Sankeerth Billakanti
2022-04-08 16:47                   ` Dmitry Baryshkov
2022-04-08 16:47                     ` Dmitry Baryshkov
2022-04-08 17:38                     ` Sankeerth Billakanti
2022-04-08 17:38                       ` Sankeerth Billakanti
2022-04-08 18:06                       ` Dmitry Baryshkov
2022-04-08 18:06                         ` 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='CAD=FV=UG7k4A+hMXxwju-0mLddD1oJdGngXMkMA-dO3AxOx0rQ@mail.gmail.com' \
    --to=dianders@chromium.org \
    --cc=airlied@linux.ie \
    --cc=bjorn.andersson@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=quic_abhinavk@quicinc.com \
    --cc=quic_aravindh@quicinc.com \
    --cc=quic_kalyant@quicinc.com \
    --cc=quic_khsieh@quicinc.com \
    --cc=quic_sbillaka@quicinc.com \
    --cc=quic_vproddut@quicinc.com \
    --cc=sean@poorly.run \
    --cc=seanpaul@chromium.org \
    --cc=swboyd@chromium.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.