[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7bscw5btxqonvfo4fqbalhjdhs3hewtkcr3svpxonhsuawzpio@d4wbamnobcdl>
Date: Sun, 8 Dec 2024 14:03:48 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
To: Abhinav Kumar <quic_abhinavk@...cinc.com>
Cc: Rob Clark <robdclark@...il.com>, Sean Paul <sean@...rly.run>,
Marijn Suijten <marijn.suijten@...ainline.org>, David Airlie <airlied@...il.com>,
Simona Vetter <simona@...ll.ch>, Stephen Boyd <swboyd@...omium.org>,
Chandan Uddaraju <chandanu@...eaurora.org>, Guenter Roeck <groeck@...omium.org>,
Kuogee Hsieh <quic_khsieh@...cinc.com>, Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley <conor+dt@...nel.org>,
Vara Reddy <quic_varar@...cinc.com>, Rob Clark <robdclark@...omium.org>,
Tanmay Shah <tanmay@...eaurora.org>, linux-arm-msm@...r.kernel.org, dri-devel@...ts.freedesktop.org,
freedreno@...ts.freedesktop.org, linux-kernel@...r.kernel.org, devicetree@...r.kernel.org,
Jessica Zhang <quic_jesszhan@...cinc.com>, Laurent Pinchart <laurent.pinchart@...asonboard.com>
Subject: Re: [PATCH 08/45] drm/msm/dp: re-arrange dp_display_disable() into
functional parts
On Thu, Dec 05, 2024 at 08:31:39PM -0800, Abhinav Kumar wrote:
> dp_display_disable() handles special case of when monitor is
> disconnected from the dongle while the dongle stays connected
> thereby needing a separate function dp_ctrl_off_link_stream()
> for this. However with a slight rework this can still be handled
> by keeping common paths same for regular and special case.
>
> Signed-off-by: Abhinav Kumar <quic_abhinavk@...cinc.com>
> ---
> drivers/gpu/drm/msm/dp/dp_ctrl.c | 29 +++++++++++++++--------------
> drivers/gpu/drm/msm/dp/dp_ctrl.h | 4 ++++
> drivers/gpu/drm/msm/dp/dp_display.c | 25 ++++++++++++-------------
> 3 files changed, 31 insertions(+), 27 deletions(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
Nevertheless,
> @@ -905,20 +905,19 @@ static int msm_dp_display_disable(struct msm_dp_display_private *dp)
> if (!msm_dp_display->power_on)
> return 0;
>
> - if (dp->link->sink_count == 0) {
> - /*
> - * irq_hpd with sink_count = 0
> - * hdmi unplugged out of dongle
> - */
> - msm_dp_ctrl_off_link_stream(dp->ctrl);
> - } else {
> - /*
> - * unplugged interrupt
> - * dongle unplugged out of DUT
> - */
> - msm_dp_ctrl_off(dp->ctrl);
> + msm_dp_ctrl_clear_vsc_sdp_pkt(dp->ctrl);
> +
> + /* dongle is still connected but sinks are disconnected */
> + if (dp->link->sink_count == 0)
> + msm_dp_ctrl_psm_config(dp->ctrl);
> +
> + msm_dp_ctrl_off(dp->ctrl);
> +
> + /* re-init the PHY so that we can listen to Dongle disconnect */
> + if (dp->link->sink_count == 0)
It might be better to have just two codepaths:
if (sink_count == 0) {
msm_dp_ctrl_clear_vsc_sdp_pkt()
msm_dp_ctrl_psm_config()
msm_dp_ctrl_off()
msm_dp_ctrl_reinit_phy()
} else {
msm_dp_ctrl_clear_vsc_sdp_pkt()
msm_dp_ctrl_off()
msm_dp_display_host_phy_exit()
}
> + msm_dp_ctrl_reinit_phy(dp->ctrl);
> + else
> msm_dp_display_host_phy_exit(dp);
> - }
>
> msm_dp_display->power_on = false;
>
>
> --
> 2.34.1
>
--
With best wishes
Dmitry
Powered by blists - more mailing lists