From 22ae38f7f9fcff307fea500dd6c1fd613f5f4c09 Mon Sep 17 00:00:00 2001 From: Abhijit Kulkarni Date: Mon, 1 Aug 2016 19:39:35 -0700 Subject: [PATCH] msm: mdss: disable scaler for pipes with solid_fill If solid fill is enabled the driver code skips the programming of scaler which leaves the scaler in invalid state if it was enabled in previous configuration on this pipe. The change addresses this by programming scaler configuration before the solid fill check. CRs-Fixed: 1048727 Change-Id: I093e494800dacefda447b27da4fc2ea9c0cdeda6 Signed-off-by: Abhijit Kulkarni --- drivers/video/fbdev/msm/mdss_mdp_pipe.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/video/fbdev/msm/mdss_mdp_pipe.c b/drivers/video/fbdev/msm/mdss_mdp_pipe.c index bcb4867b4ffd..8cfb8e46777c 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_pipe.c +++ b/drivers/video/fbdev/msm/mdss_mdp_pipe.c @@ -2690,6 +2690,16 @@ int mdss_mdp_pipe_queue_data(struct mdss_mdp_pipe *pipe, if (pipe->scaler.enable) mdss_mdp_pipe_program_pixel_extn(pipe); + + ret = mdss_mdp_pipe_pp_setup(pipe, &opmode); + if (ret) { + pr_err("pipe pp setup error for pnum=%d\n", pipe->num); + + MDSS_XLOG(pipe->num, pipe->mixer_left->num, + pipe->play_cnt, 0xbad); + + goto done; + } } if ((!(pipe->flags & MDP_VPU_PIPE) && (src_data == NULL)) || @@ -2708,12 +2718,6 @@ int mdss_mdp_pipe_queue_data(struct mdss_mdp_pipe *pipe, if (params_changed) { pipe->params_changed = 0; - ret = mdss_mdp_pipe_pp_setup(pipe, &opmode); - if (ret) { - pr_err("pipe pp setup error for pnum=%d\n", pipe->num); - goto done; - } - ret = mdss_mdp_image_setup(pipe, src_data); if (ret) { pr_err("image setup error for pnum=%d\n", pipe->num);