msm: mdss: Fix destination bpp on writeback panel

Default bpp for destination format is set if mixer type
for WB is MIXER_TYPE_WRITEBACK. Ensure that correct bpp
is fetched from format type.

Change-Id: Iff7cf58363a83e9a4999115382c5551110104ead
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
This commit is contained in:
Jayant Shekhar 2016-04-06 12:01:11 +05:30 committed by Kyle Yan
parent 3407e78a70
commit 8e11c85eb8

View file

@ -1221,8 +1221,13 @@ static void mdss_mdp_perf_calc_mixer(struct mdss_mdp_mixer *mixer,
memset(perf, 0, sizeof(*perf)); memset(perf, 0, sizeof(*perf));
if (!mixer->rotator_mode) { if (!mixer->rotator_mode) {
pinfo = &mixer->ctl->panel_data->panel_info;
if (!pinfo) {
pr_err("pinfo is NULL\n");
goto exit;
}
if (mixer->type == MDSS_MDP_MIXER_TYPE_INTF) { if (mixer->type == MDSS_MDP_MIXER_TYPE_INTF) {
pinfo = &mixer->ctl->panel_data->panel_info;
if (pinfo->type == MIPI_VIDEO_PANEL) { if (pinfo->type == MIPI_VIDEO_PANEL) {
fps = pinfo->panel_max_fps; fps = pinfo->panel_max_fps;
v_total = pinfo->panel_max_vtotal; v_total = pinfo->panel_max_vtotal;
@ -1230,18 +1235,19 @@ static void mdss_mdp_perf_calc_mixer(struct mdss_mdp_mixer *mixer,
fps = mdss_panel_get_framerate(pinfo); fps = mdss_panel_get_framerate(pinfo);
v_total = mdss_panel_get_vtotal(pinfo); v_total = mdss_panel_get_vtotal(pinfo);
} }
if (pinfo->type == WRITEBACK_PANEL) {
fmt = mdss_mdp_get_format_params(
mixer->ctl->dst_format);
if (fmt)
bpp = fmt->bpp;
pinfo = NULL;
}
} else { } else {
v_total = mixer->height; v_total = mixer->height;
} }
/* For writeback panel, mixer type can be other than intf */
if (pinfo->type == WRITEBACK_PANEL) {
fmt = mdss_mdp_get_format_params(
mixer->ctl->dst_format);
if (fmt)
bpp = fmt->bpp;
pinfo = NULL;
}
perf->mdp_clk_rate = mixer->width * v_total * fps; perf->mdp_clk_rate = mixer->width * v_total * fps;
perf->mdp_clk_rate = perf->mdp_clk_rate =
mdss_mdp_clk_fudge_factor(mixer, perf->mdp_clk_rate); mdss_mdp_clk_fudge_factor(mixer, perf->mdp_clk_rate);