disp: msm: sde: modify check for active datapaths

In some cases like suspend and cwb concurrencies,
the number of mixers in the sde_crtc structure
can become zero. Add support to get the number
of mixers from topology in those cases to
avoid incorrect resource allocation request.

Change-Id: Id9b82e805ff50a107ad06514b4e41c0917abdf33
Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org>
此提交包含在:
Krishna Manikandan
2020-03-24 15:04:12 +05:30
提交者 Nilaan Gunabalachandran
父節點 7116441b24
當前提交 5541a20748
共有 3 個檔案被更改,包括 57 行新增13 行删除

查看文件

@@ -1954,7 +1954,7 @@ static int _sde_rm_populate_requirements(
struct sde_rm_requirements *reqs)
{
const struct drm_display_mode *mode = &crtc_state->mode;
int i;
int i, num_lm;
reqs->top_ctrl = sde_connector_get_property(conn_state,
CONNECTOR_PROP_TOPOLOGY_CONTROL);
@@ -2002,9 +2002,18 @@ static int _sde_rm_populate_requirements(
*/
reqs->topology =
&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 =
&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,