mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-23 05:20:08 +07:00
[media] V4L: omap1-camera: fix huge lookup array
Since V4L2_MBUS_FMT_* codes have become large and sparse, they cannot be used as array indices anymore. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
93f116d595
commit
e9ceeced6f
@ -990,63 +990,80 @@ static void omap1_cam_remove_device(struct soc_camera_device *icd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Duplicate standard formats based on host capability of byte swapping */
|
/* Duplicate standard formats based on host capability of byte swapping */
|
||||||
static const struct soc_mbus_pixelfmt omap1_cam_formats[] = {
|
static const struct soc_mbus_lookup omap1_cam_formats[] = {
|
||||||
[V4L2_MBUS_FMT_UYVY8_2X8] = {
|
{
|
||||||
|
.code = V4L2_MBUS_FMT_UYVY8_2X8,
|
||||||
|
.fmt = {
|
||||||
.fourcc = V4L2_PIX_FMT_YUYV,
|
.fourcc = V4L2_PIX_FMT_YUYV,
|
||||||
.name = "YUYV",
|
.name = "YUYV",
|
||||||
.bits_per_sample = 8,
|
.bits_per_sample = 8,
|
||||||
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
||||||
.order = SOC_MBUS_ORDER_BE,
|
.order = SOC_MBUS_ORDER_BE,
|
||||||
},
|
},
|
||||||
[V4L2_MBUS_FMT_VYUY8_2X8] = {
|
}, {
|
||||||
|
.code = V4L2_MBUS_FMT_VYUY8_2X8,
|
||||||
|
.fmt = {
|
||||||
.fourcc = V4L2_PIX_FMT_YVYU,
|
.fourcc = V4L2_PIX_FMT_YVYU,
|
||||||
.name = "YVYU",
|
.name = "YVYU",
|
||||||
.bits_per_sample = 8,
|
.bits_per_sample = 8,
|
||||||
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
||||||
.order = SOC_MBUS_ORDER_BE,
|
.order = SOC_MBUS_ORDER_BE,
|
||||||
},
|
},
|
||||||
[V4L2_MBUS_FMT_YUYV8_2X8] = {
|
}, {
|
||||||
|
.code = V4L2_MBUS_FMT_YUYV8_2X8,
|
||||||
|
.fmt = {
|
||||||
.fourcc = V4L2_PIX_FMT_UYVY,
|
.fourcc = V4L2_PIX_FMT_UYVY,
|
||||||
.name = "UYVY",
|
.name = "UYVY",
|
||||||
.bits_per_sample = 8,
|
.bits_per_sample = 8,
|
||||||
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
||||||
.order = SOC_MBUS_ORDER_BE,
|
.order = SOC_MBUS_ORDER_BE,
|
||||||
},
|
},
|
||||||
[V4L2_MBUS_FMT_YVYU8_2X8] = {
|
}, {
|
||||||
|
.code = V4L2_MBUS_FMT_YVYU8_2X8,
|
||||||
|
.fmt = {
|
||||||
.fourcc = V4L2_PIX_FMT_VYUY,
|
.fourcc = V4L2_PIX_FMT_VYUY,
|
||||||
.name = "VYUY",
|
.name = "VYUY",
|
||||||
.bits_per_sample = 8,
|
.bits_per_sample = 8,
|
||||||
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
||||||
.order = SOC_MBUS_ORDER_BE,
|
.order = SOC_MBUS_ORDER_BE,
|
||||||
},
|
},
|
||||||
[V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE] = {
|
}, {
|
||||||
|
.code = V4L2_MBUS_FMT_RGB555_2X8_PADHI_BE,
|
||||||
|
.fmt = {
|
||||||
.fourcc = V4L2_PIX_FMT_RGB555,
|
.fourcc = V4L2_PIX_FMT_RGB555,
|
||||||
.name = "RGB555",
|
.name = "RGB555",
|
||||||
.bits_per_sample = 8,
|
.bits_per_sample = 8,
|
||||||
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
||||||
.order = SOC_MBUS_ORDER_BE,
|
.order = SOC_MBUS_ORDER_BE,
|
||||||
},
|
},
|
||||||
[V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE] = {
|
}, {
|
||||||
|
.code = V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE,
|
||||||
|
.fmt = {
|
||||||
.fourcc = V4L2_PIX_FMT_RGB555X,
|
.fourcc = V4L2_PIX_FMT_RGB555X,
|
||||||
.name = "RGB555X",
|
.name = "RGB555X",
|
||||||
.bits_per_sample = 8,
|
.bits_per_sample = 8,
|
||||||
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
||||||
.order = SOC_MBUS_ORDER_BE,
|
.order = SOC_MBUS_ORDER_BE,
|
||||||
},
|
},
|
||||||
[V4L2_MBUS_FMT_RGB565_2X8_BE] = {
|
}, {
|
||||||
|
.code = V4L2_MBUS_FMT_RGB565_2X8_BE,
|
||||||
|
.fmt = {
|
||||||
.fourcc = V4L2_PIX_FMT_RGB565,
|
.fourcc = V4L2_PIX_FMT_RGB565,
|
||||||
.name = "RGB565",
|
.name = "RGB565",
|
||||||
.bits_per_sample = 8,
|
.bits_per_sample = 8,
|
||||||
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
||||||
.order = SOC_MBUS_ORDER_BE,
|
.order = SOC_MBUS_ORDER_BE,
|
||||||
},
|
},
|
||||||
[V4L2_MBUS_FMT_RGB565_2X8_LE] = {
|
}, {
|
||||||
|
.code = V4L2_MBUS_FMT_RGB565_2X8_LE,
|
||||||
|
.fmt = {
|
||||||
.fourcc = V4L2_PIX_FMT_RGB565X,
|
.fourcc = V4L2_PIX_FMT_RGB565X,
|
||||||
.name = "RGB565X",
|
.name = "RGB565X",
|
||||||
.bits_per_sample = 8,
|
.bits_per_sample = 8,
|
||||||
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
.packing = SOC_MBUS_PACKING_2X8_PADHI,
|
||||||
.order = SOC_MBUS_ORDER_BE,
|
.order = SOC_MBUS_ORDER_BE,
|
||||||
},
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static int omap1_cam_get_formats(struct soc_camera_device *icd,
|
static int omap1_cam_get_formats(struct soc_camera_device *icd,
|
||||||
@ -1085,12 +1102,14 @@ static int omap1_cam_get_formats(struct soc_camera_device *icd,
|
|||||||
case V4L2_MBUS_FMT_RGB565_2X8_LE:
|
case V4L2_MBUS_FMT_RGB565_2X8_LE:
|
||||||
formats++;
|
formats++;
|
||||||
if (xlate) {
|
if (xlate) {
|
||||||
xlate->host_fmt = &omap1_cam_formats[code];
|
xlate->host_fmt = soc_mbus_find_fmtdesc(code,
|
||||||
|
omap1_cam_formats,
|
||||||
|
ARRAY_SIZE(omap1_cam_formats));
|
||||||
xlate->code = code;
|
xlate->code = code;
|
||||||
xlate++;
|
xlate++;
|
||||||
dev_dbg(dev,
|
dev_dbg(dev,
|
||||||
"%s: providing format %s as byte swapped code #%d\n",
|
"%s: providing format %s as byte swapped code #%d\n",
|
||||||
__func__, omap1_cam_formats[code].name, code);
|
__func__, xlate->host_fmt->name, code);
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
if (xlate)
|
if (xlate)
|
||||||
|
Loading…
Reference in New Issue
Block a user