On 9/9/19 6:27 PM, Benoit Parrot wrote:
> The bus related static data include in the vpfe_fmt
> static table can be derived dynamically instead.
> This simplify the table and it's use.

simplify -> simplifies
it's -> its

> 
> We instead replace the per bus data info with just
> the usual bit per pixel value for each supported

bit -> bits

> pixel format.
> 
> Signed-off-by: Benoit Parrot <bpar...@ti.com>
> ---
>  drivers/media/platform/am437x/am437x-vpfe.c | 56 ++++++---------------
>  drivers/media/platform/am437x/am437x-vpfe.h | 16 +-----
>  2 files changed, 16 insertions(+), 56 deletions(-)
> 
> diff --git a/drivers/media/platform/am437x/am437x-vpfe.c 
> b/drivers/media/platform/am437x/am437x-vpfe.c
> index 9759ed398943..9855d4cb1d13 100644
> --- a/drivers/media/platform/am437x/am437x-vpfe.c
> +++ b/drivers/media/platform/am437x/am437x-vpfe.c
> @@ -73,73 +73,43 @@ static struct vpfe_fmt formats[] = {
>       {
>               .fourcc         = V4L2_PIX_FMT_YUYV,
>               .code           = MEDIA_BUS_FMT_YUYV8_2X8,
> -             .l.width        = 10,
> -             .l.bpp          = 4,
> -             .s.width        = 8,
> -             .s.bpp          = 2,
> +             .bitsperpixel   = 16,
>       }, {
>               .fourcc         = V4L2_PIX_FMT_UYVY,
>               .code           = MEDIA_BUS_FMT_UYVY8_2X8,
> -             .l.width        = 10,
> -             .l.bpp          = 4,
> -             .s.width        = 8,
> -             .s.bpp          = 2,
> +             .bitsperpixel   = 16,
>       }, {
>               .fourcc         = V4L2_PIX_FMT_YVYU,
>               .code           = MEDIA_BUS_FMT_YVYU8_2X8,
> -             .l.width        = 10,
> -             .l.bpp          = 4,
> -             .s.width        = 8,
> -             .s.bpp          = 2,
> +             .bitsperpixel   = 16,
>       }, {
>               .fourcc         = V4L2_PIX_FMT_VYUY,
>               .code           = MEDIA_BUS_FMT_VYUY8_2X8,
> -             .l.width        = 10,
> -             .l.bpp          = 4,
> -             .s.width        = 8,
> -             .s.bpp          = 2,
> +             .bitsperpixel   = 16,
>       }, {
>               .fourcc         = V4L2_PIX_FMT_SBGGR8,
>               .code           = MEDIA_BUS_FMT_SBGGR8_1X8,
> -             .l.width        = 10,
> -             .l.bpp          = 2,
> -             .s.width        = 8,
> -             .s.bpp          = 1,
> +             .bitsperpixel   = 8,
>       }, {
>               .fourcc         = V4L2_PIX_FMT_SGBRG8,
>               .code           = MEDIA_BUS_FMT_SGBRG8_1X8,
> -             .l.width        = 10,
> -             .l.bpp          = 2,
> -             .s.width        = 8,
> -             .s.bpp          = 1,
> +             .bitsperpixel   = 8,
>       }, {
>               .fourcc         = V4L2_PIX_FMT_SGRBG8,
>               .code           = MEDIA_BUS_FMT_SGRBG8_1X8,
> -             .l.width        = 10,
> -             .l.bpp          = 2,
> -             .s.width        = 8,
> -             .s.bpp          = 1,
> +             .bitsperpixel   = 8,
>       }, {
>               .fourcc         = V4L2_PIX_FMT_SRGGB8,
>               .code           = MEDIA_BUS_FMT_SRGGB8_1X8,
> -             .l.width        = 10,
> -             .l.bpp          = 2,
> -             .s.width        = 8,
> -             .s.bpp          = 1,
> +             .bitsperpixel   = 8,
>       }, {
>               .fourcc         = V4L2_PIX_FMT_RGB565,
>               .code           = MEDIA_BUS_FMT_RGB565_2X8_LE,
> -             .l.width        = 10,
> -             .l.bpp          = 4,
> -             .s.width        = 8,
> -             .s.bpp          = 2,
> +             .bitsperpixel   = 16,
>       }, {
>               .fourcc         = V4L2_PIX_FMT_RGB565X,
>               .code           = MEDIA_BUS_FMT_RGB565_2X8_BE,
> -             .l.width        = 10,
> -             .l.bpp          = 4,
> -             .s.width        = 8,
> -             .s.bpp          = 2,
> +             .bitsperpixel   = 16,
>       },
>  };
>  
> @@ -184,9 +154,11 @@ static unsigned int __get_bytesperpixel(struct 
> vpfe_device *vpfe,
>  {
>       struct vpfe_subdev_info *sdinfo = vpfe->current_subdev;
>       unsigned int bus_width = sdinfo->vpfe_param.bus_width;
> -     u32 bpp;
> +     u32 bpp, bus_width_bytes, clocksperpixel;
>  
> -     bpp = (bus_width == 10) ? fmt->l.bpp : fmt->s.bpp;
> +     bus_width_bytes = ALIGN(bus_width, 8) >> 3;
> +     clocksperpixel = DIV_ROUND_UP(fmt->bitsperpixel, bus_width);
> +     bpp = clocksperpixel * bus_width_bytes;
>  
>       return bpp;
>  }
> diff --git a/drivers/media/platform/am437x/am437x-vpfe.h 
> b/drivers/media/platform/am437x/am437x-vpfe.h
> index 0d10d2b4d7a2..2c9e89395bea 100644
> --- a/drivers/media/platform/am437x/am437x-vpfe.h
> +++ b/drivers/media/platform/am437x/am437x-vpfe.h
> @@ -215,28 +215,16 @@ struct vpfe_ccdc {
>       u32 ccdc_ctx[VPFE_REG_END / sizeof(u32)];
>  };
>  
> -/*
> - * struct bus_format - VPFE bus format information
> - * @width: Bits per pixel (when transferred over a bus)
> - * @bpp: Bytes per pixel (when stored in memory)
> - */
> -struct bus_format {
> -     unsigned int width;
> -     unsigned int bpp;
> -};
> -
>  /*
>   * struct vpfe_fmt - VPFE media bus format information
>   * @fourcc: V4L2 pixel format code
>   * @code: V4L2 media bus format code
> - * @l: 10 bit bus format info
> - * @s: 8 bit bus format info
> + * @bitsperpixel: Bits per pixel over the bus
>   */
>  struct vpfe_fmt {
>       u32 fourcc;
>       u32 code;
> -     struct bus_format l;
> -     struct bus_format s;
> +     u32 bitsperpixel;
>  };
>  
>  /*
> 

Regards,

        Hans

Reply via email to