diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2016-12-21 07:30:00 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-12-21 07:29:59 -0800 |
| commit | 21fb3a4b626aeb68bc4312cfd58cf78276c5b578 (patch) | |
| tree | 905988fbe9adcdf72f7ea561503fd6e514d88501 /drivers/video/fbdev | |
| parent | 5ea7eae65b310ad6cad17a581d6787997d8ed0ce (diff) | |
| parent | f3b323b0a2980a1dffae35e12df1f621108f4dc4 (diff) | |
Merge "msm: mdss: Fix scaler enable flag setting"
Diffstat (limited to 'drivers/video/fbdev')
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_fb.c | 1 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_mdp_layer.c | 14 |
2 files changed, 11 insertions, 4 deletions
diff --git a/drivers/video/fbdev/msm/mdss_fb.c b/drivers/video/fbdev/msm/mdss_fb.c index e37f0a602c0f..35913a26317d 100644 --- a/drivers/video/fbdev/msm/mdss_fb.c +++ b/drivers/video/fbdev/msm/mdss_fb.c @@ -4258,6 +4258,7 @@ static void __mdss_fb_copy_pixel_ext(struct mdp_scale_data *src, { if (!src || !dest) return; + dest->enable = true; memcpy(dest->init_phase_x, src->init_phase_x, sizeof(src->init_phase_x)); memcpy(dest->phase_step_x, src->phase_step_x, diff --git a/drivers/video/fbdev/msm/mdss_mdp_layer.c b/drivers/video/fbdev/msm/mdss_mdp_layer.c index 38e439f9c649..0731cbcafe7c 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_layer.c +++ b/drivers/video/fbdev/msm/mdss_mdp_layer.c @@ -1040,7 +1040,6 @@ static int __configure_pipe_params(struct msm_fb_data_type *mfd, if (layer->flags & MDP_LAYER_SECURE_CAMERA_SESSION) pipe->flags |= MDP_SECURE_CAMERA_OVERLAY_SESSION; - pipe->scaler.enable = (layer->flags & SCALER_ENABLED); pipe->is_fg = layer->flags & MDP_LAYER_FORGROUND; pipe->img_width = layer->buffer.width & 0x3fff; pipe->img_height = layer->buffer.height & 0x3fff; @@ -1073,6 +1072,16 @@ static int __configure_pipe_params(struct msm_fb_data_type *mfd, pipe->src.x, pipe->src.y, pipe->src.w, pipe->src.h, pipe->dst.x, pipe->dst.y, pipe->dst.w, pipe->dst.h); + if (layer->flags & SCALER_ENABLED) { + memcpy(&pipe->scaler, layer->scale, + sizeof(struct mdp_scale_data_v2)); + /* Sanitize enable flag */ + pipe->scaler.enable &= (ENABLE_SCALE | ENABLE_DETAIL_ENHANCE | + ENABLE_DIRECTION_DETECTION); + } else { + pipe->scaler.enable = 0; + } + flags = pipe->flags; if (is_single_layer) flags |= PERF_CALC_PIPE_SINGLE_LAYER; @@ -1195,9 +1204,6 @@ static int __configure_pipe_params(struct msm_fb_data_type *mfd, } } - if (layer->flags & SCALER_ENABLED) - memcpy(&pipe->scaler, layer->scale, - sizeof(struct mdp_scale_data_v2)); ret = mdss_mdp_overlay_setup_scaling(pipe); if (ret) { pr_err("scaling setup failed %d\n", ret); |
