All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Longerbeam <slongerbeam@gmail.com>
To: Philipp Zabel <p.zabel@pengutronix.de>
Cc: robh+dt@kernel.org, mark.rutland@arm.com, shawnguo@kernel.org,
	kernel@pengutronix.de, fabio.estevam@nxp.com,
	linux@armlinux.org.uk, mchehab@kernel.org, hverkuil@xs4all.nl,
	nick@shmanahar.org, markus.heiser@darmarIT.de,
	laurent.pinchart+renesas@ideasonboard.com, bparrot@ti.com,
	geert@linux-m68k.org, arnd@arndb.de, sudipm.mukherjee@gmail.com,
	minghsiu.tsai@mediatek.com, tiffany.lin@mediatek.com,
	jean-christophe.trotin@st.com, horms+renesas@verge.net.au,
	niklas.soderlund+renesas@ragnatech.se, robert.jarzmik@free.fr,
	songjun.wu@microchip.com, andrew-ct.chen@mediatek.com,
	gregkh@linuxfoundation.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-media@vger.kernel.org, devel@driverdev.osuosl.org,
	Steve Longerbeam <steve_longerbeam@mentor.com>
Subject: Re: [PATCH v3 17/24] media: imx: Add CSI subdev driver
Date: Mon, 16 Jan 2017 13:15:27 -0800	[thread overview]
Message-ID: <fa368f78-42f6-6f2f-0761-1f775eb5d707@gmail.com> (raw)
In-Reply-To: <1484578988.8415.160.camel@pengutronix.de>



On 01/16/2017 07:03 AM, Philipp Zabel wrote:
> On Fri, 2017-01-06 at 18:11 -0800, Steve Longerbeam wrote:
>> This is a media entity subdevice for the i.MX Camera
>> Serial Interface module.
> s/Serial/Sensor/

done.

>> Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
>> ---
>>   drivers/staging/media/imx/Kconfig   |  13 +
>>   drivers/staging/media/imx/Makefile  |   2 +
>>   drivers/staging/media/imx/imx-csi.c | 644 ++++++++++++++++++++++++++++++++++++
>>   3 files changed, 659 insertions(+)
>>   create mode 100644 drivers/staging/media/imx/imx-csi.c
>>
>> diff --git a/drivers/staging/media/imx/Kconfig b/drivers/staging/media/imx/Kconfig
>> index bfde58d..ce2d2c8 100644
>> --- a/drivers/staging/media/imx/Kconfig
>> +++ b/drivers/staging/media/imx/Kconfig
>> @@ -6,3 +6,16 @@ config VIDEO_IMX_MEDIA
>>   	  Say yes here to enable support for video4linux media controller
>>   	  driver for the i.MX5/6 SOC.
>>   
>> +if VIDEO_IMX_MEDIA
>> +menu "i.MX5/6 Media Sub devices"
>> +
>> +config VIDEO_IMX_CAMERA
> s/CAMERA/CSI/ ?

done.

>> +	tristate "i.MX5/6 Camera driver"
> i.MX5/6 Camera Sensor Interface driver

done.

