disp: msm: encoder_ids replaced in drm_connector

Commit 62afb4ad425a ("drm/connector: Allow max possible encoders
to attach to a connector") enables additional encoders per
connector through use of a mask rather than encoder ids.
This change updates the driver when looking for an encoder
for the connector to look through the list of all possible encoders.

Change-Id: I69cc7c38cd0a9842ed2f15712feeb3c6b88daadf
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
This commit is contained in:
Samantha Tran
2020-07-31 09:39:13 -07:00
committed by Nilaan Gunabalachandran
parent da5f5ff1ae
commit 2616e57a0a
3 changed files with 37 additions and 6 deletions

View File

@@ -6379,6 +6379,7 @@ int dsi_display_drm_ext_bridge_init(struct dsi_display *display,
for (i = 0; i < display->ext_bridge_cnt; i++) {
struct dsi_display_ext_bridge *ext_bridge_info =
&display->ext_bridge[i];
struct drm_encoder *c_encoder;
/* return if ext bridge is already initialized */
if (ext_bridge_info->bridge)
@@ -6424,8 +6425,20 @@ int dsi_display_drm_ext_bridge_init(struct dsi_display *display,
spin_lock_irq(&drm->mode_config.connector_list_lock);
ext_conn = list_last_entry(&drm->mode_config.connector_list,
struct drm_connector, head);
drm_connector_for_each_possible_encoder(ext_conn, c_encoder)
break;
if (!c_encoder) {
DSI_ERR("failed to get encoder\n");
rc = PTR_ERR(c_encoder);
spin_unlock_irq(&drm->mode_config.connector_list_lock);
goto error;
}
if (ext_conn && ext_conn != connector &&
ext_conn->encoder_ids[0] == bridge->encoder->base.id) {
c_encoder->base.id == bridge->encoder->base.id) {
list_del_init(&ext_conn->head);
display->ext_conn = ext_conn;
}