davinci: vpif_capture: fix default pixel format for BT.656/BT.1120 video
Commit Message
For both BT.656 and BT.1120 video, the pixel format
used by VPIF is Y/CbCr 4:2:2 in semi-planar format
(Luma in one plane and Chroma in another). This
corresponds to NV16 pixel format.
This is documented in section 36.2.3 of OMAP-L138
Technical Reference Manual, SPRUH77A.
The VPIF driver incorrectly sets the default format
to V4L2_PIX_FMT_YUV422P. Fix it.
Reported-by: Alejandro Hernandez <ajhernandez@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
---
drivers/media/platform/davinci/vpif_capture.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Comments
Sekhar Nori <nsekhar@ti.com> writes:
> For both BT.656 and BT.1120 video, the pixel format
> used by VPIF is Y/CbCr 4:2:2 in semi-planar format
> (Luma in one plane and Chroma in another). This
> corresponds to NV16 pixel format.
>
> This is documented in section 36.2.3 of OMAP-L138
> Technical Reference Manual, SPRUH77A.
>
> The VPIF driver incorrectly sets the default format
> to V4L2_PIX_FMT_YUV422P. Fix it.
>
> Reported-by: Alejandro Hernandez <ajhernandez@ti.com>
> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Acked-by: Kevin Hilman <khilman@baylibre.com>
Hi Sekhar,
Thanks for the patch.
On Fri, May 26, 2017 at 11:55 AM, Sekhar Nori <nsekhar@ti.com> wrote:
> For both BT.656 and BT.1120 video, the pixel format
> used by VPIF is Y/CbCr 4:2:2 in semi-planar format
> (Luma in one plane and Chroma in another). This
> corresponds to NV16 pixel format.
>
> This is documented in section 36.2.3 of OMAP-L138
> Technical Reference Manual, SPRUH77A.
>
> The VPIF driver incorrectly sets the default format
> to V4L2_PIX_FMT_YUV422P. Fix it.
>
> Reported-by: Alejandro Hernandez <ajhernandez@ti.com>
> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Can you also post a similar patch for vpif_display as well ?
Cheers,
--Prabhakar Lad
On Tuesday 30 May 2017 03:10 PM, Lad, Prabhakar wrote:
> Hi Sekhar,
>
> Thanks for the patch.
>
> On Fri, May 26, 2017 at 11:55 AM, Sekhar Nori <nsekhar@ti.com> wrote:
>> For both BT.656 and BT.1120 video, the pixel format
>> used by VPIF is Y/CbCr 4:2:2 in semi-planar format
>> (Luma in one plane and Chroma in another). This
>> corresponds to NV16 pixel format.
>>
>> This is documented in section 36.2.3 of OMAP-L138
>> Technical Reference Manual, SPRUH77A.
>>
>> The VPIF driver incorrectly sets the default format
>> to V4L2_PIX_FMT_YUV422P. Fix it.
>>
>> Reported-by: Alejandro Hernandez <ajhernandez@ti.com>
>> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
>
> Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Thanks!
>
> Can you also post a similar patch for vpif_display as well ?
Sure. The LCDK board I am working on does not have the VPIF display. But
I should be able to test that on the EVM.
Thanks,
Sekhar
Sekhar Nori <nsekhar@ti.com> wrote on Fri [2017-May-26 16:25:27 +0530]:
> For both BT.656 and BT.1120 video, the pixel format
> used by VPIF is Y/CbCr 4:2:2 in semi-planar format
> (Luma in one plane and Chroma in another). This
> corresponds to NV16 pixel format.
>
> This is documented in section 36.2.3 of OMAP-L138
> Technical Reference Manual, SPRUH77A.
>
> The VPIF driver incorrectly sets the default format
> to V4L2_PIX_FMT_YUV422P. Fix it.
>
> Reported-by: Alejandro Hernandez <ajhernandez@ti.com>
> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
> ---
> drivers/media/platform/davinci/vpif_capture.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
Acked-by: Benoit Parrot <bparrot@ti.com>
@@ -513,7 +513,7 @@ static int vpif_update_std_info(struct channel_obj *ch)
if (ch->vpifparams.iface.if_type == VPIF_IF_RAW_BAYER)
common->fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_SBGGR8;
else
- common->fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV422P;
+ common->fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_NV16;
common->fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
@@ -917,8 +917,8 @@ static int vpif_enum_fmt_vid_cap(struct file *file, void *priv,
fmt->pixelformat = V4L2_PIX_FMT_SBGGR8;
} else {
fmt->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- strcpy(fmt->description, "YCbCr4:2:2 YC Planar");
- fmt->pixelformat = V4L2_PIX_FMT_YUV422P;
+ strcpy(fmt->description, "YCbCr4:2:2 Semi-Planar");
+ fmt->pixelformat = V4L2_PIX_FMT_NV16;
}
return 0;
}
@@ -946,8 +946,8 @@ static int vpif_try_fmt_vid_cap(struct file *file, void *priv,
if (pixfmt->pixelformat != V4L2_PIX_FMT_SBGGR8)
pixfmt->pixelformat = V4L2_PIX_FMT_SBGGR8;
} else {
- if (pixfmt->pixelformat != V4L2_PIX_FMT_YUV422P)
- pixfmt->pixelformat = V4L2_PIX_FMT_YUV422P;
+ if (pixfmt->pixelformat != V4L2_PIX_FMT_NV16)
+ pixfmt->pixelformat = V4L2_PIX_FMT_NV16;
}
common->fmt.fmt.pix.pixelformat = pixfmt->pixelformat;