diff mbox

YUV rotation support for DSS2 - 2.6.29 [WAS Re: Hello Tomi Valkeinen, I have some questions about dss2 driver.]

Message ID 792f5f410904131400v3199fa09w14c24f01f468d1c2@mail.gmail.com (mailing list archive)
State Not Applicable, archived
Delegated to: Tomi Valkeinen
Headers show

Commit Message

Tim Yamin April 13, 2009, 9 p.m. UTC
Hi Hardik,

Thanks for fixing up the patch. I can confirm that YUV rotation is
fine and patches are ready to be merged -- although the attached fix
is needed as well for the userspace layer to know the correct row
strides when writing YUV to the framebuffer.

I'm still having VID1_FIFO_UNDERFLOW errors when I try to play rotated
video on plane 1 and plane 0 is rotated as well. Do you have any ideas
how to debug this further?

Thanks,

Tim

> Hi Tomi,
> If YUV rotation with frame buffer passes can you please review the patch and merge it to your latest.
>
> Regards,
> Hardik

Comments

Hardik Shah April 15, 2009, 9:35 a.m. UTC | #1
Hi Tomi,
Can you please merge the YUV rotation patches with your latest?

Thanks and Regards,
Haardik

> -----Original Message-----
> From: plasmaroo@gmail.com [mailto:plasmaroo@gmail.com] On Behalf Of Tim Yamin
> Sent: Tuesday, April 14, 2009 2:30 AM
> To: Shah, Hardik
> Cc: gregoire@gentil.com; tomi.valkeinen@nokia.com; linux-omap@vger.kernel.org;
> beagleboard@googlegroups.com
> Subject: Re: YUV rotation support for DSS2 - 2.6.29 [WAS Re: Hello Tomi
> Valkeinen, I have some questions about dss2 driver.]
> 
> Hi Hardik,
> 
> Thanks for fixing up the patch. I can confirm that YUV rotation is
> fine and patches are ready to be merged -- although the attached fix
> is needed as well for the userspace layer to know the correct row
> strides when writing YUV to the framebuffer.
> 
> I'm still having VID1_FIFO_UNDERFLOW errors when I try to play rotated
> video on plane 1 and plane 0 is rotated as well. Do you have any ideas
> how to debug this further?
> 
> Thanks,
> 
> Tim
> 
> > Hi Tomi,
> > If YUV rotation with frame buffer passes can you please review the patch and
> merge it to your latest.
> >
> > Regards,
> > Hardik
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hardik Shah April 15, 2009, 10:07 a.m. UTC | #2
> -----Original Message-----
> From: plasmaroo@gmail.com [mailto:plasmaroo@gmail.com] On Behalf Of Tim Yamin
> Sent: Tuesday, April 14, 2009 2:30 AM
> To: Shah, Hardik
> Cc: gregoire@gentil.com; tomi.valkeinen@nokia.com; linux-omap@vger.kernel.org;
> beagleboard@googlegroups.com
> Subject: Re: YUV rotation support for DSS2 - 2.6.29 [WAS Re: Hello Tomi
> Valkeinen, I have some questions about dss2 driver.]
> 
> Hi Hardik,
> 
> Thanks for fixing up the patch. I can confirm that YUV rotation is
> fine and patches are ready to be merged -- although the attached fix
> is needed as well for the userspace layer to know the correct row
> strides when writing YUV to the framebuffer.
> 
> I'm still having VID1_FIFO_UNDERFLOW errors when I try to play rotated
> video on plane 1 and plane 0 is rotated as well. Do you have any ideas
> how to debug this further?
[Shah, Hardik] Hi Tim,
Try to increase the pixel clock to functional clock ratio to 6 or 8.  This may help as you are getting under run errors.

Thanks,
Hardik 
> 
> Thanks,
> 
> Tim
> 
> > Hi Tomi,
> > If YUV rotation with frame buffer passes can you please review the patch and
> merge it to your latest.
> >
> > Regards,
> > Hardik
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tim Yamin April 15, 2009, 7:16 p.m. UTC | #3
Hi Hardik,

2009/4/15 Shah, Hardik <hardik.shah@ti.com>:
> [Shah, Hardik] Hi Tim,
> Try to increase the pixel clock to functional clock ratio to 6 or 8.  This may help as you are getting under run errors.

Thanks for the help -- so it seems that it's a clock issue. At 800x600
rotation of both planes simultaneously by 90 degrees is working just
fine. At 1024x768 it seems that it's not possible because of the
clocking: the pixel clock is 56MHz so the maximum
OMAP2_DSS_MIN_FCK_PER_PCK constant is 3, which does not seem to be
sufficient.

