diff mbox

[5/7] drm/omap: pass rotation to dispc

Message ID 1495007804-6133-6-git-send-email-tomi.valkeinen@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Tomi Valkeinen May 17, 2017, 7:56 a.m. UTC
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>
---
 drivers/gpu/drm/omapdrm/omap_fb.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Laurent Pinchart May 23, 2017, 2:06 p.m. UTC | #1
Hi Tomi,

Thank you for the patch.

On Wednesday 17 May 2017 10:56:42 Tomi Valkeinen wrote:
> 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>

I assume you've tested this patch series with TILER rotation, right ? If so,

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  drivers/gpu/drm/omapdrm/omap_fb.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c
> b/drivers/gpu/drm/omapdrm/omap_fb.c index b7e7038cd2ce..bd05976fc20b 100644
> --- a/drivers/gpu/drm/omapdrm/omap_fb.c
> +++ b/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,
>  					  &info->paddr);
>  		info->rotation_type = OMAP_DSS_ROT_TILER;
> +		info->rotation = state->rotation ?: DRM_ROTATE_0;
>  		info->screen_width  = omap_gem_tiled_stride(plane->bo, 
orient);
>  	} else {
>  		switch (state->rotation & DRM_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_ROTATE_0;
>  		info->screen_width  = plane->pitch;
>  	}
Tomi Valkeinen May 23, 2017, 2:36 p.m. UTC | #2
On 23/05/17 17:06, Laurent Pinchart wrote:
> Hi Tomi,
> 
> Thank you for the patch.
> 
> On Wednesday 17 May 2017 10:56:42 Tomi Valkeinen wrote:
>> 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>
> 
> I assume you've tested this patch series with TILER rotation, right ? If so,

For RGB formats, yes. YUV formats need the following patches.

 Tomi
diff mbox

Patch

diff --git a/drivers/gpu/drm/omapdrm/omap_fb.c b/drivers/gpu/drm/omapdrm/omap_fb.c
index b7e7038cd2ce..bd05976fc20b 100644
--- a/drivers/gpu/drm/omapdrm/omap_fb.c
+++ b/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,
 					  &info->paddr);
 		info->rotation_type = OMAP_DSS_ROT_TILER;
+		info->rotation = state->rotation ?: DRM_ROTATE_0;
 		info->screen_width  = omap_gem_tiled_stride(plane->bo, orient);
 	} else {
 		switch (state->rotation & DRM_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_ROTATE_0;
 		info->screen_width  = plane->pitch;
 	}