|
@@ -1954,7 +1954,7 @@ static int _sde_rm_populate_requirements(
|
|
struct sde_rm_requirements *reqs)
|
|
struct sde_rm_requirements *reqs)
|
|
{
|
|
{
|
|
const struct drm_display_mode *mode = &crtc_state->mode;
|
|
const struct drm_display_mode *mode = &crtc_state->mode;
|
|
- int i;
|
|
|
|
|
|
+ int i, num_lm;
|
|
|
|
|
|
reqs->top_ctrl = sde_connector_get_property(conn_state,
|
|
reqs->top_ctrl = sde_connector_get_property(conn_state,
|
|
CONNECTOR_PROP_TOPOLOGY_CONTROL);
|
|
CONNECTOR_PROP_TOPOLOGY_CONTROL);
|
|
@@ -2002,9 +2002,18 @@ static int _sde_rm_populate_requirements(
|
|
*/
|
|
*/
|
|
reqs->topology =
|
|
reqs->topology =
|
|
&rm->topology_tbl[SDE_RM_TOPOLOGY_DUALPIPE_3DMERGE];
|
|
&rm->topology_tbl[SDE_RM_TOPOLOGY_DUALPIPE_3DMERGE];
|
|
- if (sde_crtc_get_num_datapath(crtc_state->crtc) == 1)
|
|
|
|
|
|
+
|
|
|
|
+ num_lm = sde_crtc_get_num_datapath(crtc_state->crtc,
|
|
|
|
+ conn_state->connector);
|
|
|
|
+
|
|
|
|
+ if (num_lm == 1)
|
|
reqs->topology =
|
|
reqs->topology =
|
|
&rm->topology_tbl[SDE_RM_TOPOLOGY_SINGLEPIPE];
|
|
&rm->topology_tbl[SDE_RM_TOPOLOGY_SINGLEPIPE];
|
|
|
|
+ else if (num_lm == 0)
|
|
|
|
+ SDE_ERROR("Primary layer mixer is not set\n");
|
|
|
|
+
|
|
|
|
+ SDE_EVT32(num_lm, reqs->topology->num_lm,
|
|
|
|
+ reqs->topology->top_name, reqs->topology->num_ctl);
|
|
}
|
|
}
|
|
|
|
|
|
SDE_DEBUG("top_ctrl: 0x%llX num_h_tiles: %d\n", reqs->top_ctrl,
|
|
SDE_DEBUG("top_ctrl: 0x%llX num_h_tiles: %d\n", reqs->top_ctrl,
|