drm/msm/dp: attach the DP subconnector property
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Wed, 25 Oct 2023 09:23:10 +0000 (12:23 +0300)
committerAbhinav Kumar <quic_abhinavk@quicinc.com>
Thu, 16 Nov 2023 20:57:49 +0000 (12:57 -0800)
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.

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)

[1] https://patchwork.freedesktop.org/patch/555530/

Fixes: bfcc3d8f94f4 ("drm/msm/dp: support setting the DP subconnector type")
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tested-by: Jessica Zhang <quic_jesszhan@quicinc.com> # SC7280
Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Tested-by: Johan Hovold <johan+linaro@kernel.org>
Patchwork: https://patchwork.freedesktop.org/patch/564286/
Link: https://lore.kernel.org/r/20231025092711.851168-3-dmitry.baryshkov@linaro.org
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
drivers/gpu/drm/msm/dp/dp_drm.c

index 40e7344180e3e0e8d4f99804835d5ab51a12a842..e3bdd7dd4cdc7de80b1ca1e2cd1f60386c31594c 100644 (file)
@@ -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;