disp: msm: sde: populate connector modes during init
When continuous splash is enabled, KMS populates the modes of a connector during splash config. With TUI VM enabled, this path will also be exercised by trusted vm for splash handoff, where for a given display we try to use the same HW blocks configured by the primary VM. Since the trusted VM invokes the path under connection_mutex lock, calling fill_modes will lead to a deadlock. So, move the connector mode population during init for DSI displays, since the modes are available for the connector during initialization. Change-Id: I12f920f4af84b7bccc97a5f5edb5117ada49b960 Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
de8c973a73
commit
a521764b53
@@ -2707,6 +2707,12 @@ static int _sde_connector_install_properties(struct drm_device *dev,
|
||||
sizeof(dsi_display->panel->hdr_props),
|
||||
CONNECTOR_PROP_HDR_INFO);
|
||||
}
|
||||
|
||||
mutex_lock(&c_conn->base.dev->mode_config.mutex);
|
||||
sde_connector_fill_modes(&c_conn->base,
|
||||
dev->mode_config.max_width,
|
||||
dev->mode_config.max_height);
|
||||
mutex_unlock(&c_conn->base.dev->mode_config.mutex);
|
||||
}
|
||||
|
||||
msm_property_install_volatile_range(
|
||||
|
@@ -3043,16 +3043,6 @@ static int sde_kms_cont_splash_config(struct msm_kms *kms)
|
||||
mutex_unlock(&dev->mode_config.mutex);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (connector->funcs->fill_modes) {
|
||||
connector->funcs->fill_modes(connector,
|
||||
dev->mode_config.max_width,
|
||||
dev->mode_config.max_height);
|
||||
} else {
|
||||
SDE_ERROR("fill_modes api not defined\n");
|
||||
mutex_unlock(&dev->mode_config.mutex);
|
||||
return -EINVAL;
|
||||
}
|
||||
mutex_unlock(&dev->mode_config.mutex);
|
||||
|
||||
crtc->state->encoder_mask = (1 << drm_encoder_index(encoder));
|
||||
|
Reference in New Issue
Block a user