msm: mdss: Correct phase step calculations for YUV format

In the current implementation, phase step calculation for chroma plane
is not considering chroma subsample and is reduced to half. This is
incorrect and needs to be reduced to half only when chroma sub sampling
is present. This change corrects the phase step calculations for the
chroma planes.

Change-Id: Ia909f909f699882b863efb17b5dded77e6fdb1b1
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
This commit is contained in:
Jeevan Shriram 2015-08-28 22:57:53 -07:00 committed by David Keitel
parent 778f349a00
commit a9335480c6

View file

@ -2359,19 +2359,14 @@ void mdss_mdp_pipe_calc_pixel_extn(struct mdss_mdp_pipe *pipe)
* phase step x,y for 0 plane should be calculated before * phase step x,y for 0 plane should be calculated before
* this * this
*/ */
if (pipe->src_fmt->is_yuv) { if (pipe->src_fmt->is_yuv && (i == 1 || i == 2)) {
if (i == 1 || i == 2) {
pipe->scale.phase_step_x[i] = pipe->scale.phase_step_x[i] =
pipe->scale.phase_step_x[0] / 2; pipe->scale.phase_step_x[0]
>> pipe->chroma_sample_h;
pipe->scale.phase_step_y[i] = pipe->scale.phase_step_y[i] =
pipe->scale.phase_step_y[0] / 2; pipe->scale.phase_step_y[0]
} else { >> pipe->chroma_sample_v;
pipe->scale.phase_step_x[i] = } else if (i > 0) {
pipe->scale.phase_step_x[0];
pipe->scale.phase_step_y[i] =
pipe->scale.phase_step_y[0];
}
} else {
pipe->scale.phase_step_x[i] = pipe->scale.phase_step_x[i] =
pipe->scale.phase_step_x[0]; pipe->scale.phase_step_x[0];
pipe->scale.phase_step_y[i] = pipe->scale.phase_step_y[i] =