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:
parent
778f349a00
commit
a9335480c6
1 changed files with 8 additions and 13 deletions
|
@ -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] =
|
||||||
|
|
Loading…
Add table
Reference in a new issue