drm/amd/display: Incorrect Mirror Cositing
[WHY] hinit/vinit are incorrect in the case of mirroring. [HOW] Cositing sign must be flipped when image is mirrored in the vertical or horizontal direction. Cc: Mario Limonciello <mario.limonciello@amd.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org Reviewed-by: Samson Tam <samson.tam@amd.com> Signed-off-by: Jesse Agate <jesse.agate@amd.com> Signed-off-by: Brendan Leder <breleder@amd.com> Signed-off-by: Alex Hung <alex.hung@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
5949e7c489
commit
d07e142641
|
@ -641,16 +641,16 @@ static void spl_calculate_inits_and_viewports(struct spl_in *spl_in,
|
|||
/* this gives the direction of the cositing (negative will move
|
||||
* left, right otherwise)
|
||||
*/
|
||||
int sign = 1;
|
||||
int h_sign = flip_horz_scan_dir ? -1 : 1;
|
||||
int v_sign = flip_vert_scan_dir ? -1 : 1;
|
||||
|
||||
switch (spl_in->basic_in.cositing) {
|
||||
|
||||
case CHROMA_COSITING_TOPLEFT:
|
||||
init_adj_h = spl_fixpt_from_fraction(sign, 4);
|
||||
init_adj_v = spl_fixpt_from_fraction(sign, 4);
|
||||
init_adj_h = spl_fixpt_from_fraction(h_sign, 4);
|
||||
init_adj_v = spl_fixpt_from_fraction(v_sign, 4);
|
||||
break;
|
||||
case CHROMA_COSITING_LEFT:
|
||||
init_adj_h = spl_fixpt_from_fraction(sign, 4);
|
||||
init_adj_h = spl_fixpt_from_fraction(h_sign, 4);
|
||||
init_adj_v = spl_fixpt_zero;
|
||||
break;
|
||||
case CHROMA_COSITING_NONE:
|
||||
|
|
Loading…
Reference in New Issue