Linux-Media Archive on lore.kernel.org
 help / color / Atom feed
From: Hans Verkuil <hverkuil@xs4all.nl>
To: Benoit Parrot <bparrot@ti.com>
Cc: Prabhakar Lad <prabhakar.csengg@gmail.com>,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [Patch 12/13] media: am437x-vpfe: Remove per bus width static data
Date: Fri, 13 Sep 2019 15:19:52 +0200
Message-ID: <add3cb62-1391-f8e3-15f3-f1345e18da47@xs4all.nl> (raw)
In-Reply-To: <20190909162743.30114-13-bparrot@ti.com>

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 <bparrot@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 index

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-09 16:27 [Patch 00/13] media: am437x-vpfe: overdue maintenance Benoit Parrot
2019-09-09 16:27 ` [Patch 01/13] media: am437x-vpfe: Fix suspend path to always handle pinctrl config Benoit Parrot
2019-09-13 12:59   ` Hans Verkuil
2019-09-13 13:24     ` Benoit Parrot
2019-09-09 16:27 ` [Patch 02/13] media: am437x-vpfe: Fix missing first line Benoit Parrot
2019-09-13 13:00   ` Hans Verkuil
2019-09-13 13:25     ` Benoit Parrot
2019-09-09 16:27 ` [Patch 03/13] media: am437x-vpfe: Rework ISR routine for clarity Benoit Parrot
2019-09-09 16:27 ` [Patch 04/13] media: am437x-vpfe: Wait for end of frame before tear-down Benoit Parrot
2019-09-09 16:27 ` [Patch 05/13] media: am437x-vpfe: Streamlined vb2 buffer cleanup Benoit Parrot
2019-09-16  8:00   ` Lad, Prabhakar
2019-09-16 14:53     ` Benoit Parrot
2019-09-16 16:02       ` Lad, Prabhakar
2019-09-09 16:27 ` [Patch 06/13] media: am437x-vpfe: Setting STD to current value is not an error Benoit Parrot
2019-09-09 16:27 ` [Patch 07/13] media: am437x-vpfe: Use a per instance format array instead of a static one Benoit Parrot
2019-09-13 13:07   ` Hans Verkuil
2019-09-13 13:29     ` Benoit Parrot
2019-09-17 16:19     ` Benoit Parrot
2019-09-09 16:27 ` [Patch 08/13] media: am437x-vpfe: Maintain a reference to the current vpfe_fmt Benoit Parrot
2019-09-13 13:14   ` Hans Verkuil
2019-09-13 13:32     ` Benoit Parrot
2019-09-13 13:34       ` Hans Verkuil
2019-09-13 13:43         ` Benoit Parrot
2019-09-09 16:27 ` [Patch 09/13] media: am437x-vpfe: fix function trace debug log Benoit Parrot
2019-09-09 16:54   ` Joe Perches
2019-09-09 17:14     ` Benoit Parrot
2019-09-09 16:27 ` [Patch 10/13] media: am437x-vpfe: Remove print_fourcc helper Benoit Parrot
2019-09-09 16:39   ` Joe Perches
2019-09-09 17:12     ` Benoit Parrot
2019-09-09 16:27 ` [Patch 11/13] media: am437x-vpfe: TRY_FMT ioctl is not really trying anything Benoit Parrot
2019-09-09 16:27 ` [Patch 12/13] media: am437x-vpfe: Remove per bus width static data Benoit Parrot
2019-09-13 13:19   ` Hans Verkuil [this message]
2019-09-13 13:34     ` Benoit Parrot
2019-09-09 16:27 ` [Patch 13/13] media: am437x-vpfe: Switch to SPDX Licensing Benoit Parrot
2019-09-10 10:42 ` [Patch 00/13] media: am437x-vpfe: overdue maintenance Hans Verkuil
2019-09-10 16:20   ` Benoit Parrot

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=add3cb62-1391-f8e3-15f3-f1345e18da47@xs4all.nl \
    --to=hverkuil@xs4all.nl \
    --cc=bparrot@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=prabhakar.csengg@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-Media Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-media/0 linux-media/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-media linux-media/ https://lore.kernel.org/linux-media \
		linux-media@vger.kernel.org linux-media@archiver.kernel.org
	public-inbox-index linux-media

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-media


AGPL code for this site: git clone https://public-inbox.org/ public-inbox