drm/omap: fix YUV422 90/270 rotation with mirroring
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 16 May 2017 12:25:45 +0000 (15:25 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 2 Jun 2017 08:09:33 +0000 (11:09 +0300)
When rotating 90/270 + mirroring with YUV422, the end result will have
adjacent pixels swapped. The problem is that
dispc_ovl_set_rotation_attrs() has wrong rotation values for these
cases.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
drivers/gpu/drm/omapdrm/dss/dispc.c

index 18e9dff2f1b2e043920e31dad9888c75d5749c56..fd7504b37e3bf73ba91a0fca770235960d91c557 100644 (file)
@@ -1819,13 +1819,13 @@ static void dispc_ovl_set_rotation_attrs(enum omap_plane_id plane, u8 rotation,
                                vidrot = 2;
                                break;
                        case DRM_MODE_ROTATE_90:
-                               vidrot = 3;
+                               vidrot = 1;
                                break;
                        case DRM_MODE_ROTATE_180:
                                vidrot = 0;
                                break;
                        case DRM_MODE_ROTATE_270:
-                               vidrot = 1;
+                               vidrot = 3;
                                break;
                        }
                } else {