On 7/6/2022 10:25 AM, Dmitry Baryshkov wrote:
On 06/07/2022 20:24, Kuogee Hsieh wrote:
Some userspace presumes that the first connected connector is the main
display, where it's supposed to display e.g. the login screen. For
laptops, this should be the main panel.

This patch call drm_helper_move_panel_connectors_to_head() after
drm_bridge_connector_init() to make sure eDP stay at head of
connected connector list. This fixes unexpected corruption happen
at eDP panel if eDP is not placed at head of connected connector
list.

Changes in v2:
-- move drm_helper_move_panel_connectors_to_head() to
        dpu_kms_drm_obj_init()

Signed-off-by: Kuogee Hsieh <quic_khs...@quicinc.com>
---
  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 2b9d931..50ff666 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -763,6 +763,8 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
      if (ret)
          return ret;
  +    drm_helper_move_panel_connectors_to_head(dev);

This should be in msm_drv.c unless you have a strong reason to have it here.
Can you please  provide more info why should be in msm_drv.c?
_dpu_kms_drm_obj_init() create and initialize drm obj one by one and _dpu_kms_setup_displays() had created system wide connectors/interfaces .

After that should be fine to move edp to head of connector list.

+
      num_encoders = 0;
      drm_for_each_encoder(encoder, dev)
          num_encoders++;


Reply via email to