All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: "Niklas Söderlund" <niklas.soderlund+renesas@ragnatech.se>
Cc: Hans Verkuil <hverkuil@xs4all.nl>,
	Kieran Bingham <kieran.bingham@ideasonboard.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	tomoharu.fukawa.eb@renesas.com, linux-media@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org
Subject: Re: [PATCH v6 03/25] rcar-vin: move chip information to own struct
Date: Wed, 23 Aug 2017 18:49:49 +0300	[thread overview]
Message-ID: <2438024.1X1RK6JS63@avalon> (raw)
In-Reply-To: <20170822232640.26147-4-niklas.soderlund+renesas@ragnatech.se>

Hi Niklas,

Thank you for the patch.

On Wednesday, 23 August 2017 02:26:18 EEST Niklas Söderlund wrote:
> When Gen3 support is added to the driver more then chip id will be

s/then/than/
s/id/ID/

> different for the different Soc. To avoid a lot of if statements in the

s/Soc/SoCs/

> code create a struct chip_info to contain this information.

s/contain/store/

> 
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> ---
>  drivers/media/platform/rcar-vin/rcar-core.c | 49 ++++++++++++++++++++-----
>  drivers/media/platform/rcar-vin/rcar-v4l2.c |  3 +-
>  drivers/media/platform/rcar-vin/rcar-vin.h  | 12 +++++--
>  3 files changed, 53 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/media/platform/rcar-vin/rcar-core.c
> b/drivers/media/platform/rcar-vin/rcar-core.c index
> aefbe8e3ccddb3e4..dae38de706b66b64 100644
> --- a/drivers/media/platform/rcar-vin/rcar-core.c
> +++ b/drivers/media/platform/rcar-vin/rcar-core.c
> @@ -277,14 +277,47 @@ static int rvin_digital_graph_init(struct rvin_dev
> *vin) * Platform Device Driver
>   */
> 
> +static const struct rvin_info rcar_info_h1 = {
> +	.chip = RCAR_H1,
> +};
> +
> +static const struct rvin_info rcar_info_m1 = {
> +	.chip = RCAR_M1,
> +};
> +
> +static const struct rvin_info rcar_info_gen2 = {
> +	.chip = RCAR_GEN2,
> +};
> +
>  static const struct of_device_id rvin_of_id_table[] = {
> -	{ .compatible = "renesas,vin-r8a7794", .data = (void *)RCAR_GEN2 },
> -	{ .compatible = "renesas,vin-r8a7793", .data = (void *)RCAR_GEN2 },
> -	{ .compatible = "renesas,vin-r8a7791", .data = (void *)RCAR_GEN2 },
> -	{ .compatible = "renesas,vin-r8a7790", .data = (void *)RCAR_GEN2 },
> -	{ .compatible = "renesas,vin-r8a7779", .data = (void *)RCAR_H1 },
> -	{ .compatible = "renesas,vin-r8a7778", .data = (void *)RCAR_M1 },
> -	{ .compatible = "renesas,rcar-gen2-vin", .data = (void *)RCAR_GEN2 },
> +	{
> +		.compatible = "renesas,vin-r8a7794",
> +		.data = &rcar_info_gen2,
> +	},
> +	{
> +		.compatible = "renesas,vin-r8a7793",
> +		.data = &rcar_info_gen2,
> +	},
> +	{
> +		.compatible = "renesas,vin-r8a7791",
> +		.data = &rcar_info_gen2,
> +	},
> +	{
> +		.compatible = "renesas,vin-r8a7790",
> +		.data = &rcar_info_gen2,
> +	},
> +	{
> +		.compatible = "renesas,vin-r8a7779",
> +		.data = &rcar_info_h1,
> +	},
> +	{
> +		.compatible = "renesas,vin-r8a7778",
> +		.data = &rcar_info_m1,
> +	},

How about sorting the entries by compatible string ?

> +	{
> +		.compatible = "renesas,rcar-gen2-vin",
> +		.data = &rcar_info_gen2,
> +	},

Do we need the SoC-specific entries for the Gen2 SoCs if we have a generic one 
?

>  	{ },
>  };
>  MODULE_DEVICE_TABLE(of, rvin_of_id_table);
> @@ -305,7 +338,7 @@ static int rcar_vin_probe(struct platform_device *pdev)
>  		return -ENODEV;
> 
>  	vin->dev = &pdev->dev;
> -	vin->chip = (enum chip_id)match->data;
> +	vin->info = match->data;
> 
>  	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>  	if (mem == NULL)
> diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c
> b/drivers/media/platform/rcar-vin/rcar-v4l2.c index
> 81ff59c3b4744075..02a08cf5acfce1ce 100644
> --- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
> +++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
> @@ -266,7 +266,8 @@ static int __rvin_try_format(struct rvin_dev *vin,
>  	pix->sizeimage = max_t(u32, pix->sizeimage,
>  			       rvin_format_sizeimage(pix));
> 
> -	if (vin->chip == RCAR_M1 && pix->pixelformat == V4L2_PIX_FMT_XBGR32) {
> +	if (vin->info->chip == RCAR_M1 &&
> +	    pix->pixelformat == V4L2_PIX_FMT_XBGR32) {
>  		vin_err(vin, "pixel format XBGR32 not supported on M1\n");
>  		return -EINVAL;
>  	}
> diff --git a/drivers/media/platform/rcar-vin/rcar-vin.h
> b/drivers/media/platform/rcar-vin/rcar-vin.h index
> 9d0d4a5001b6ccd8..13466dfd72292fc0 100644
> --- a/drivers/media/platform/rcar-vin/rcar-vin.h
> +++ b/drivers/media/platform/rcar-vin/rcar-vin.h
> @@ -88,11 +88,19 @@ struct rvin_graph_entity {
>  	unsigned int sink_pad;
>  };
> 
> +/**
> + * struct rvin_info - Information about the particular VIN implementation
> + * @chip:		type of VIN chip
> + */
> +struct rvin_info {
> +	enum chip_id chip;
> +};
> +
>  /**
>   * struct rvin_dev - Renesas VIN device structure
>   * @dev:		(OF) device
>   * @base:		device I/O register space remapped to virtual memory
> - * @chip:		type of VIN chip
> + * @info:		info about VIN instance
>   *
>   * @vdev:		V4L2 video device associated with VIN
>   * @v4l2_dev:		V4L2 device
> @@ -120,7 +128,7 @@ struct rvin_graph_entity {
>  struct rvin_dev {
>  	struct device *dev;
>  	void __iomem *base;
> -	enum chip_id chip;
> +	const struct rvin_info *info;
> 
>  	struct video_device vdev;
>  	struct v4l2_device v4l2_dev;


-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2017-08-23 15:49 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-22 23:26 [PATCH v6 00/25] rcar-vin: Add Gen3 with media controller Niklas Söderlund
2017-08-22 23:26 ` [PATCH v6 01/25] rcar-vin: add Gen3 devicetree bindings documentation Niklas Söderlund
2017-08-23  8:14   ` Laurent Pinchart
2017-08-22 23:26 ` [PATCH v6 02/25] rcar-vin: register the video device at probe time Niklas Söderlund
2017-08-23  8:43   ` Laurent Pinchart
2017-08-22 23:26 ` [PATCH v6 03/25] rcar-vin: move chip information to own struct Niklas Söderlund
2017-08-23 15:49   ` Laurent Pinchart [this message]
2017-09-25  9:44   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 04/25] rcar-vin: move max width and height information to chip information Niklas Söderlund
2017-09-25  9:45   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 05/25] rcar-vin: change name of video device Niklas Söderlund
2017-09-25  9:46   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 06/25] rcar-vin: move functions regarding scaling Niklas Söderlund
2017-09-25  9:46   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 07/25] rcar-vin: all Gen2 boards can scale simplify logic Niklas Söderlund
2017-09-25  9:48   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 08/25] rcar-vin: do not reset crop and compose when setting format Niklas Söderlund
2017-09-25  9:49   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 09/25] rcar-vin: do not allow changing scaling and composing while streaming Niklas Söderlund
2017-09-25  9:50   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 10/25] rcar-vin: read subdevice format for crop only when needed Niklas Söderlund
2017-09-25  9:54   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 11/25] rcar-vin: fix handling of single field frames (top, bottom and alternate fields) Niklas Söderlund
2017-09-25  9:58   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 12/25] rcar-vin: move media bus configuration to struct rvin_info Niklas Söderlund
2017-09-25 10:00   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 13/25] rcar-vin: enable Gen3 hardware configuration Niklas Söderlund
2017-09-25 10:01   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 14/25] rcar-vin: add functions to manipulate Gen3 CHSEL value Niklas Söderlund
2017-09-25 10:04   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 15/25] rcar-vin: add flag to switch to media controller mode Niklas Söderlund
2017-09-25 10:04   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 16/25] rcar-vin: break out format alignment and checking Niklas Söderlund
2017-09-25 10:08   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 17/25] rcar-vin: use different v4l2 operations in media controller mode Niklas Söderlund
2017-09-25 10:11   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 18/25] rcar-vin: prepare for media controller mode initialization Niklas Söderlund
2017-09-25 10:11   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 19/25] rcar-vin: add group allocator functions Niklas Söderlund
2017-09-25 10:22   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 20/25] rcar-vin: add chsel information to rvin_info Niklas Söderlund
2017-09-25 10:26   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 21/25] rcar-vin: parse Gen3 OF and setup media graph Niklas Söderlund
2017-09-25 10:36   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 22/25] rcar-vin: add link notify for Gen3 Niklas Söderlund
2017-09-25 10:43   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 23/25] rcar-vin: extend {start,stop}_streaming to work with media controller Niklas Söderlund
2017-09-25 10:46   ` Hans Verkuil
2017-08-22 23:26 ` [PATCH v6 24/25] rcar-vin: enable support for r8a7795 Niklas Söderlund
2017-09-25 10:47   ` Hans Verkuil
2017-10-03  8:30   ` Geert Uytterhoeven
2017-08-22 23:26 ` [PATCH v6 25/25] rcar-vin: enable support for r8a7796 Niklas Söderlund
2017-09-25 10:47   ` Hans Verkuil

Reply instructions:

You may reply publicly 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=2438024.1X1RK6JS63@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=hverkuil@xs4all.nl \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=niklas.soderlund+renesas@ragnatech.se \
    --cc=sakari.ailus@linux.intel.com \
    --cc=tomoharu.fukawa.eb@renesas.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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.