[PATCH] drm/msm/dp: attach the DP subconnector property

Dmitry Baryshkov dmitry.baryshkov at linaro.org
Fri Oct 20 16:26:31 UTC 2023


On Wed, 18 Oct 2023 at 12:24, Abhinav Kumar <quic_abhinavk at quicinc.com> wrote:
>
>
>
> On 10/18/2023 12:46 AM, Dmitry Baryshkov wrote:
> > While developing and testing the commit bfcc3d8f94f4 ("drm/msm/dp:
> > support setting the DP subconnector type") I had the patch [1] in my
> > tree. I haven't noticed that it was a dependency for the commit in
> > question. Mea culpa.
> >
>
> I agree with you that, we should be setting this in the framework is better.
>
> Will review that one on the other patch.
>
> But yes, we need to fix this regression first.
>
> > Since the patch has not landed yet (and even was not reviewed)
> > and since one of the bridges erroneously uses USB connector type instead
> > of DP, attach the property directly from the MSM DP driver.
> >
> > This fixes the following oops on DP HPD event:
> >
> >   drm_object_property_set_value (drivers/gpu/drm/drm_mode_object.c:288)
> >   dp_display_process_hpd_high (drivers/gpu/drm/msm/dp/dp_display.c:402)
> >   dp_hpd_plug_handle.isra.0 (drivers/gpu/drm/msm/dp/dp_display.c:604)
> >   hpd_event_thread (drivers/gpu/drm/msm/dp/dp_display.c:1110)
> >   kthread (kernel/kthread.c:388)
> >   ret_from_fork (arch/arm64/kernel/entry.S:858)
> >
> > Fixes: bfcc3d8f94f4 ("drm/msm/dp: support setting the DP subconnector type")
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
> > ---
>
> Reviewed-by: Abhinav Kumar <quic_abhinavk at quicinc.com>

Just to note, I'm going to send v2 in the next few days, fixing this
code to also work in eDP.

>
> One question, while reviewing the code, I see you have two calls to
> drm_dp_set_subconnector_property() for the connect and disconnect case.
>
> Why cant we have just one call in dp_display_send_hpd_notification() for
> both cases?

Hmm, I'll have to check.

>
>
> >   drivers/gpu/drm/msm/dp/dp_drm.c | 3 +++
> >   1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c
> > index 40e7344180e3..e3bdd7dd4cdc 100644
> > --- a/drivers/gpu/drm/msm/dp/dp_drm.c
> > +++ b/drivers/gpu/drm/msm/dp/dp_drm.c
> > @@ -345,6 +345,9 @@ struct drm_connector *dp_drm_connector_init(struct msm_dp *dp_display, struct dr
> >       if (IS_ERR(connector))
> >               return connector;
> >
> > +     if (!dp_display->is_edp)
> > +             drm_connector_attach_dp_subconnector_property(connector);
> > +
> >       drm_connector_attach_encoder(connector, encoder);
> >
> >       return connector;



-- 
With best wishes
Dmitry


More information about the dri-devel mailing list