Cheers,

Tim
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Tomi Valkeinen April 16, 2009, 10:06 a.m. UTC | #4
Hi Hardik and Tim,

Thanks for the patches. They look fine to me, and are applied to my
tree.

 Tomi

On Wed, 2009-04-15 at 11:35 +0200, ext Shah, Hardik wrote:
> Hi Tomi,
> Can you please merge the YUV rotation patches with your latest?
> 
> Thanks and Regards,
> Haardik
> 
> > -----Original Message-----
> > From: plasmaroo@gmail.com [mailto:plasmaroo@gmail.com] On Behalf Of Tim Yamin
> > Sent: Tuesday, April 14, 2009 2:30 AM
> > To: Shah, Hardik
> > Cc: gregoire@gentil.com; tomi.valkeinen@nokia.com; linux-omap@vger.kernel.org;
> > beagleboard@googlegroups.com
> > Subject: Re: YUV rotation support for DSS2 - 2.6.29 [WAS Re: Hello Tomi
> > Valkeinen, I have some questions about dss2 driver.]
> > 
> > Hi Hardik,
> > 
> > Thanks for fixing up the patch. I can confirm that YUV rotation is
> > fine and patches are ready to be merged -- although the attached fix
> > is needed as well for the userspace layer to know the correct row
> > strides when writing YUV to the framebuffer.
> > 
> > I'm still having VID1_FIFO_UNDERFLOW errors when I try to play rotated
> > video on plane 1 and plane 0 is rotated as well. Do you have any ideas
> > how to debug this further?
> > 
> > Thanks,
> > 
> > Tim
> > 
> > > Hi Tomi,
> > > If YUV rotation with frame buffer passes can you please review the patch and
> > merge it to your latest.
> > >
> > > Regards,
> > > Hardik

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

From 4ba3f8b1d2feef00ac6c8de827262d255cebb185 Mon Sep 17 00:00:00 2001
From: Tim Yamin <plasm@roo.me.uk>
Date: Mon, 13 Apr 2009 13:57:42 -0700
Subject: [PATCH] DSS2: OMAPFB: Set line_length correctly for YUV with VRFB.

Signed-off-by: Tim Yamin <plasm@roo.me.uk>
---
 drivers/video/omap2/omapfb/omapfb-main.c |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c
index 9043265..675a7c9 100644
--- a/drivers/video/omap2/omapfb/omapfb-main.c
+++ b/drivers/video/omap2/omapfb/omapfb-main.c
@@ -377,10 +377,19 @@  void set_fb_fix(struct fb_info *fbi)
 	fbi->screen_base = (char __iomem *)omapfb_get_region_vaddr(ofbi);
 
 	/* used by mmap in fbmem.c */
-	if (ofbi->rotation_type == OMAP_DSS_ROT_VRFB)
-		fix->line_length =
-			(OMAP_VRFB_LINE_LEN * var->bits_per_pixel) >> 3;
-	else
+	if (ofbi->rotation_type == OMAP_DSS_ROT_VRFB) {
+		switch (var->nonstd) {
+		case OMAPFB_COLOR_YUV422:
+		case OMAPFB_COLOR_YUY422:
+			fix->line_length =
+				(OMAP_VRFB_LINE_LEN * var->bits_per_pixel) >> 2;
+			break;
+		default:
+			fix->line_length =
+				(OMAP_VRFB_LINE_LEN * var->bits_per_pixel) >> 3;
+			break;
+		}
+	} else
 		fix->line_length =
 			(var->xres_virtual * var->bits_per_pixel) >> 3;
 	fix->smem_start = omapfb_get_region_paddr(ofbi);
@@ -689,7 +698,18 @@  static int omapfb_setup_overlay(struct fb_info *fbi, struct omap_overlay *ovl,
 		goto err;
 	}
 
-	screen_width = fix->line_length / (var->bits_per_pixel >> 3);
+	switch (var->nonstd) {
+	case OMAPFB_COLOR_YUV422:
+	case OMAPFB_COLOR_YUY422:
+		if (ofbi->rotation_type == OMAP_DSS_ROT_VRFB) {
+			screen_width = fix->line_length
+				/ (var->bits_per_pixel >> 2);
+			break;
+		}
+	default:
+		screen_width = fix->line_length / (var->bits_per_pixel >> 3);
+		break;
+	}
 
 	ovl->get_overlay_info(ovl, &info);
 
-- 
1.5.6.3