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.liakhovet...@gmx.de>
> ---
>  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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to