fbdev: msm: Reserve mixers with dspp for primary display
Avoid allocating mixers LM0 and LM1 to external display and writeback as they are allocated to primary display first. Change-Id: I343a70dca2e664e5c9765fa2f0b933714b747b4a Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org>
This commit is contained in:
parent
9725c4d90b
commit
e2c351c864
1 changed files with 17 additions and 1 deletions
|
@ -2513,6 +2513,7 @@ struct mdss_mdp_mixer *mdss_mdp_mixer_alloc(
|
||||||
u32 nmixers_wb;
|
u32 nmixers_wb;
|
||||||
u32 i;
|
u32 i;
|
||||||
u32 nmixers;
|
u32 nmixers;
|
||||||
|
u32 nmixers_active;
|
||||||
struct mdss_mdp_mixer *mixer_pool = NULL;
|
struct mdss_mdp_mixer *mixer_pool = NULL;
|
||||||
|
|
||||||
if (!ctl || !ctl->mdata)
|
if (!ctl || !ctl->mdata)
|
||||||
|
@ -2526,10 +2527,21 @@ struct mdss_mdp_mixer *mdss_mdp_mixer_alloc(
|
||||||
case MDSS_MDP_MIXER_TYPE_INTF:
|
case MDSS_MDP_MIXER_TYPE_INTF:
|
||||||
mixer_pool = ctl->mdata->mixer_intf;
|
mixer_pool = ctl->mdata->mixer_intf;
|
||||||
nmixers = nmixers_intf;
|
nmixers = nmixers_intf;
|
||||||
|
nmixers_active = nmixers;
|
||||||
|
|
||||||
|
for (i = 0; i < nmixers; i++) {
|
||||||
|
mixer = mixer_pool + i;
|
||||||
|
if (mixer->ref_cnt)
|
||||||
|
nmixers_active--;
|
||||||
|
}
|
||||||
|
mixer = NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* try to reserve first layer mixer for write back if
|
* try to reserve first layer mixer for write back if
|
||||||
* assertive display needs to be supported through wfd
|
* assertive display needs to be supported through wfd.
|
||||||
|
* For external displays(pluggable) and writeback avoid
|
||||||
|
* allocating mixers LM0 and LM1 which are allocated
|
||||||
|
* to primary display first.
|
||||||
*/
|
*/
|
||||||
if (ctl->mdata->has_wb_ad && ctl->intf_num &&
|
if (ctl->mdata->has_wb_ad && ctl->intf_num &&
|
||||||
((ctl->panel_data->panel_info.type != MIPI_CMD_PANEL) ||
|
((ctl->panel_data->panel_info.type != MIPI_CMD_PANEL) ||
|
||||||
|
@ -2541,6 +2553,10 @@ struct mdss_mdp_mixer *mdss_mdp_mixer_alloc(
|
||||||
&& (ctl->mdata->ndspp < nmixers)) {
|
&& (ctl->mdata->ndspp < nmixers)) {
|
||||||
mixer_pool += ctl->mdata->ndspp;
|
mixer_pool += ctl->mdata->ndspp;
|
||||||
nmixers -= ctl->mdata->ndspp;
|
nmixers -= ctl->mdata->ndspp;
|
||||||
|
} else if ((ctl->panel_data->panel_info.is_pluggable) &&
|
||||||
|
nmixers_active) {
|
||||||
|
mixer_pool += ctl->mdata->ndspp;
|
||||||
|
nmixers -= ctl->mdata->ndspp;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue