OSDN Git Service

drm/omap: pass rotation to dispc
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 16 May 2017 09:48:58 +0000 (12:48 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 2 Jun 2017 08:08:15 +0000 (11:08 +0300)
The omapdrm driver has not passed the rotation value to the dispc
driver. This doesn't affect RGB formats, but YUV formats don't work
without dispc knowing the orientation.

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

index 4093e0e..c7a8057 100644 (file)
@@ -193,6 +193,7 @@ void omap_framebuffer_update_scanout(struct drm_framebuffer *fb,
                omap_gem_rotated_dma_addr(plane->bo, orient, x, y,
                                          &info->paddr);
                info->rotation_type = OMAP_DSS_ROT_TILER;
+               info->rotation = state->rotation ?: DRM_MODE_ROTATE_0;
                info->screen_width  = omap_gem_tiled_stride(plane->bo, orient);
        } else {
                switch (state->rotation & DRM_MODE_ROTATE_MASK) {
@@ -210,6 +211,7 @@ void omap_framebuffer_update_scanout(struct drm_framebuffer *fb,
 
                info->paddr         = get_linear_addr(plane, format, 0, x, y);
                info->rotation_type = OMAP_DSS_ROT_NONE;
+               info->rotation      = DRM_MODE_ROTATE_0;
                info->screen_width  = plane->pitch;
        }