Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/msm: Attach assigned encoder to eDP and DSI connectors

drm_mode_connector_attach_encoder() function call is missing
during eDP and DSI connector initialization. As a result,
no encoder is returned by DRM_IOCTL_MODE_GETCONNECTOR system
call. This change is to fix this issue.

Signed-off-by: Hai Li <hali@codeaurora.org>

authored by

Hai Li and committed by
Rob Clark
6f6b2879 13f15565

+12 -6
+5 -5
drivers/gpu/drm/msm/dsi/dsi.c
··· 177 177 goto fail; 178 178 } 179 179 180 + for (i = 0; i < MSM_DSI_ENCODER_NUM; i++) { 181 + encoders[i]->bridge = msm_dsi->bridge; 182 + msm_dsi->encoders[i] = encoders[i]; 183 + } 184 + 180 185 msm_dsi->connector = msm_dsi_manager_connector_init(msm_dsi->id); 181 186 if (IS_ERR(msm_dsi->connector)) { 182 187 ret = PTR_ERR(msm_dsi->connector); 183 188 dev_err(dev->dev, "failed to create dsi connector: %d\n", ret); 184 189 msm_dsi->connector = NULL; 185 190 goto fail; 186 - } 187 - 188 - for (i = 0; i < MSM_DSI_ENCODER_NUM; i++) { 189 - encoders[i]->bridge = msm_dsi->bridge; 190 - msm_dsi->encoders[i] = encoders[i]; 191 191 } 192 192 193 193 priv->bridges[priv->num_bridges++] = msm_dsi->bridge;
+5 -1
drivers/gpu/drm/msm/dsi/dsi_manager.c
··· 462 462 struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id); 463 463 struct drm_connector *connector = NULL; 464 464 struct dsi_connector *dsi_connector; 465 - int ret; 465 + int ret, i; 466 466 467 467 dsi_connector = devm_kzalloc(msm_dsi->dev->dev, 468 468 sizeof(*dsi_connector), GFP_KERNEL); ··· 494 494 ret = drm_connector_register(connector); 495 495 if (ret) 496 496 goto fail; 497 + 498 + for (i = 0; i < MSM_DSI_ENCODER_NUM; i++) 499 + drm_mode_connector_attach_encoder(connector, 500 + msm_dsi->encoders[i]); 497 501 498 502 return connector; 499 503
+2
drivers/gpu/drm/msm/edp/edp_connector.c
··· 151 151 if (ret) 152 152 goto fail; 153 153 154 + drm_mode_connector_attach_encoder(connector, edp->encoder); 155 + 154 156 return connector; 155 157 156 158 fail: