Browse Source

drm/omap: pass rotation to dispc

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>
Tomi Valkeinen 8 years ago
parent
commit
16f9ede51f
1 changed files with 2 additions and 0 deletions
  1. 2 0
      drivers/gpu/drm/omapdrm/omap_fb.c

+ 2 - 0
drivers/gpu/drm/omapdrm/omap_fb.c

@@ -193,6 +193,7 @@ void omap_framebuffer_update_scanout(struct drm_framebuffer *fb,
 		omap_gem_rotated_dma_addr(plane->bo, orient, x, y,
 		omap_gem_rotated_dma_addr(plane->bo, orient, x, y,
 					  &info->paddr);
 					  &info->paddr);
 		info->rotation_type = OMAP_DSS_ROT_TILER;
 		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);
 		info->screen_width  = omap_gem_tiled_stride(plane->bo, orient);
 	} else {
 	} else {
 		switch (state->rotation & DRM_MODE_ROTATE_MASK) {
 		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->paddr         = get_linear_addr(plane, format, 0, x, y);
 		info->rotation_type = OMAP_DSS_ROT_NONE;
 		info->rotation_type = OMAP_DSS_ROT_NONE;
+		info->rotation      = DRM_MODE_ROTATE_0;
 		info->screen_width  = plane->pitch;
 		info->screen_width  = plane->pitch;
 	}
 	}