]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/atmel-hlcdc: rotate planes counterclockwise
authorPeter Rosin <peda@axentia.se>
Thu, 10 Jan 2019 15:10:34 +0000 (15:10 +0000)
committerBoris Brezillon <bbrezillon@kernel.org>
Sun, 27 Jan 2019 08:19:20 +0000 (09:19 +0100)
Ouch, the driver rotates planes clockwise, which is simply not correct.

Signed-off-by: Peter Rosin <peda@axentia.se>
Signed-off-by: Boris Brezillon <bbrezillon@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190110151020.30468-2-peda@axentia.se
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c

index 9330a076e15a564a08fedba253cd69fbfc33b94c..8b42bff7636d9a3c6dfb98fd2ae8466d69b378f3 100644 (file)
@@ -692,13 +692,14 @@ static int atmel_hlcdc_plane_atomic_check(struct drm_plane *p,
 
                switch (state->base.rotation & DRM_MODE_ROTATE_MASK) {
                case DRM_MODE_ROTATE_90:
-                       offset = ((y_offset + state->src_y + patched_src_w - 1) /
-                                 ydiv) * fb->pitches[i];
-                       offset += ((x_offset + state->src_x) / xdiv) *
-                                 state->bpp[i];
-                       state->xstride[i] = ((patched_src_w - 1) / ydiv) *
-                                         fb->pitches[i];
-                       state->pstride[i] = -fb->pitches[i] - state->bpp[i];
+                       offset = ((y_offset + state->src_y) / ydiv) *
+                                fb->pitches[i];
+                       offset += ((x_offset + state->src_x + patched_src_h - 1) /
+                                  xdiv) * state->bpp[i];
+                       state->xstride[i] = -(((patched_src_w - 1) / ydiv) *
+                                           fb->pitches[i]) -
+                                         (2 * state->bpp[i]);
+                       state->pstride[i] = fb->pitches[i] - state->bpp[i];
                        break;
                case DRM_MODE_ROTATE_180:
                        offset = ((y_offset + state->src_y + patched_src_h - 1) /
@@ -710,14 +711,13 @@ static int atmel_hlcdc_plane_atomic_check(struct drm_plane *p,
                        state->pstride[i] = -2 * state->bpp[i];
                        break;
                case DRM_MODE_ROTATE_270:
-                       offset = ((y_offset + state->src_y) / ydiv) *
-                                fb->pitches[i];
-                       offset += ((x_offset + state->src_x + patched_src_h - 1) /
-                                  xdiv) * state->bpp[i];
-                       state->xstride[i] = -(((patched_src_w - 1) / ydiv) *
-                                           fb->pitches[i]) -
-                                         (2 * state->bpp[i]);
-                       state->pstride[i] = fb->pitches[i] - state->bpp[i];
+                       offset = ((y_offset + state->src_y + patched_src_w - 1) /
+                                 ydiv) * fb->pitches[i];
+                       offset += ((x_offset + state->src_x) / xdiv) *
+                                 state->bpp[i];
+                       state->xstride[i] = ((patched_src_w - 1) / ydiv) *
+                                         fb->pitches[i];
+                       state->pstride[i] = -fb->pitches[i] - state->bpp[i];
                        break;
                case DRM_MODE_ROTATE_0:
                default: