disp: msm: sde: fix compression info usage in resource alloc
Currently, compression info passed to resource manager is not valid in atomic check phase. Also in current design allocation of msm mode info object is from stack which is huge and causing stack overflow in continuous splash use case. This change fixes these issues by moving mode info object to heap allocation. Change-Id: Ifaf39b3ae59c942da5c00b82c73cb97cdaf500d3 Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
947fa56080
commit
62cb53cc59
@@ -926,6 +926,52 @@ int sde_connector_helper_reset_custom_properties(
|
||||
int sde_connector_state_get_mode_info(struct drm_connector_state *conn_state,
|
||||
struct msm_mode_info *mode_info);
|
||||
|
||||
/**
|
||||
* sde_connector_state_get_topology - get topology from given connector state
|
||||
* conn_state: Pointer to the DRM connector state object
|
||||
* topology: Pointer to store topology info of the display
|
||||
*/
|
||||
static inline int sde_connector_state_get_topology(
|
||||
struct drm_connector_state *conn_state,
|
||||
struct msm_display_topology *topology)
|
||||
{
|
||||
struct sde_connector_state *sde_conn_state = NULL;
|
||||
|
||||
if (!conn_state || !topology) {
|
||||
SDE_ERROR("invalid arguments conn_state %d, topology %d\n",
|
||||
!conn_state, !topology);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
sde_conn_state = to_sde_connector_state(conn_state);
|
||||
memcpy(topology, &sde_conn_state->mode_info.topology,
|
||||
sizeof(struct msm_display_topology));
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* sde_connector_state_get_compression_info- get compression info of display
|
||||
* from given connector state
|
||||
* conn_state: Pointer to the DRM connector state object
|
||||
* comp_info: Pointer to the compression info structure
|
||||
*/
|
||||
static inline int sde_connector_state_get_compression_info(
|
||||
struct drm_connector_state *conn_state,
|
||||
struct msm_compression_info *comp_info)
|
||||
{
|
||||
struct sde_connector_state *sde_conn_state = NULL;
|
||||
|
||||
if (!conn_state || !comp_info) {
|
||||
SDE_ERROR("invalid arguments\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
sde_conn_state = to_sde_connector_state(conn_state);
|
||||
memcpy(comp_info, &sde_conn_state->mode_info.comp_info,
|
||||
sizeof(struct msm_compression_info));
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* sde_connector_get_mode_info - retrieve mode info for given mode
|
||||
* @connector: Pointer to drm connector structure
|
||||
|
Reference in New Issue
Block a user