Messages in this thread | | | Date | Fri, 03 May 2013 17:47:43 +0400 | From | Sergei Shtylyov <> | Subject | Re: [PATCH] media: davinci: vpbe: fix layer availability for NV12 format |
| |
Hello.
On 03-05-2013 13:53, Prabhakar Lad wrote:
> From: Lad, Prabhakar <prabhakar.csengg@gmail.com>
> For NV12 format, even if display data is single image, > both VIDWIN0 and VIDWIN1 parameters must be used. The start > address of Y data plane and C data plane is configured in > VIDEOWIN0ADH/L and VIDEOWIN1ADH/L respectively. > cuurently only one layer was requested, which is suffice > for yuv422, but for yuv420(NV12) two layers are required and > fix the same by requesting for other layer if pix fmt is NV12 > during set_fmt.
> Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com> > --- > drivers/media/platform/davinci/vpbe_display.c | 16 ++++++++++++++++ > 1 files changed, 16 insertions(+), 0 deletions(-)
> diff --git a/drivers/media/platform/davinci/vpbe_display.c b/drivers/media/platform/davinci/vpbe_display.c > index 0341dcc..f2ee07b 100644 > --- a/drivers/media/platform/davinci/vpbe_display.c > +++ b/drivers/media/platform/davinci/vpbe_display.c > @@ -922,6 +922,22 @@ static int vpbe_display_s_fmt(struct file *file, void *priv, > other video window */ > > layer->pix_fmt = *pixfmt; > + if (pixfmt->pixelformat == V4L2_PIX_FMT_NV12 && > + cpu_is_davinci_dm365()) {
cpu_is_*() shouldn't be used in the drivers.
> + struct vpbe_layer *otherlayer; > + > + otherlayer = _vpbe_display_get_other_win_layer(disp_dev, layer); > + /* if other layer is available, only > + * claim it, do not configure it > + */ > + ret = osd_device->ops.request_layer(osd_device, > + otherlayer->layer_info.id); > + if (ret < 0) { > + v4l2_err(&vpbe_dev->v4l2_dev, > + "Display Manager failed to allocate layer\n"); > + return -EBUSY; > + } > + }
WBR, Sergei
| |