Dnia Åroda 18 maj 2011 o 16:11:30 Guennadi Liakhovetski napisaÅ(a): > Since V4L2_MBUS_FMT_* codes have become large and sparse, they cannot > be used as array indices anymore. Hi Guennadi, Thanks for taking care of this. Regards, Janusz > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx> > --- > drivers/media/video/omap1_camera.c | 41 > ++++++++++++++++++++++++++--------- 1 files changed, 30 > insertions(+), 11 deletions(-) > > diff --git a/drivers/media/video/omap1_camera.c b/drivers/media/video/omap1_camera.c > index 5954b93..fe577a9 100644 > --- a/drivers/media/video/omap1_camera.c > +++ b/drivers/media/video/omap1_camera.c > @@ -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 */ > -static const struct soc_mbus_pixelfmt omap1_cam_formats[] = { > - [V4L2_MBUS_FMT_UYVY8_2X8] = { > +static const struct soc_mbus_lookup omap1_cam_formats[] = { > +{ > + .code = V4L2_MBUS_FMT_UYVY8_2X8, > + .fmt = { > .fourcc = V4L2_PIX_FMT_YUYV, > .name = "YUYV", > .bits_per_sample = 8, > .packing = SOC_MBUS_PACKING_2X8_PADHI, > .order = SOC_MBUS_ORDER_BE, > }, > - [V4L2_MBUS_FMT_VYUY8_2X8] = { > +}, { > + .code = V4L2_MBUS_FMT_VYUY8_2X8, > + .fmt = { > .fourcc = V4L2_PIX_FMT_YVYU, > .name = "YVYU", > .bits_per_sample = 8, > .packing = SOC_MBUS_PACKING_2X8_PADHI, > .order = SOC_MBUS_ORDER_BE, > }, > - [V4L2_MBUS_FMT_YUYV8_2X8] = { > +}, { > + .code = V4L2_MBUS_FMT_YUYV8_2X8, > + .fmt = { > .fourcc = V4L2_PIX_FMT_UYVY, > .name = "UYVY", > .bits_per_sample = 8, > .packing = SOC_MBUS_PACKING_2X8_PADHI, > .order = SOC_MBUS_ORDER_BE, > }, > - [V4L2_MBUS_FMT_YVYU8_2X8] = { > +}, { > + .code = V4L2_MBUS_FMT_YVYU8_2X8, > + .fmt = { > .fourcc = V4L2_PIX_FMT_VYUY, > .name = "VYUY", > .bits_per_sample = 8, > .packing = SOC_MBUS_PACKING_2X8_PADHI, > .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, > .name = "RGB555", > .bits_per_sample = 8, > .packing = SOC_MBUS_PACKING_2X8_PADHI, > .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, > .name = "RGB555X", > .bits_per_sample = 8, > .packing = SOC_MBUS_PACKING_2X8_PADHI, > .order = SOC_MBUS_ORDER_BE, > }, > - [V4L2_MBUS_FMT_RGB565_2X8_BE] = { > +}, { > + .code = V4L2_MBUS_FMT_RGB565_2X8_BE, > + .fmt = { > .fourcc = V4L2_PIX_FMT_RGB565, > .name = "RGB565", > .bits_per_sample = 8, > .packing = SOC_MBUS_PACKING_2X8_PADHI, > .order = SOC_MBUS_ORDER_BE, > }, > - [V4L2_MBUS_FMT_RGB565_2X8_LE] = { > +}, { > + .code = V4L2_MBUS_FMT_RGB565_2X8_LE, > + .fmt = { > .fourcc = V4L2_PIX_FMT_RGB565X, > .name = "RGB565X", > .bits_per_sample = 8, > .packing = SOC_MBUS_PACKING_2X8_PADHI, > .order = SOC_MBUS_ORDER_BE, > }, > +}, > }; > > 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: > formats++; > 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++; > dev_dbg(dev, > "%s: providing format %s as byte swapped code #%d\n", > - __func__, omap1_cam_formats[code].name, code); > + __func__, xlate->host_fmt->name, code); > } > default: > if (xlate) -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html