>
>> +
>> +struct csi_priv {
>> +	struct device *dev;
>> +	struct ipu_soc *ipu;
>> +	struct imx_media_dev *md;
>> +	struct v4l2_subdev sd;
>> +	struct media_pad pad[CSI_NUM_PADS];
>> +	struct v4l2_mbus_framefmt format_mbus[CSI_NUM_PADS];
>> +	struct v4l2_mbus_config sensor_mbus_cfg;
>> +	struct v4l2_rect crop;
>> +	struct ipu_csi *csi;
>> +	int csi_id;
>> +	int input_pad;
>> +	int output_pad;
>> +	bool power_on;  /* power is on */
>> +	bool stream_on; /* streaming is on */
>> +
>> +	/* the sink for the captured frames */
>> +	struct v4l2_subdev *sink_sd;
>> +	enum ipu_csi_dest dest;
>> +	struct v4l2_subdev *src_sd;
> src_sd is not used except that its presence marks an enabled input link.
> -> could be changed to bool.

For now I prefer to keep it a pointer to the src/sink subdevs.
At some point the CSI may have some reason to know the
identity of the source.

>
>> +	struct v4l2_ctrl_handler ctrl_hdlr;
>> +	struct imx_media_fim *fim;
>> +
>> +	/* the attached sensor at stream on */
>> +	struct imx_media_subdev *sensor;
>> +};
>> +
>> +static inline struct csi_priv *sd_to_dev(struct v4l2_subdev *sdev)
>> +{
>> +	return container_of(sdev, struct csi_priv, sd);
>> +}
>> +
>> +/* Update the CSI whole sensor and active windows */
>> +static int csi_setup(struct csi_priv *priv)
>> +{
>> +	struct v4l2_mbus_framefmt infmt;
>> +
>> +	ipu_csi_set_window(priv->csi, &priv->crop);
>> +
>> +	/*
>> +	 * the ipu-csi doesn't understand ALTERNATE, but it only
>> +	 * needs to know whether the stream is interlaced, so set
>> +	 * to INTERLACED if infmt field is ALTERNATE.
>> +	 */
>> +	infmt = priv->format_mbus[priv->input_pad];
>> +	if (infmt.field == V4L2_FIELD_ALTERNATE)
>> +		infmt.field = V4L2_FIELD_INTERLACED;
> That should be SEQ_TB/BT depending on video standard.

fixed.

>> +
>> +static int csi_s_stream(struct v4l2_subdev *sd, int enable)
>> +{
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	int ret = 0;
>> +
>> +	if (!priv->src_sd || !priv->sink_sd)
>> +		return -EPIPE;
>> +
>> +	v4l2_info(sd, "stream %s\n", enable ? "ON" : "OFF");
> These could be silenced a bit.

yeah, I think it is time for that. I've silenced all the
v4l2_info()'s for stream on/off, power on/off, as well
as some others.

>
>> +static int csi_s_power(struct v4l2_subdev *sd, int on)
>> +{
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	int ret = 0;
>> +
>> +	v4l2_info(sd, "power %s\n", on ? "ON" : "OFF");
>> +
>> +	if (priv->fim && on != priv->power_on)
>> +		ret = imx_media_fim_set_power(priv->fim, on);
>> +
>> +	if (!ret)
>> +		priv->power_on = on;
>> +	return ret;
>> +}
> Is this called multiple times? I'd expect a poweron during open and a
> poweroff during close, so no need for priv->power_on.

It is actually called multiple times. The s_power subdev callbacks are
made every time there is a new link established, in the imx-media core's
link_notify(), in order to re-establish power to the active subdevs in the
new pipeline.

This might change after I look into using v4l2_pipeline_pm_use().

>
>> +static int csi_link_setup(struct media_entity *entity,
>> +			  const struct media_pad *local,
>> +			  const struct media_pad *remote, u32 flags)
>> +{
>> +	struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	struct v4l2_subdev *remote_sd;
>> +
>> +	dev_dbg(priv->dev, "link setup %s -> %s", remote->entity->name,
>> +		local->entity->name);
>> +
>> +	remote_sd = media_entity_to_v4l2_subdev(remote->entity);
>> +
>> +	if (local->flags & MEDIA_PAD_FL_SINK) {
>> +		if (flags & MEDIA_LNK_FL_ENABLED) {
>> +			if (priv->src_sd)
>> +				return -EBUSY;
>> +			priv->src_sd = remote_sd;
>> +		} else {
>> +			priv->src_sd = NULL;
>> +		}
>> +
>> +		return 0;
>> +	}
>> +
>> +	if (flags & MEDIA_LNK_FL_ENABLED) {
>> +		if (priv->sink_sd)
>> +			return -EBUSY;
>> +		priv->sink_sd = remote_sd;
>> +	} else {
>> +		priv->sink_sd = NULL;
>> +		return 0;
>> +	}
>> +
>> +	/* set CSI destination */
>> +	switch (remote_sd->grp_id) {
>> +	case IMX_MEDIA_GRP_ID_SMFC0:
>> +	case IMX_MEDIA_GRP_ID_SMFC1:
>> +	case IMX_MEDIA_GRP_ID_SMFC2:
>> +	case IMX_MEDIA_GRP_ID_SMFC3:
> With removal of the SMFC entities, CSI0 could be fixed to SMFC0 and CSI1
> to the SMFC2 channel.

right, I'll do that.

>
> [...]
>> +static int csi_set_fmt(struct v4l2_subdev *sd,
>> +		       struct v4l2_subdev_pad_config *cfg,
>> +		       struct v4l2_subdev_format *sdformat)
>> +{
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	struct v4l2_mbus_framefmt *infmt, *outfmt;
>> +	struct v4l2_rect crop;
>> +	int ret;
>> +
>> +	if (sdformat->pad >= CSI_NUM_PADS)
>> +		return -EINVAL;
>> +
>> +	if (priv->stream_on)
>> +		return -EBUSY;
>> +
>> +	infmt = &priv->format_mbus[priv->input_pad];
>> +	outfmt = &priv->format_mbus[priv->output_pad];
>> +
>> +	if (sdformat->pad == priv->output_pad) {
>> +		sdformat->format.code = infmt->code;
>> +		sdformat->format.field = infmt->field;
>> +		crop.left = priv->crop.left;
>> +		crop.top = priv->crop.top;
>> +		crop.width = sdformat->format.width;
>> +		crop.height = sdformat->format.height;
>> +		ret = csi_try_crop(priv, &crop);
>> +		if (ret)
>> +			return ret;
>> +		sdformat->format.width = crop.width;
>> +		sdformat->format.height = crop.height;
>> +	}
>> +
>> +	if (sdformat->which == V4L2_SUBDEV_FORMAT_TRY) {
> Should there be some limitations on the format here?

done, I've added call to v4l_bound_align_image(), passing
it the min/max frame sizes. CSI's sensor/active frame size
register fields are 12 bits, so max is 4096 for both width and
height.


Steve

WARNING: multiple messages have this Message-ID (diff)
From: Steve Longerbeam <slongerbeam@gmail.com>
To: Philipp Zabel <p.zabel@pengutronix.de>
Cc: mark.rutland@arm.com, andrew-ct.chen@mediatek.com,
	minghsiu.tsai@mediatek.com, nick@shmanahar.org,
	songjun.wu@microchip.com, hverkuil@xs4all.nl,
	Steve Longerbeam <steve_longerbeam@mentor.com>,
	robert.jarzmik@free.fr, devel@driverdev.osuosl.org,
	markus.heiser@darmarIT.de,
	laurent.pinchart+renesas@ideasonboard.com, linux@armlinux.org.uk,
	geert@linux-m68k.org, linux-media@vger.kernel.org,
	devicetree@vger.kernel.org, arnd@arndb.de, mchehab@kernel.org,
	bparrot@ti.com, robh+dt@kernel.org, horms+renesas@verge.net.au,
	tiffany.lin@mediatek.com, linux-arm-kernel@lists.infradead.org,
	niklas.soderlund+renesas@ragnatech.se,
	gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
	jean-christophe.trotin@st.com, kernel@pengutronix.de,
	fabio.estevam@nxp.com, shawnguo@kernel.org,
	sudipm.mukherjee@gmail.com
Subject: Re: [PATCH v3 17/24] media: imx: Add CSI subdev driver
Date: Mon, 16 Jan 2017 13:15:27 -0800	[thread overview]
Message-ID: <fa368f78-42f6-6f2f-0761-1f775eb5d707@gmail.com> (raw)
In-Reply-To: <1484578988.8415.160.camel@pengutronix.de>



On 01/16/2017 07:03 AM, Philipp Zabel wrote:
> On Fri, 2017-01-06 at 18:11 -0800, Steve Longerbeam wrote:
>> This is a media entity subdevice for the i.MX Camera
>> Serial Interface module.
> s/Serial/Sensor/

done.

>> Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
>> ---
>>   drivers/staging/media/imx/Kconfig   |  13 +
>>   drivers/staging/media/imx/Makefile  |   2 +
>>   drivers/staging/media/imx/imx-csi.c | 644 ++++++++++++++++++++++++++++++++++++
>>   3 files changed, 659 insertions(+)
>>   create mode 100644 drivers/staging/media/imx/imx-csi.c
>>
>> diff --git a/drivers/staging/media/imx/Kconfig b/drivers/staging/media/imx/Kconfig
>> index bfde58d..ce2d2c8 100644
>> --- a/drivers/staging/media/imx/Kconfig
>> +++ b/drivers/staging/media/imx/Kconfig
>> @@ -6,3 +6,16 @@ config VIDEO_IMX_MEDIA
>>   	  Say yes here to enable support for video4linux media controller
>>   	  driver for the i.MX5/6 SOC.
>>   
>> +if VIDEO_IMX_MEDIA
>> +menu "i.MX5/6 Media Sub devices"
>> +
>> +config VIDEO_IMX_CAMERA
> s/CAMERA/CSI/ ?

done.

>> +	tristate "i.MX5/6 Camera driver"
> i.MX5/6 Camera Sensor Interface driver

done.

>
>> +
>> +struct csi_priv {
>> +	struct device *dev;
>> +	struct ipu_soc *ipu;
>> +	struct imx_media_dev *md;
>> +	struct v4l2_subdev sd;
>> +	struct media_pad pad[CSI_NUM_PADS];
>> +	struct v4l2_mbus_framefmt format_mbus[CSI_NUM_PADS];
>> +	struct v4l2_mbus_config sensor_mbus_cfg;
>> +	struct v4l2_rect crop;
>> +	struct ipu_csi *csi;
>> +	int csi_id;
>> +	int input_pad;
>> +	int output_pad;
>> +	bool power_on;  /* power is on */
>> +	bool stream_on; /* streaming is on */
>> +
>> +	/* the sink for the captured frames */
>> +	struct v4l2_subdev *sink_sd;
>> +	enum ipu_csi_dest dest;
>> +	struct v4l2_subdev *src_sd;
> src_sd is not used except that its presence marks an enabled input link.
> -> could be changed to bool.

For now I prefer to keep it a pointer to the src/sink subdevs.
At some point the CSI may have some reason to know the
identity of the source.

>
>> +	struct v4l2_ctrl_handler ctrl_hdlr;
>> +	struct imx_media_fim *fim;
>> +
>> +	/* the attached sensor at stream on */
>> +	struct imx_media_subdev *sensor;
>> +};
>> +
>> +static inline struct csi_priv *sd_to_dev(struct v4l2_subdev *sdev)
>> +{
>> +	return container_of(sdev, struct csi_priv, sd);
>> +}
>> +
>> +/* Update the CSI whole sensor and active windows */
>> +static int csi_setup(struct csi_priv *priv)
>> +{
>> +	struct v4l2_mbus_framefmt infmt;
>> +
>> +	ipu_csi_set_window(priv->csi, &priv->crop);
>> +
>> +	/*
>> +	 * the ipu-csi doesn't understand ALTERNATE, but it only
>> +	 * needs to know whether the stream is interlaced, so set
>> +	 * to INTERLACED if infmt field is ALTERNATE.
>> +	 */
>> +	infmt = priv->format_mbus[priv->input_pad];
>> +	if (infmt.field == V4L2_FIELD_ALTERNATE)
>> +		infmt.field = V4L2_FIELD_INTERLACED;
> That should be SEQ_TB/BT depending on video standard.

fixed.

>> +
>> +static int csi_s_stream(struct v4l2_subdev *sd, int enable)
>> +{
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	int ret = 0;
>> +
>> +	if (!priv->src_sd || !priv->sink_sd)
>> +		return -EPIPE;
>> +
>> +	v4l2_info(sd, "stream %s\n", enable ? "ON" : "OFF");
> These could be silenced a bit.

yeah, I think it is time for that. I've silenced all the
v4l2_info()'s for stream on/off, power on/off, as well
as some others.

>
>> +static int csi_s_power(struct v4l2_subdev *sd, int on)
>> +{
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	int ret = 0;
>> +
>> +	v4l2_info(sd, "power %s\n", on ? "ON" : "OFF");
>> +
>> +	if (priv->fim && on != priv->power_on)
>> +		ret = imx_media_fim_set_power(priv->fim, on);
>> +
>> +	if (!ret)
>> +		priv->power_on = on;
>> +	return ret;
>> +}
> Is this called multiple times? I'd expect a poweron during open and a
> poweroff during close, so no need for priv->power_on.

It is actually called multiple times. The s_power subdev callbacks are
made every time there is a new link established, in the imx-media core's
link_notify(), in order to re-establish power to the active subdevs in the
new pipeline.

This might change after I look into using v4l2_pipeline_pm_use().

>
>> +static int csi_link_setup(struct media_entity *entity,
>> +			  const struct media_pad *local,
>> +			  const struct media_pad *remote, u32 flags)
>> +{
>> +	struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	struct v4l2_subdev *remote_sd;
>> +
>> +	dev_dbg(priv->dev, "link setup %s -> %s", remote->entity->name,
>> +		local->entity->name);
>> +
>> +	remote_sd = media_entity_to_v4l2_subdev(remote->entity);
>> +
>> +	if (local->flags & MEDIA_PAD_FL_SINK) {
>> +		if (flags & MEDIA_LNK_FL_ENABLED) {
>> +			if (priv->src_sd)
>> +				return -EBUSY;
>> +			priv->src_sd = remote_sd;
>> +		} else {
>> +			priv->src_sd = NULL;
>> +		}
>> +
>> +		return 0;
>> +	}
>> +
>> +	if (flags & MEDIA_LNK_FL_ENABLED) {
>> +		if (priv->sink_sd)
>> +			return -EBUSY;
>> +		priv->sink_sd = remote_sd;
>> +	} else {
>> +		priv->sink_sd = NULL;
>> +		return 0;
>> +	}
>> +
>> +	/* set CSI destination */
>> +	switch (remote_sd->grp_id) {
>> +	case IMX_MEDIA_GRP_ID_SMFC0:
>> +	case IMX_MEDIA_GRP_ID_SMFC1:
>> +	case IMX_MEDIA_GRP_ID_SMFC2:
>> +	case IMX_MEDIA_GRP_ID_SMFC3:
> With removal of the SMFC entities, CSI0 could be fixed to SMFC0 and CSI1
> to the SMFC2 channel.

right, I'll do that.

>
> [...]
>> +static int csi_set_fmt(struct v4l2_subdev *sd,
>> +		       struct v4l2_subdev_pad_config *cfg,
>> +		       struct v4l2_subdev_format *sdformat)
>> +{
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	struct v4l2_mbus_framefmt *infmt, *outfmt;
>> +	struct v4l2_rect crop;
>> +	int ret;
>> +
>> +	if (sdformat->pad >= CSI_NUM_PADS)
>> +		return -EINVAL;
>> +
>> +	if (priv->stream_on)
>> +		return -EBUSY;
>> +
>> +	infmt = &priv->format_mbus[priv->input_pad];
>> +	outfmt = &priv->format_mbus[priv->output_pad];
>> +
>> +	if (sdformat->pad == priv->output_pad) {
>> +		sdformat->format.code = infmt->code;
>> +		sdformat->format.field = infmt->field;
>> +		crop.left = priv->crop.left;
>> +		crop.top = priv->crop.top;
>> +		crop.width = sdformat->format.width;
>> +		crop.height = sdformat->format.height;
>> +		ret = csi_try_crop(priv, &crop);
>> +		if (ret)
>> +			return ret;
>> +		sdformat->format.width = crop.width;
>> +		sdformat->format.height = crop.height;
>> +	}
>> +
>> +	if (sdformat->which == V4L2_SUBDEV_FORMAT_TRY) {
> Should there be some limitations on the format here?

done, I've added call to v4l_bound_align_image(), passing
it the min/max frame sizes. CSI's sensor/active frame size
register fields are 12 bits, so max is 4096 for both width and
height.


Steve

WARNING: multiple messages have this Message-ID (diff)
From: slongerbeam@gmail.com (Steve Longerbeam)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 17/24] media: imx: Add CSI subdev driver
Date: Mon, 16 Jan 2017 13:15:27 -0800	[thread overview]
Message-ID: <fa368f78-42f6-6f2f-0761-1f775eb5d707@gmail.com> (raw)
In-Reply-To: <1484578988.8415.160.camel@pengutronix.de>



On 01/16/2017 07:03 AM, Philipp Zabel wrote:
> On Fri, 2017-01-06 at 18:11 -0800, Steve Longerbeam wrote:
>> This is a media entity subdevice for the i.MX Camera
>> Serial Interface module.
> s/Serial/Sensor/

done.

>> Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
>> ---
>>   drivers/staging/media/imx/Kconfig   |  13 +
>>   drivers/staging/media/imx/Makefile  |   2 +
>>   drivers/staging/media/imx/imx-csi.c | 644 ++++++++++++++++++++++++++++++++++++
>>   3 files changed, 659 insertions(+)
>>   create mode 100644 drivers/staging/media/imx/imx-csi.c
>>
>> diff --git a/drivers/staging/media/imx/Kconfig b/drivers/staging/media/imx/Kconfig
>> index bfde58d..ce2d2c8 100644
>> --- a/drivers/staging/media/imx/Kconfig
>> +++ b/drivers/staging/media/imx/Kconfig
>> @@ -6,3 +6,16 @@ config VIDEO_IMX_MEDIA
>>   	  Say yes here to enable support for video4linux media controller
>>   	  driver for the i.MX5/6 SOC.
>>   
>> +if VIDEO_IMX_MEDIA
>> +menu "i.MX5/6 Media Sub devices"
>> +
>> +config VIDEO_IMX_CAMERA
> s/CAMERA/CSI/ ?

done.

>> +	tristate "i.MX5/6 Camera driver"
> i.MX5/6 Camera Sensor Interface driver

done.

>
>> +
>> +struct csi_priv {
>> +	struct device *dev;
>> +	struct ipu_soc *ipu;
>> +	struct imx_media_dev *md;
>> +	struct v4l2_subdev sd;
>> +	struct media_pad pad[CSI_NUM_PADS];
>> +	struct v4l2_mbus_framefmt format_mbus[CSI_NUM_PADS];
>> +	struct v4l2_mbus_config sensor_mbus_cfg;
>> +	struct v4l2_rect crop;
>> +	struct ipu_csi *csi;
>> +	int csi_id;
>> +	int input_pad;
>> +	int output_pad;
>> +	bool power_on;  /* power is on */
>> +	bool stream_on; /* streaming is on */
>> +
>> +	/* the sink for the captured frames */
>> +	struct v4l2_subdev *sink_sd;
>> +	enum ipu_csi_dest dest;
>> +	struct v4l2_subdev *src_sd;
> src_sd is not used except that its presence marks an enabled input link.
> -> could be changed to bool.

For now I prefer to keep it a pointer to the src/sink subdevs.
At some point the CSI may have some reason to know the
identity of the source.

>
>> +	struct v4l2_ctrl_handler ctrl_hdlr;
>> +	struct imx_media_fim *fim;
>> +
>> +	/* the attached sensor at stream on */
>> +	struct imx_media_subdev *sensor;
>> +};
>> +
>> +static inline struct csi_priv *sd_to_dev(struct v4l2_subdev *sdev)
>> +{
>> +	return container_of(sdev, struct csi_priv, sd);
>> +}
>> +
>> +/* Update the CSI whole sensor and active windows */
>> +static int csi_setup(struct csi_priv *priv)
>> +{
>> +	struct v4l2_mbus_framefmt infmt;
>> +
>> +	ipu_csi_set_window(priv->csi, &priv->crop);
>> +
>> +	/*
>> +	 * the ipu-csi doesn't understand ALTERNATE, but it only
>> +	 * needs to know whether the stream is interlaced, so set
>> +	 * to INTERLACED if infmt field is ALTERNATE.
>> +	 */
>> +	infmt = priv->format_mbus[priv->input_pad];
>> +	if (infmt.field == V4L2_FIELD_ALTERNATE)
>> +		infmt.field = V4L2_FIELD_INTERLACED;
> That should be SEQ_TB/BT depending on video standard.

fixed.

>> +
>> +static int csi_s_stream(struct v4l2_subdev *sd, int enable)
>> +{
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	int ret = 0;
>> +
>> +	if (!priv->src_sd || !priv->sink_sd)
>> +		return -EPIPE;
>> +
>> +	v4l2_info(sd, "stream %s\n", enable ? "ON" : "OFF");
> These could be silenced a bit.

yeah, I think it is time for that. I've silenced all the
v4l2_info()'s for stream on/off, power on/off, as well
as some others.

>
>> +static int csi_s_power(struct v4l2_subdev *sd, int on)
>> +{
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	int ret = 0;
>> +
>> +	v4l2_info(sd, "power %s\n", on ? "ON" : "OFF");
>> +
>> +	if (priv->fim && on != priv->power_on)
>> +		ret = imx_media_fim_set_power(priv->fim, on);
>> +
>> +	if (!ret)
>> +		priv->power_on = on;
>> +	return ret;
>> +}
> Is this called multiple times? I'd expect a poweron during open and a
> poweroff during close, so no need for priv->power_on.

It is actually called multiple times. The s_power subdev callbacks are
made every time there is a new link established, in the imx-media core's
link_notify(), in order to re-establish power to the active subdevs in the
new pipeline.

This might change after I look into using v4l2_pipeline_pm_use().

>
>> +static int csi_link_setup(struct media_entity *entity,
>> +			  const struct media_pad *local,
>> +			  const struct media_pad *remote, u32 flags)
>> +{
>> +	struct v4l2_subdev *sd = media_entity_to_v4l2_subdev(entity);
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	struct v4l2_subdev *remote_sd;
>> +
>> +	dev_dbg(priv->dev, "link setup %s -> %s", remote->entity->name,
>> +		local->entity->name);
>> +
>> +	remote_sd = media_entity_to_v4l2_subdev(remote->entity);
>> +
>> +	if (local->flags & MEDIA_PAD_FL_SINK) {
>> +		if (flags & MEDIA_LNK_FL_ENABLED) {
>> +			if (priv->src_sd)
>> +				return -EBUSY;
>> +			priv->src_sd = remote_sd;
>> +		} else {
>> +			priv->src_sd = NULL;
>> +		}
>> +
>> +		return 0;
>> +	}
>> +
>> +	if (flags & MEDIA_LNK_FL_ENABLED) {
>> +		if (priv->sink_sd)
>> +			return -EBUSY;
>> +		priv->sink_sd = remote_sd;
>> +	} else {
>> +		priv->sink_sd = NULL;
>> +		return 0;
>> +	}
>> +
>> +	/* set CSI destination */
>> +	switch (remote_sd->grp_id) {
>> +	case IMX_MEDIA_GRP_ID_SMFC0:
>> +	case IMX_MEDIA_GRP_ID_SMFC1:
>> +	case IMX_MEDIA_GRP_ID_SMFC2:
>> +	case IMX_MEDIA_GRP_ID_SMFC3:
> With removal of the SMFC entities, CSI0 could be fixed to SMFC0 and CSI1
> to the SMFC2 channel.

right, I'll do that.

>
> [...]
>> +static int csi_set_fmt(struct v4l2_subdev *sd,
>> +		       struct v4l2_subdev_pad_config *cfg,
>> +		       struct v4l2_subdev_format *sdformat)
>> +{
>> +	struct csi_priv *priv = v4l2_get_subdevdata(sd);
>> +	struct v4l2_mbus_framefmt *infmt, *outfmt;
>> +	struct v4l2_rect crop;
>> +	int ret;
>> +
>> +	if (sdformat->pad >= CSI_NUM_PADS)
>> +		return -EINVAL;
>> +
>> +	if (priv->stream_on)
>> +		return -EBUSY;
>> +
>> +	infmt = &priv->format_mbus[priv->input_pad];
>> +	outfmt = &priv->format_mbus[priv->output_pad];
>> +
>> +	if (sdformat->pad == priv->output_pad) {
>> +		sdformat->format.code = infmt->code;
>> +		sdformat->format.field = infmt->field;
>> +		crop.left = priv->crop.left;
>> +		crop.top = priv->crop.top;
>> +		crop.width = sdformat->format.width;
>> +		crop.height = sdformat->format.height;
>> +		ret = csi_try_crop(priv, &crop);
>> +		if (ret)
>> +			return ret;
>> +		sdformat->format.width = crop.width;
>> +		sdformat->format.height = crop.height;
>> +	}
>> +
>> +	if (sdformat->which == V4L2_SUBDEV_FORMAT_TRY) {
> Should there be some limitations on the format here?

done, I've added call to v4l_bound_align_image(), passing
it the min/max frame sizes. CSI's sensor/active frame size
register fields are 12 bits, so max is 4096 for both width and
height.


Steve

  reply	other threads:[~2017-01-16 21:17 UTC|newest]

Thread overview: 549+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-07  2:11 [PATCH v3 00/24] i.MX Media Driver Steve Longerbeam
2017-01-07  2:11 ` Steve Longerbeam
2017-01-07  2:11 ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 01/24] [media] dt-bindings: Add bindings for i.MX media driver Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-13 11:55   ` Philipp Zabel
2017-01-13 11:55     ` Philipp Zabel
2017-01-13 11:55     ` Philipp Zabel
2017-01-13 19:03     ` Steve Longerbeam
2017-01-13 19:03       ` Steve Longerbeam
2017-01-13 19:03       ` Steve Longerbeam
2017-01-16 12:09       ` Philipp Zabel
2017-01-16 12:09         ` Philipp Zabel
2017-01-16 12:09         ` Philipp Zabel
2017-01-16 17:13         ` Steve Longerbeam
2017-01-16 17:13           ` Steve Longerbeam
2017-01-16 17:13           ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 02/24] ARM: dts: imx6qdl: Add compatible, clocks, irqs to MIPI CSI-2 node Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-13 11:57   ` Philipp Zabel
2017-01-13 11:57     ` Philipp Zabel
2017-01-13 11:57     ` Philipp Zabel
2017-01-13 22:40     ` Steve Longerbeam
2017-01-13 22:40       ` Steve Longerbeam
2017-01-13 22:40       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 03/24] ARM: dts: imx6qdl: Add mipi_ipu1/2 multiplexers, mipi_csi, and their connections Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 04/24] ARM: dts: imx6qdl: add media device Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 05/24] ARM: dts: imx6qdl-sabrelite: remove erratum ERR006687 workaround Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-13 11:59   ` Philipp Zabel
2017-01-13 11:59     ` Philipp Zabel
2017-01-13 11:59     ` Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 06/24] ARM: dts: imx6-sabrelite: add OV5642 and OV5640 camera sensors Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-13 12:03   ` Philipp Zabel
2017-01-13 12:03     ` Philipp Zabel
2017-01-13 12:03     ` Philipp Zabel
2017-01-13 23:04     ` Steve Longerbeam
2017-01-13 23:04       ` Steve Longerbeam
2017-01-13 23:04       ` Steve Longerbeam
2017-01-16 12:55       ` Philipp Zabel
2017-01-16 12:55         ` Philipp Zabel
2017-01-16 12:55         ` Philipp Zabel
2017-01-16 17:15         ` Steve Longerbeam
2017-01-16 17:15           ` Steve Longerbeam
2017-01-16 17:15           ` Steve Longerbeam
2017-02-05 15:17         ` Laurent Pinchart
2017-02-05 15:17           ` Laurent Pinchart
2017-02-05 15:17           ` Laurent Pinchart
2017-01-30 22:28   ` Russell King - ARM Linux
2017-01-30 22:28     ` Russell King - ARM Linux
2017-01-30 22:28     ` Russell King - ARM Linux
2017-01-30 22:51   ` Russell King - ARM Linux
2017-01-30 22:51     ` Russell King - ARM Linux
2017-01-30 22:51     ` Russell King - ARM Linux
2017-02-05 15:24     ` Laurent Pinchart
2017-02-05 15:24       ` Laurent Pinchart
2017-02-05 15:24       ` Laurent Pinchart
2017-02-05 15:37       ` Russell King - ARM Linux
2017-02-05 15:37         ` Russell King - ARM Linux
2017-02-05 15:37         ` Russell King - ARM Linux
2017-01-07  2:11 ` [PATCH v3 07/24] ARM: dts: imx6-sabresd: " Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 08/24] ARM: dts: imx6-sabreauto: create i2cmux for i2c3 Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 09/24] ARM: dts: imx6-sabreauto: add reset-gpios property for max7310_b Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 10/24] ARM: dts: imx6-sabreauto: add pinctrl for gpt input capture Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-12 19:37   ` Tim Harvey
2017-01-12 19:37     ` Tim Harvey
2017-01-12 19:37     ` Tim Harvey
2017-01-12 23:40     ` Steve Longerbeam
2017-01-12 23:40       ` Steve Longerbeam
2017-01-12 23:40       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 11/24] ARM: dts: imx6-sabreauto: add the ADV7180 video decoder Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 12/24] add mux and video interface bridge entity functions Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-20 13:56   ` Hans Verkuil
2017-01-20 13:56     ` Hans Verkuil
2017-02-05 15:36   ` Laurent Pinchart
2017-02-05 15:36     ` Laurent Pinchart
2017-02-05 15:36     ` Laurent Pinchart
2017-02-06 10:27     ` Philipp Zabel
2017-02-06 10:27       ` Philipp Zabel
2017-02-06 10:27       ` Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 13/24] platform: add video-multiplexer subdevice driver Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-10  5:35   ` Rob Herring
2017-01-10  5:35     ` Rob Herring
2017-01-10  5:35     ` Rob Herring
2017-01-20 14:03   ` Hans Verkuil
2017-01-20 14:03     ` Hans Verkuil
2017-01-20 14:03     ` Hans Verkuil
2017-01-24 12:02     ` Philipp Zabel
2017-01-24 12:02       ` Philipp Zabel
2017-01-24 12:02       ` Philipp Zabel
2017-01-25  2:07       ` Steve Longerbeam
2017-01-25  2:07         ` Steve Longerbeam
2017-01-25  2:07         ` Steve Longerbeam
2017-02-05 15:48         ` Laurent Pinchart
2017-02-05 15:48           ` Laurent Pinchart
2017-02-05 15:48           ` Laurent Pinchart
2017-02-06  9:50           ` Hans Verkuil
2017-02-06  9:50             ` Hans Verkuil
2017-02-06  9:50             ` Hans Verkuil
2017-02-06 22:33             ` Laurent Pinchart
2017-02-06 22:33               ` Laurent Pinchart
2017-02-06 22:33               ` Laurent Pinchart
2017-02-06 23:10               ` Steve Longerbeam
2017-02-06 23:10                 ` Steve Longerbeam
2017-02-06 23:10                 ` Steve Longerbeam
2017-02-07 10:26                 ` Laurent Pinchart
2017-02-07 10:26                   ` Laurent Pinchart
2017-02-07 10:26                   ` Laurent Pinchart
2017-02-07 10:41                   ` Philipp Zabel
2017-02-07 10:41                     ` Philipp Zabel
2017-02-07 10:41                     ` Philipp Zabel
2017-02-07 14:11                     ` Laurent Pinchart
2017-02-07 14:11                       ` Laurent Pinchart
2017-02-07 14:11                       ` Laurent Pinchart
2017-02-07 13:36                   ` Benoit Parrot
2017-02-07 13:36                     ` Benoit Parrot
2017-02-07 13:36                     ` Benoit Parrot
2017-02-07 20:50                     ` Sakari Ailus
2017-02-07 20:50                       ` Sakari Ailus
2017-02-07 20:50                       ` Sakari Ailus
2017-02-07 23:04                     ` Laurent Pinchart
2017-02-07 23:04                       ` Laurent Pinchart
2017-02-07 23:04                       ` Laurent Pinchart
2017-01-24 12:44   ` Javier Martinez Canillas
2017-01-24 12:44     ` Javier Martinez Canillas
2017-01-24 12:44     ` Javier Martinez Canillas
2017-01-24 12:44     ` Javier Martinez Canillas
2017-01-26  1:22     ` Steve Longerbeam
2017-01-26  1:22       ` Steve Longerbeam
2017-01-26  1:22       ` Steve Longerbeam
2017-01-26  1:22       ` Steve Longerbeam
2017-02-07 20:46   ` Sakari Ailus
2017-02-07 20:46     ` Sakari Ailus
2017-02-07 20:46     ` Sakari Ailus
2017-02-08  9:47     ` Philipp Zabel
2017-02-08  9:47       ` Philipp Zabel
2017-02-08  9:47       ` Philipp Zabel
2017-02-08 10:05       ` Laurent Pinchart
2017-02-08 10:05         ` Laurent Pinchart
2017-02-08 10:05         ` Laurent Pinchart
2017-01-07  2:11 ` [PATCH v3 14/24] UAPI: Add media UAPI Kbuild file Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 15/24] media: Add userspace header file for i.MX Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-13 12:05   ` Philipp Zabel
2017-01-13 12:05     ` Philipp Zabel
2017-01-13 12:05     ` Philipp Zabel
2017-01-13 23:13     ` Steve Longerbeam
2017-01-13 23:13       ` Steve Longerbeam
2017-01-13 23:13       ` Steve Longerbeam
2017-02-05 15:50       ` Laurent Pinchart
2017-02-05 15:50         ` Laurent Pinchart
2017-02-05 15:50         ` Laurent Pinchart
2017-01-07  2:11 ` [PATCH v3 16/24] media: Add i.MX media core driver Steve Longerbeam
2017-01-13 15:20   ` Philipp Zabel
2017-01-13 15:20     ` Philipp Zabel
2017-01-13 15:20     ` Philipp Zabel
2017-01-14 22:42     ` Steve Longerbeam
2017-01-19  1:44       ` Steve Longerbeam
2017-01-19  1:44         ` Steve Longerbeam
2017-01-19  1:44         ` Steve Longerbeam
2017-01-24 11:39         ` Philipp Zabel
2017-01-24 11:39           ` Philipp Zabel
2017-01-24 11:39           ` Philipp Zabel
2017-01-14 22:46     ` Steve Longerbeam
2017-01-14 22:46       ` Steve Longerbeam
2017-01-14 22:46       ` Steve Longerbeam
2017-01-16 13:47       ` Philipp Zabel
2017-01-16 13:47         ` Philipp Zabel
2017-01-16 13:47         ` Philipp Zabel
2017-01-23  2:31         ` Steve Longerbeam
2017-01-23  2:31           ` Steve Longerbeam
2017-01-23  2:31           ` Steve Longerbeam
2017-01-23 11:13           ` Philipp Zabel
2017-01-23 11:13             ` Philipp Zabel
2017-01-23 11:13             ` Philipp Zabel
2017-01-24  1:38             ` Steve Longerbeam
2017-01-24  1:38               ` Steve Longerbeam
2017-01-24  1:38               ` Steve Longerbeam
2017-01-24  1:45               ` Steve Longerbeam
2017-01-24  1:45                 ` Steve Longerbeam
2017-01-24  1:45                 ` Steve Longerbeam
2017-01-24 11:37                 ` Philipp Zabel
2017-01-24 11:37                   ` Philipp Zabel
2017-01-24 11:37                   ` Philipp Zabel
2017-01-30 15:28             ` Russell King - ARM Linux
2017-01-30 15:28               ` Russell King - ARM Linux
2017-01-30 15:28               ` Russell King - ARM Linux
2017-01-30 22:29   ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-02-02 22:44   ` Russell King - ARM Linux
2017-02-02 22:44     ` Russell King - ARM Linux
2017-02-02 22:44     ` Russell King - ARM Linux
2017-02-02 22:50   ` Russell King - ARM Linux
2017-02-02 22:50     ` Russell King - ARM Linux
2017-02-02 22:50     ` Russell King - ARM Linux
2017-02-07  1:54     ` Steve Longerbeam
2017-02-07  1:54       ` Steve Longerbeam
2017-02-07  1:54       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 17/24] media: imx: Add CSI subdev driver Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-16 15:03   ` Philipp Zabel
2017-01-16 15:03     ` Philipp Zabel
2017-01-16 15:03     ` Philipp Zabel
2017-01-16 21:15     ` Steve Longerbeam [this message]
2017-01-16 21:15       ` Steve Longerbeam
2017-01-16 21:15       ` Steve Longerbeam
2017-01-30 22:29   ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-01-31 10:30   ` Russell King - ARM Linux
2017-01-31 10:30     ` Russell King - ARM Linux
2017-01-31 10:30     ` Russell King - ARM Linux
2017-01-31 11:20   ` Russell King - ARM Linux
2017-01-31 11:20     ` Russell King - ARM Linux
2017-01-31 11:20     ` Russell King - ARM Linux
2017-02-01  0:31     ` Steve Longerbeam
2017-02-01  0:31       ` Steve Longerbeam
2017-02-01  0:31       ` Steve Longerbeam
2017-02-01  0:58       ` Russell King - ARM Linux
2017-02-01  0:58         ` Russell King - ARM Linux
2017-02-01  0:58         ` Russell King - ARM Linux
2017-01-31 15:51   ` Philipp Zabel
2017-01-31 15:51     ` Philipp Zabel
2017-01-31 15:51     ` Philipp Zabel
2017-01-31 16:48     ` Philipp Zabel
2017-01-31 16:48       ` Philipp Zabel
2017-01-31 16:48       ` Philipp Zabel
2017-02-01  1:40       ` Steve Longerbeam
2017-02-01  1:40         ` Steve Longerbeam
2017-02-01  1:40         ` Steve Longerbeam
2017-02-07 16:18   ` [PATCH] media: imx: csi: fix crop rectangle reset in sink set_fmt Philipp Zabel
2017-02-07 16:18     ` Philipp Zabel
2017-02-07 16:18     ` Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 18/24] media: imx: Add SMFC subdev driver Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-02-01 18:39   ` Russell King - ARM Linux
2017-02-01 18:39     ` Russell King - ARM Linux
2017-02-01 18:39     ` Russell King - ARM Linux
2017-02-01 18:52     ` Steve Longerbeam
2017-02-01 18:52       ` Steve Longerbeam
2017-02-01 18:52       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 19/24] media: imx: Add IC subdev drivers Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-20 14:29   ` Hans Verkuil
2017-01-20 14:29     ` Hans Verkuil
2017-01-20 14:29     ` Hans Verkuil
2017-01-25  2:39     ` Steve Longerbeam
2017-01-25  2:39       ` Steve Longerbeam
2017-01-25  2:39       ` Steve Longerbeam
2017-01-30 22:29   ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-01-30 22:29     ` Russell King - ARM Linux
2017-01-07  2:11 ` [PATCH v3 20/24] media: imx: Add Camera Interface subdev driver Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-20 14:38   ` Hans Verkuil
2017-01-20 14:38     ` Hans Verkuil
2017-01-20 14:38     ` Hans Verkuil
2017-01-24  2:15     ` Steve Longerbeam
2017-01-24  2:15       ` Steve Longerbeam
2017-01-31 13:42     ` Russell King - ARM Linux
2017-01-31 13:42       ` Russell King - ARM Linux
2017-01-31 13:42       ` Russell King - ARM Linux
2017-01-31 18:21       ` Steve Longerbeam
2017-01-31 18:21         ` Steve Longerbeam
2017-01-31 20:33         ` Russell King - ARM Linux
2017-01-31 20:33           ` Russell King - ARM Linux
2017-01-31 20:33           ` Russell King - ARM Linux
2017-01-31 21:55           ` Ian Arkver
2017-01-31 21:55             ` Ian Arkver
2017-01-31 21:55             ` Ian Arkver
2017-01-31 22:04             ` Russell King - ARM Linux
2017-01-31 22:04               ` Russell King - ARM Linux
2017-01-31 22:04               ` Russell King - ARM Linux
2017-01-31 22:33               ` Ian Arkver
2017-01-31 22:33                 ` Ian Arkver
2017-01-31 22:33                 ` Ian Arkver
2017-01-31 22:36               ` Steve Longerbeam
2017-01-31 22:36                 ` Steve Longerbeam
2017-01-31 22:36                 ` Steve Longerbeam
2017-01-31 23:30                 ` Russell King - ARM Linux
2017-01-31 23:30                   ` Russell King - ARM Linux
2017-01-31 23:30                   ` Russell King - ARM Linux
2017-01-31 23:41                   ` Steve Longerbeam
2017-01-31 23:41                     ` Steve Longerbeam
2017-01-31 23:41                     ` Steve Longerbeam
2017-02-02 22:35   ` Russell King - ARM Linux
2017-02-02 22:35     ` Russell King - ARM Linux
2017-02-02 22:35     ` Russell King - ARM Linux
2017-02-07  1:52     ` Steve Longerbeam
2017-02-07  1:52       ` Steve Longerbeam
2017-02-07  1:52       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 21/24] media: imx: Add MIPI CSI-2 Receiver " Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-30 22:30   ` Russell King - ARM Linux
2017-01-30 22:30     ` Russell King - ARM Linux
2017-01-30 22:30     ` Russell King - ARM Linux
2017-01-31  0:01   ` Russell King - ARM Linux
2017-01-31  0:01     ` Russell King - ARM Linux
2017-01-31  0:01     ` Russell King - ARM Linux
2017-01-31  9:49     ` Philipp Zabel
2017-01-31  9:49       ` Philipp Zabel
2017-01-31  9:49       ` Philipp Zabel
2017-02-01  1:02       ` Steve Longerbeam
2017-02-01  1:02         ` Steve Longerbeam
2017-02-01  1:02         ` Steve Longerbeam
2017-02-01  1:13         ` Russell King - ARM Linux
2017-02-01  1:13           ` Russell King - ARM Linux
2017-02-01  1:13           ` Russell King - ARM Linux
2017-01-31  0:31   ` Russell King - ARM Linux
2017-01-31  0:31     ` Russell King - ARM Linux
2017-01-31  0:31     ` Russell King - ARM Linux
2017-01-31  2:11     ` Steve Longerbeam
2017-01-31  2:11       ` Steve Longerbeam
2017-01-31  2:11       ` Steve Longerbeam
2017-02-01 23:44   ` Russell King - ARM Linux
2017-02-01 23:44     ` Russell King - ARM Linux
2017-02-01 23:44     ` Russell King - ARM Linux
2017-02-02  0:04     ` Steve Longerbeam
2017-02-02  0:04       ` Steve Longerbeam
2017-02-02  0:04       ` Steve Longerbeam
2017-02-02 11:50   ` Philipp Zabel
2017-02-02 11:50     ` Philipp Zabel
2017-02-02 11:50     ` Philipp Zabel
2017-02-08 23:23     ` Steve Longerbeam
2017-02-08 23:23       ` Steve Longerbeam
2017-02-08 23:23       ` Steve Longerbeam
2017-02-08 23:42       ` Russell King - ARM Linux
2017-02-08 23:42         ` Russell King - ARM Linux
2017-02-08 23:42         ` Russell King - ARM Linux
2017-02-09 23:49         ` Steve Longerbeam
2017-02-09 23:49           ` Steve Longerbeam
2017-02-09 23:49           ` Steve Longerbeam
2017-02-09 23:51           ` Steve Longerbeam
2017-02-09 23:51             ` Steve Longerbeam
2017-02-09 23:51             ` Steve Longerbeam
2017-02-13  9:20             ` Philipp Zabel
2017-02-13  9:20               ` Philipp Zabel
2017-02-13  9:20               ` Philipp Zabel
2017-02-13 23:19               ` Steve Longerbeam
2017-02-13 23:20               ` Steve Longerbeam
2017-02-13 23:20                 ` Steve Longerbeam
2017-02-13 23:20                 ` Steve Longerbeam
2017-02-14 16:59                 ` Philipp Zabel
2017-02-14 16:59                   ` Philipp Zabel
2017-02-14 16:59                   ` Philipp Zabel
2017-02-09  9:43       ` Philipp Zabel
2017-02-09  9:43         ` Philipp Zabel
2017-02-09  9:43         ` Philipp Zabel
2017-01-07  2:11 ` [PATCH v3 22/24] media: imx: Add MIPI CSI-2 OV5640 sensor " Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-20 14:48   ` Hans Verkuil
2017-01-20 14:48     ` Hans Verkuil
2017-01-25 19:10     ` Steve Longerbeam
2017-01-25 19:10       ` Steve Longerbeam
2017-01-30 23:29   ` Russell King - ARM Linux
2017-01-30 23:29     ` Russell King - ARM Linux
2017-01-30 23:29     ` Russell King - ARM Linux
2017-01-31  3:31     ` Steve Longerbeam
2017-01-31  3:31       ` Steve Longerbeam
2017-01-31  3:31       ` Steve Longerbeam
2017-02-02 10:36   ` Laurent Pinchart
2017-02-02 10:36     ` Laurent Pinchart
2017-02-02 10:36     ` Laurent Pinchart
2017-02-12 22:46     ` Steve Longerbeam
2017-02-12 22:53     ` Steve Longerbeam
2017-02-12 22:53       ` Steve Longerbeam
2017-02-12 22:53       ` Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 23/24] media: imx: Add Parallel OV5642 " Steve Longerbeam
2017-01-07  2:11 ` [PATCH v3 24/24] ARM: imx_v6_v7_defconfig: Enable staging video4linux drivers Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-07  2:11   ` Steve Longerbeam
2017-01-11 23:14 ` [PATCH v3 00/24] i.MX Media Driver Tim Harvey
2017-01-11 23:14   ` Tim Harvey
2017-01-11 23:14   ` Tim Harvey
2017-01-12  3:22   ` Steve Longerbeam
2017-01-12  3:22     ` Steve Longerbeam
2017-01-12  3:22     ` Steve Longerbeam
2017-01-12 21:13     ` Tim Harvey
2017-01-12 22:32       ` Steve Longerbeam
2017-01-13 21:04         ` Tim Harvey
2017-01-20 13:52 ` Hans Verkuil
2017-01-20 13:52   ` Hans Verkuil
2017-01-20 13:52   ` Hans Verkuil
2017-01-20 16:31   ` Philipp Zabel
2017-01-20 16:31     ` Philipp Zabel
2017-01-20 16:31     ` Philipp Zabel
2017-01-20 18:40     ` Steve Longerbeam
2017-01-20 18:40       ` Steve Longerbeam
2017-01-20 20:39       ` Hans Verkuil
2017-01-20 20:39         ` Hans Verkuil
2017-01-20 20:39         ` Hans Verkuil
2017-01-23 11:00         ` Philipp Zabel
2017-01-23 11:00           ` Philipp Zabel
2017-01-23 11:00           ` Philipp Zabel
2017-01-23 11:08           ` Hans Verkuil
2017-01-23 11:08             ` Hans Verkuil
2017-01-23 11:08             ` Hans Verkuil
2017-01-24 11:28             ` Philipp Zabel
2017-01-24 11:28               ` Philipp Zabel
2017-01-24 11:28               ` Philipp Zabel
2017-01-23 23:08           ` Steve Longerbeam
2017-01-23 23:08             ` Steve Longerbeam
2017-01-24 11:27             ` Philipp Zabel
2017-01-24 11:27               ` Philipp Zabel
2017-01-24 11:27               ` Philipp Zabel
2017-01-28 19:27               ` Steve Longerbeam
2017-01-28 19:27                 ` Steve Longerbeam
2017-01-28 19:27                 ` Steve Longerbeam
2017-01-30 13:06               ` Russell King - ARM Linux
2017-01-30 13:06                 ` Russell King - ARM Linux
2017-01-30 13:06                 ` Russell King - ARM Linux
2017-01-31 10:09                 ` Philipp Zabel
2017-01-31 10:09                   ` Philipp Zabel
2017-01-31 10:09                   ` Philipp Zabel
2017-01-31 13:14                   ` Russell King - ARM Linux
2017-01-31 13:14                     ` Russell King - ARM Linux
2017-01-31 13:14                     ` Russell King - ARM Linux
2017-01-31 13:35                     ` Philipp Zabel
2017-01-31 13:35                       ` Philipp Zabel
2017-01-31 13:35                       ` Philipp Zabel
2017-01-31 14:04                       ` Russell King - ARM Linux
2017-01-31 14:04                         ` Russell King - ARM Linux
2017-01-31 14:04                         ` Russell King - ARM Linux
2017-01-31  0:45 ` Russell King - ARM Linux
2017-01-31  0:45   ` Russell King - ARM Linux
2017-01-31  0:45   ` Russell King - ARM Linux
2017-01-31  1:06   ` Russell King - ARM Linux
2017-01-31  1:06     ` Russell King - ARM Linux
2017-01-31  1:06     ` Russell King - ARM Linux
2017-01-31  2:06     ` Steve Longerbeam
2017-01-31  2:06       ` Steve Longerbeam
2017-01-31  2:06       ` Steve Longerbeam
2017-01-31  1:22   ` Steve Longerbeam
2017-01-31  1:22     ` Steve Longerbeam
2017-01-31  1:22     ` Steve Longerbeam
2017-01-31  9:49     ` Philipp Zabel
2017-01-31  9:49       ` Philipp Zabel
2017-01-31  9:49       ` Philipp Zabel
2017-01-31 10:21     ` Russell King - ARM Linux
2017-01-31 10:21       ` Russell King - ARM Linux
2017-01-31 10:21       ` Russell King - ARM Linux
2017-01-31 11:00     ` Russell King - ARM Linux
2017-01-31 11:00       ` Russell King - ARM Linux
2017-01-31 11:00       ` Russell King - ARM Linux
2017-01-31 23:43       ` Steve Longerbeam
2017-01-31 23:43         ` Steve Longerbeam
2017-01-31 23:43         ` Steve Longerbeam
2017-02-01  0:23         ` Russell King - ARM Linux
2017-02-01  0:23           ` Russell King - ARM Linux
2017-02-01  0:23           ` Russell King - ARM Linux
2017-02-01  1:54           ` Steve Longerbeam
2017-02-01  1:54             ` Steve Longerbeam
2017-02-01  1:54             ` Steve Longerbeam
2017-02-01  9:20             ` Russell King - ARM Linux
2017-02-01  9:20               ` Russell King - ARM Linux
2017-02-01  9:20               ` Russell King - ARM Linux
2017-01-31 13:54 ` Philipp Zabel
2017-01-31 13:54   ` Philipp Zabel
2017-01-31 13:54   ` Philipp Zabel
2017-01-31 14:25   ` Philipp Zabel
2017-01-31 14:25     ` Philipp Zabel
2017-01-31 14:25     ` Philipp Zabel
2017-01-31 15:03     ` Russell King - ARM Linux
2017-01-31 15:03       ` Russell King - ARM Linux
2017-01-31 15:03       ` Russell King - ARM Linux
2017-02-01  1:26   ` Steve Longerbeam
2017-02-01  1:26     ` Steve Longerbeam
2017-02-01  1:26     ` Steve Longerbeam
2017-02-01  9:30     ` Philipp Zabel
2017-02-01  9:30       ` Philipp Zabel
2017-02-01  9:30       ` Philipp Zabel
2017-02-01 10:11       ` Russell King - ARM Linux
2017-02-01 10:11         ` Russell King - ARM Linux
2017-02-01 10:11         ` Russell King - ARM Linux
2017-02-01 10:42         ` Philipp Zabel
2017-02-01 10:42           ` Philipp Zabel
2017-02-01 10:42           ` Philipp Zabel
2017-02-01 10:53           ` Russell King - ARM Linux
2017-02-01 10:53             ` Russell King - ARM Linux
2017-02-01 10:53             ` Russell King - ARM Linux
2017-02-02  0:19       ` Steve Longerbeam
2017-02-02  0:19         ` Steve Longerbeam
2017-02-02  0:19         ` Steve Longerbeam
2017-02-03 14:41         ` Laurent Pinchart
2017-02-03 14:41           ` Laurent Pinchart
2017-02-03 14:41           ` Laurent Pinchart
2017-02-03 17:56           ` Steve Longerbeam
2017-02-03 17:56             ` Steve Longerbeam
2017-02-03 17:56             ` Steve Longerbeam
2017-02-15  2:27   ` Steve Longerbeam
2017-02-15  2:27     ` Steve Longerbeam
2017-02-15  2:27     ` Steve Longerbeam
2017-02-15  9:33     ` Philipp Zabel
2017-02-15  9:33       ` Philipp Zabel
2017-02-15  9:33       ` Philipp Zabel
2017-02-02 17:22 ` Russell King - ARM Linux
2017-02-02 17:22   ` Russell King - ARM Linux
2017-02-02 17:22   ` Russell King - ARM Linux
2017-02-02 17:31   ` Steve Longerbeam
2017-02-02 17:31     ` Steve Longerbeam
2017-02-02 17:31     ` Steve Longerbeam
2017-02-02 17:56   ` Russell King - ARM Linux
2017-02-02 17:56     ` Russell King - ARM Linux
2017-02-02 17:56     ` Russell King - ARM Linux
2017-02-02 18:26     ` Steve Longerbeam
2017-02-02 18:26       ` Steve Longerbeam
2017-02-02 18:26       ` Steve Longerbeam
2017-02-02 18:58       ` Russell King - ARM Linux
2017-02-02 18:58         ` Russell King - ARM Linux
2017-02-02 18:58         ` Russell King - ARM Linux
2017-02-02 19:12         ` Steve Longerbeam
2017-02-02 19:12           ` Steve Longerbeam
2017-02-02 19:12           ` Steve Longerbeam
2017-02-02 22:29           ` Russell King - ARM Linux
2017-02-02 22:29             ` Russell King - ARM Linux
2017-02-02 22:29             ` Russell King - ARM Linux
2017-02-03 18:49             ` Steve Longerbeam
2017-02-03 18:49               ` Steve Longerbeam
2017-02-03 18:49               ` Steve Longerbeam
2017-02-03 14:21           ` vb2 queue_setup documentation clarification (was "Re: [PATCH v3 00/24] i.MX Media Driver") Laurent Pinchart
2017-02-03 14:31             ` 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=fa368f78-42f6-6f2f-0761-1f775eb5d707@gmail.com \
    --to=slongerbeam@gmail.com \
    --cc=andrew-ct.chen@mediatek.com \
    --cc=arnd@arndb.de \
    --cc=bparrot@ti.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=devicetree@vger.kernel.org \
    --cc=fabio.estevam@nxp.com \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=horms+renesas@verge.net.au \
    --cc=hverkuil@xs4all.nl \
    --cc=jean-christophe.trotin@st.com \
    --cc=kernel@pengutronix.de \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=markus.heiser@darmarIT.de \
    --cc=mchehab@kernel.org \
    --cc=minghsiu.tsai@mediatek.com \
    --cc=nick@shmanahar.org \
    --cc=niklas.soderlund+renesas@ragnatech.se \
    --cc=p.zabel@pengutronix.de \
    --cc=robert.jarzmik@free.fr \
    --cc=robh+dt@kernel.org \
    --cc=shawnguo@kernel.org \
    --cc=songjun.wu@microchip.com \
    --cc=steve_longerbeam@mentor.com \
    --cc=sudipm.mukherjee@gmail.com \
    --cc=tiffany.lin@mediatek.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.