mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 02:50:43 +00:00
V4L/DVB (10085): sh_mobile_ceu: add NV16 and NV61 support
This patch adds NV16/NV61 support to the sh_mobile_ceu driver. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
8be65dc596
commit
9e4a56d27f
1 changed files with 20 additions and 2 deletions
|
@ -177,6 +177,8 @@ static void sh_mobile_ceu_capture(struct sh_mobile_ceu_dev *pcdev)
|
|||
switch (icd->current_fmt->fourcc) {
|
||||
case V4L2_PIX_FMT_NV12:
|
||||
case V4L2_PIX_FMT_NV21:
|
||||
case V4L2_PIX_FMT_NV16:
|
||||
case V4L2_PIX_FMT_NV61:
|
||||
phys_addr += (icd->width * icd->height);
|
||||
ceu_write(pcdev, CDACR, phys_addr);
|
||||
}
|
||||
|
@ -407,6 +409,9 @@ static int sh_mobile_ceu_set_bus_param(struct soc_camera_device *icd,
|
|||
case V4L2_PIX_FMT_NV12:
|
||||
case V4L2_PIX_FMT_NV21:
|
||||
yuv_lineskip = 1; /* skip for NV12/21, no skip for NV16/61 */
|
||||
/* fall-through */
|
||||
case V4L2_PIX_FMT_NV16:
|
||||
case V4L2_PIX_FMT_NV61:
|
||||
yuv_mode = 1;
|
||||
switch (pcdev->camera_fmt->fourcc) {
|
||||
case V4L2_PIX_FMT_UYVY:
|
||||
|
@ -426,8 +431,9 @@ static int sh_mobile_ceu_set_bus_param(struct soc_camera_device *icd,
|
|||
}
|
||||
}
|
||||
|
||||
if (icd->current_fmt->fourcc == V4L2_PIX_FMT_NV21)
|
||||
value ^= 0x00000100; /* swap U, V to change from NV12->NV21 */
|
||||
if ((icd->current_fmt->fourcc == V4L2_PIX_FMT_NV21) ||
|
||||
(icd->current_fmt->fourcc == V4L2_PIX_FMT_NV61))
|
||||
value ^= 0x00000100; /* swap U, V to change from NV1x->NVx1 */
|
||||
|
||||
value |= (common_flags & SOCAM_VSYNC_ACTIVE_LOW) ? (1 << 1) : 0;
|
||||
value |= (common_flags & SOCAM_HSYNC_ACTIVE_LOW) ? (1 << 0) : 0;
|
||||
|
@ -509,6 +515,18 @@ static const struct soc_camera_data_format sh_mobile_ceu_formats[] = {
|
|||
.fourcc = V4L2_PIX_FMT_NV21,
|
||||
.colorspace = V4L2_COLORSPACE_JPEG,
|
||||
},
|
||||
{
|
||||
.name = "NV16",
|
||||
.depth = 16,
|
||||
.fourcc = V4L2_PIX_FMT_NV16,
|
||||
.colorspace = V4L2_COLORSPACE_JPEG,
|
||||
},
|
||||
{
|
||||
.name = "NV61",
|
||||
.depth = 16,
|
||||
.fourcc = V4L2_PIX_FMT_NV61,
|
||||
.colorspace = V4L2_COLORSPACE_JPEG,
|
||||
},
|
||||
};
|
||||
|
||||
static int sh_mobile_ceu_get_formats(struct soc_camera_device *icd, int idx,
|
||||
|
|
Loading…
Reference in a new issue