All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans Verkuil <hverkuil@xs4all.nl>
To: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>,
	hans.verkuil@cisco.com, niklas.soderlund@ragnatech.se
Cc: linux-media@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	magnus.damm@gmail.com, laurent.pinchart@ideasonboard.com,
	ian.molton@codethink.co.uk, lars@metafoo.de,
	william.towle@codethink.co.uk
Subject: Re: [PATCH v3 5/7] media: rcar-vin: add DV timings support
Date: Fri, 22 Apr 2016 14:37:24 +0200	[thread overview]
Message-ID: <571A1B04.9040407@xs4all.nl> (raw)
In-Reply-To: <1460650670-20849-6-git-send-email-ulrich.hecht+renesas@gmail.com>

New review of this code. Ignore the previous one.

On 04/14/2016 06:17 PM, Ulrich Hecht wrote:
> Adds ioctls DV_TIMINGS_CAP, ENUM_DV_TIMINGS, G_DV_TIMINGS, S_DV_TIMINGS,
> and QUERY_DV_TIMINGS.
> 
> Signed-off-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
> ---
>  drivers/media/platform/rcar-vin/rcar-v4l2.c | 69 +++++++++++++++++++++++++++++
>  1 file changed, 69 insertions(+)
> 
> diff --git a/drivers/media/platform/rcar-vin/rcar-v4l2.c b/drivers/media/platform/rcar-vin/rcar-v4l2.c
> index d8d5f3a..ba2ed4e 100644
> --- a/drivers/media/platform/rcar-vin/rcar-v4l2.c
> +++ b/drivers/media/platform/rcar-vin/rcar-v4l2.c
> @@ -413,12 +413,17 @@ static int rvin_enum_input(struct file *file, void *priv,
>  			   struct v4l2_input *i)
>  {
>  	struct rvin_dev *vin = video_drvdata(file);
> +	struct v4l2_subdev *sd = vin_to_sd(vin);
>  
>  	if (i->index != 0)
>  		return -EINVAL;
>  
>  	i->type = V4L2_INPUT_TYPE_CAMERA;
>  	i->std = vin->vdev.tvnorms;
> +
> +	if (v4l2_subdev_has_op(sd, pad, dv_timings_cap))
> +		i->capabilities = V4L2_IN_CAP_DV_TIMINGS;
> +
>  	strlcpy(i->name, "Camera", sizeof(i->name));

I think it is better to use "HDMI" as the name.

>  
>  	return 0;
> @@ -461,6 +466,64 @@ static int rvin_g_std(struct file *file, void *priv, v4l2_std_id *a)
>  	return v4l2_subdev_call(sd, video, g_std, a);
>  }
>  
> +static int rvin_enum_dv_timings(struct file *file, void *priv_fh,
> +				    struct v4l2_enum_dv_timings *timings)
> +{
> +	struct rvin_dev *vin = video_drvdata(file);
> +	struct v4l2_subdev *sd = vin_to_sd(vin);
> +
> +	timings->pad = 0;

You should use vin->src_pad_idx here instead of 0.

> +	return v4l2_subdev_call(sd,
> +			pad, enum_dv_timings, timings);

The original pad value should be restored.

> +}
> +
> +static int rvin_s_dv_timings(struct file *file, void *priv_fh,
> +				    struct v4l2_dv_timings *timings)
> +{
> +	struct rvin_dev *vin = video_drvdata(file);
> +	struct v4l2_subdev *sd = vin_to_sd(vin);
> +	int err;
> +
> +	err = v4l2_subdev_call(sd,
> +			video, s_dv_timings, timings);
> +	if (!err) {
> +		vin->sensor.width = timings->bt.width;
> +		vin->sensor.height = timings->bt.height;
> +	}
> +	return err;
> +}
> +
> +static int rvin_g_dv_timings(struct file *file, void *priv_fh,
> +				    struct v4l2_dv_timings *timings)
> +{
> +	struct rvin_dev *vin = video_drvdata(file);
> +	struct v4l2_subdev *sd = vin_to_sd(vin);
> +
> +	return v4l2_subdev_call(sd,
> +			video, g_dv_timings, timings);
> +}
> +
> +static int rvin_query_dv_timings(struct file *file, void *priv_fh,
> +				    struct v4l2_dv_timings *timings)
> +{
> +	struct rvin_dev *vin = video_drvdata(file);
> +	struct v4l2_subdev *sd = vin_to_sd(vin);
> +
> +	return v4l2_subdev_call(sd,
> +			video, query_dv_timings, timings);
> +}
> +
> +static int rvin_dv_timings_cap(struct file *file, void *priv_fh,
> +				    struct v4l2_dv_timings_cap *cap)
> +{
> +	struct rvin_dev *vin = video_drvdata(file);
> +	struct v4l2_subdev *sd = vin_to_sd(vin);
> +
> +	cap->pad = 0;
> +	return v4l2_subdev_call(sd,
> +			pad, dv_timings_cap, cap);

The comments for enum_dv_timings apply here as well.

> +}
> +
>  static const struct v4l2_ioctl_ops rvin_ioctl_ops = {
>  	.vidioc_querycap		= rvin_querycap,
>  	.vidioc_try_fmt_vid_cap		= rvin_try_fmt_vid_cap,
> @@ -477,6 +540,12 @@ static const struct v4l2_ioctl_ops rvin_ioctl_ops = {
>  	.vidioc_g_input			= rvin_g_input,
>  	.vidioc_s_input			= rvin_s_input,
>  
> +	.vidioc_dv_timings_cap		= rvin_dv_timings_cap,
> +	.vidioc_enum_dv_timings		= rvin_enum_dv_timings,
> +	.vidioc_g_dv_timings		= rvin_g_dv_timings,
> +	.vidioc_s_dv_timings		= rvin_s_dv_timings,
> +	.vidioc_query_dv_timings	= rvin_query_dv_timings,
> +
>  	.vidioc_querystd		= rvin_querystd,
>  	.vidioc_g_std			= rvin_g_std,
>  	.vidioc_s_std			= rvin_s_std,
> 

You also need to support the SOURCE_CHANGE event, but I will post a patch for
that myself later.

Regards,

	Hans

  parent reply	other threads:[~2016-04-22 12:37 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-14 16:17 [PATCH v3 0/7] Lager board HDMI input support Ulrich Hecht
2016-04-14 16:17 ` [PATCH v3 1/7] v4l: subdev: Add pad config allocator and init Ulrich Hecht
2016-04-14 16:17 ` [PATCH v3 2/7] media: adv7604: automatic "default-input" selection Ulrich Hecht
2016-04-14 16:17 ` [PATCH v3 3/7] media: rcar_vin: Use correct pad number in try_fmt Ulrich Hecht
2016-04-14 16:17 ` [PATCH v3 4/7] media: rcar-vin: pad-aware driver initialisation Ulrich Hecht
2016-04-14 16:17   ` [PATCH v3 4/7] media: rcar-vin: pad-aware driver initialisation, [PATCH 4/4] arm64: dts: r8a7795: Don't disable referenced optional clocks Ulrich Hecht, Simon Horman
2016-04-14 16:17 ` [PATCH v3 5/7] media: rcar-vin: add DV timings support Ulrich Hecht
2016-04-18 10:04   ` Hans Verkuil
2016-04-20 16:24     ` Ulrich Hecht
2016-04-22 12:05       ` Hans Verkuil
2016-04-22 12:37   ` Hans Verkuil [this message]
2016-04-22 14:07   ` Hans Verkuil
2016-04-14 16:17 ` [PATCH v3 6/7] media: rcar-vin: initialize EDID data Ulrich Hecht
2016-04-18 10:13   ` Hans Verkuil
2016-04-20 16:24     ` Ulrich Hecht
2016-04-14 16:17 ` [PATCH v3 7/7] ARM: dts: lager: Add entries for VIN HDMI input support Ulrich Hecht
2016-04-14 16:17   ` [PATCH v3 7/7] ARM: dts: lager: Add entries for VIN HDMI input support, [PATCH 2/2] arm64: dts: r8a7795: Use SYSC "always-on" PM Domain Ulrich Hecht, Simon Horman
2016-04-27  4:06 [GIT PULL] Second Round of Renesas ARM64 Based SoC DT Updates for v4.7 Simon Horman
2016-04-27  4:06 ` Simon Horman
2016-04-27  4:06 ` [PATCH 1/4] arm64: dts: r8a7795: Add PCIe nodes Simon Horman
2016-04-27  4:06   ` Simon Horman
2016-04-27  4:06 ` [PATCH 2/4] arm64: dts: r8a7795: enable PCIe on Salvator-X Simon Horman
2016-04-27  4:06   ` Simon Horman
2016-04-27  4:06 ` [PATCH 3/4] arm64: dts: salvator-x: populate EXTALR Simon Horman
2016-04-27  4:06   ` Simon Horman
2016-04-27  4:06 ` [PATCH 4/4] arm64: dts: r8a7795: Don't disable referenced optional clocks Simon Horman
2016-04-27  4:06   ` Simon Horman
2016-04-28 14:14 ` [GIT PULL] Second Round of Renesas ARM64 Based SoC DT Updates for v4.7 Arnd Bergmann
2016-04-28 14:14   ` Arnd Bergmann
2016-04-28 14:19   ` Arnd Bergmann
2016-04-28 14:19     ` Arnd Bergmann
2016-04-27  4:20 [GIT PULL] Renesas ARM64 Based SoC DT PM Domain " Simon Horman
2016-04-27  4:20 ` Simon Horman
2016-04-27  4:20 ` [PATCH 1/2] arm64: dts: r8a7795: Add SYSC PM Domains Simon Horman
2016-04-27  4:20   ` Simon Horman
2016-04-27  4:20 ` [PATCH 2/2] arm64: dts: r8a7795: Use SYSC "always-on" PM Domain Simon Horman
2016-04-27  4:20   ` Simon Horman
2016-05-06  0:21 ` [GIT PULL] Renesas ARM64 Based SoC DT PM Domain Updates for v4.7 Simon Horman
2016-05-06  0:21   ` Simon Horman
2016-05-09 13:10   ` Arnd Bergmann
2016-05-09 13:10     ` Arnd Bergmann
2016-05-10  0:03     ` Simon Horman
2016-05-10  0:03       ` Simon Horman
2016-05-09 13:40 ` Arnd Bergmann
2016-05-09 13:40   ` Arnd Bergmann

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=571A1B04.9040407@xs4all.nl \
    --to=hverkuil@xs4all.nl \
    --cc=hans.verkuil@cisco.com \
    --cc=ian.molton@codethink.co.uk \
    --cc=lars@metafoo.de \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=niklas.soderlund@ragnatech.se \
    --cc=ulrich.hecht+renesas@gmail.com \
    --cc=william.towle@codethink.co.uk \
    /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.