From: Rui Miguel Silva <rui.silva@linaro.org>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: devel@driverdev.osuosl.org, devicetree@vger.kernel.org,
sakari.ailus@linux.intel.com,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Ryan Harkin <ryan.harkin@linaro.org>,
Rob Herring <robh+dt@kernel.org>,
Rui Miguel Silva <rui.silva@linaro.org>,
Philipp Zabel <p.zabel@pengutronix.de>,
Steve Longerbeam <slongerbeam@gmail.com>,
Fabio Estevam <fabio.estevam@nxp.com>,
mchehab@kernel.org, Shawn Guo <shawnguo@kernel.org>,
linux-media@vger.kernel.org
Subject: Re: [PATCH 02/15] media: staging/imx7: add imx7 CSI subdev driver
Date: Thu, 19 Apr 2018 15:03:34 +0100 [thread overview]
Message-ID: <m3in8n9tu1.fsf@linaro.org> (raw)
In-Reply-To: <20180419122230.6wygwob2ajbkbv7o@mwanda>
Hi,
On Thu 19 Apr 2018 at 12:22, Dan Carpenter wrote:
> On Thu, Apr 19, 2018 at 11:17:59AM +0100, Rui Miguel Silva
> wrote:
>> +static int imx7_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 imx7_csi *csi = v4l2_get_subdevdata(sd);
>> + struct v4l2_subdev *remote_sd;
>> + int ret = 0;
>> +
>> + dev_dbg(csi->dev, "link setup %s -> %s\n",
>> remote->entity->name,
>> + local->entity->name);
>> +
>> + mutex_lock(&csi->lock);
>> +
>> + if (local->flags & MEDIA_PAD_FL_SINK) {
>> + if (!is_media_entity_v4l2_subdev(remote->entity))
>> {
>> + ret = -EINVAL;
>> + goto unlock;
>> + }
>> +
>> + remote_sd =
>> media_entity_to_v4l2_subdev(remote->entity);
>> +
>> + if (flags & MEDIA_LNK_FL_ENABLED) {
>> + if (csi->src_sd) {
>> + ret = -EBUSY;
>> + goto unlock;
>> + }
>> + csi->src_sd = remote_sd;
>> + } else {
>> + csi->src_sd = NULL;
>> + }
>> +
>> + goto init;
>> + }
>> +
>> + /* source pad */
>> + if (flags & MEDIA_LNK_FL_ENABLED) {
>> + if (csi->sink) {
>> + ret = -EBUSY;
>> + goto unlock;
>> + }
>> + csi->sink = remote->entity;
>> + } else {
>> + v4l2_ctrl_handler_free(&csi->ctrl_hdlr);
>> + v4l2_ctrl_handler_init(&csi->ctrl_hdlr, 0);
>> + csi->sink = NULL;
>> + }
>> +
>> +init:
>> + if (csi->sink || csi->src_sd)
>> + imx7_csi_init(csi);
>> + else
>> + imx7_csi_deinit(csi);
>> +
>> +unlock:
>> + mutex_unlock(&csi->lock);
>> +
>> + return 0;
>
> This should be "return ret;" because the failure paths go
> through here
> as well.
Agree.
>
>> +}
>> +
>> +static int imx7_csi_pad_link_validate(struct v4l2_subdev *sd,
>> + struct media_link *link,
>> + struct v4l2_subdev_format
>> *source_fmt,
>> + struct v4l2_subdev_format
>> *sink_fmt)
>> +{
>> + struct imx7_csi *csi = v4l2_get_subdevdata(sd);
>> + struct v4l2_fwnode_endpoint upstream_ep;
>> + int ret;
>> +
>> + ret = v4l2_subdev_link_validate_default(sd, link,
>> source_fmt, sink_fmt);
>> + if (ret)
>> + return ret;
>> +
>> + ret = imx7_csi_get_upstream_endpoint(csi, &upstream_ep,
>> true);
>> + if (ret) {
>> + v4l2_err(&csi->sd, "failed to find upstream
>> endpoint\n");
>> + return ret;
>> + }
>> +
>> + mutex_lock(&csi->lock);
>> +
>> + csi->upstream_ep = upstream_ep;
>> + csi->is_csi2 = (upstream_ep.bus_type == V4L2_MBUS_CSI2);
>> +
>> + mutex_unlock(&csi->lock);
>> +
>> + return ret;
>
> return 0;
ack.
>
>> +}
>> +
>
> [ snip ]
>
>> +
>> +static int imx7_csi_remove(struct platform_device *pdev)
>> +{
>> + return 0;
>> +}
>
> There is no need for this empty (struct
> platform_driver)->remove()
> function. See platform_drv_remove() for how it's called.
right.
>
> This looks nice, though.
Thanks,
---
Cheers,
Rui
WARNING: multiple messages have this Message-ID (diff)
From: Rui Miguel Silva <rui.silva@linaro.org>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Rui Miguel Silva <rui.silva@linaro.org>,
mchehab@kernel.org, sakari.ailus@linux.intel.com,
Steve Longerbeam <slongerbeam@gmail.com>,
Philipp Zabel <p.zabel@pengutronix.de>,
Rob Herring <robh+dt@kernel.org>,
devel@driverdev.osuosl.org, devicetree@vger.kernel.org,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Ryan Harkin <ryan.harkin@linaro.org>,
Fabio Estevam <fabio.estevam@nxp.com>,
Shawn Guo <shawnguo@kernel.org>,
linux-media@vger.kernel.org
Subject: Re: [PATCH 02/15] media: staging/imx7: add imx7 CSI subdev driver
Date: Thu, 19 Apr 2018 15:03:34 +0100 [thread overview]
Message-ID: <m3in8n9tu1.fsf@linaro.org> (raw)
In-Reply-To: <20180419122230.6wygwob2ajbkbv7o@mwanda>
Hi,
On Thu 19 Apr 2018 at 12:22, Dan Carpenter wrote:
> On Thu, Apr 19, 2018 at 11:17:59AM +0100, Rui Miguel Silva
> wrote:
>> +static int imx7_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 imx7_csi *csi = v4l2_get_subdevdata(sd);
>> + struct v4l2_subdev *remote_sd;
>> + int ret = 0;
>> +
>> + dev_dbg(csi->dev, "link setup %s -> %s\n",
>> remote->entity->name,
>> + local->entity->name);
>> +
>> + mutex_lock(&csi->lock);
>> +
>> + if (local->flags & MEDIA_PAD_FL_SINK) {
>> + if (!is_media_entity_v4l2_subdev(remote->entity))
>> {
>> + ret = -EINVAL;
>> + goto unlock;
>> + }
>> +
>> + remote_sd =
>> media_entity_to_v4l2_subdev(remote->entity);
>> +
>> + if (flags & MEDIA_LNK_FL_ENABLED) {
>> + if (csi->src_sd) {
>> + ret = -EBUSY;
>> + goto unlock;
>> + }
>> + csi->src_sd = remote_sd;
>> + } else {
>> + csi->src_sd = NULL;
>> + }
>> +
>> + goto init;
>> + }
>> +
>> + /* source pad */
>> + if (flags & MEDIA_LNK_FL_ENABLED) {
>> + if (csi->sink) {
>> + ret = -EBUSY;
>> + goto unlock;
>> + }
>> + csi->sink = remote->entity;
>> + } else {
>> + v4l2_ctrl_handler_free(&csi->ctrl_hdlr);
>> + v4l2_ctrl_handler_init(&csi->ctrl_hdlr, 0);
>> + csi->sink = NULL;
>> + }
>> +
>> +init:
>> + if (csi->sink || csi->src_sd)
>> + imx7_csi_init(csi);
>> + else
>> + imx7_csi_deinit(csi);
>> +
>> +unlock:
>> + mutex_unlock(&csi->lock);
>> +
>> + return 0;
>
> This should be "return ret;" because the failure paths go
> through here
> as well.
Agree.
>
>> +}
>> +
>> +static int imx7_csi_pad_link_validate(struct v4l2_subdev *sd,
>> + struct media_link *link,
>> + struct v4l2_subdev_format
>> *source_fmt,
>> + struct v4l2_subdev_format
>> *sink_fmt)
>> +{
>> + struct imx7_csi *csi = v4l2_get_subdevdata(sd);
>> + struct v4l2_fwnode_endpoint upstream_ep;
>> + int ret;
>> +
>> + ret = v4l2_subdev_link_validate_default(sd, link,
>> source_fmt, sink_fmt);
>> + if (ret)
>> + return ret;
>> +
>> + ret = imx7_csi_get_upstream_endpoint(csi, &upstream_ep,
>> true);
>> + if (ret) {
>> + v4l2_err(&csi->sd, "failed to find upstream
>> endpoint\n");
>> + return ret;
>> + }
>> +
>> + mutex_lock(&csi->lock);
>> +
>> + csi->upstream_ep = upstream_ep;
>> + csi->is_csi2 = (upstream_ep.bus_type == V4L2_MBUS_CSI2);
>> +
>> + mutex_unlock(&csi->lock);
>> +
>> + return ret;
>
> return 0;
ack.
>
>> +}
>> +
>
> [ snip ]
>
>> +
>> +static int imx7_csi_remove(struct platform_device *pdev)
>> +{
>> + return 0;
>> +}
>
> There is no need for this empty (struct
> platform_driver)->remove()
> function. See platform_drv_remove() for how it's called.
right.
>
> This looks nice, though.
Thanks,
---
Cheers,
Rui
next prev parent reply other threads:[~2018-04-19 14:03 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-19 10:17 [PATCH 00/15] media: staging/imx7: add i.MX7 media driver Rui Miguel Silva
2018-04-19 10:17 ` Rui Miguel Silva
2018-04-19 10:17 ` [PATCH 01/15] media: staging/imx: add support to media dev for no IPU systems Rui Miguel Silva
2018-04-19 10:17 ` Rui Miguel Silva
2018-04-19 12:06 ` Dan Carpenter
2018-04-19 12:06 ` Dan Carpenter
2018-04-19 14:02 ` Rui Miguel Silva
2018-04-19 14:02 ` Rui Miguel Silva
2018-04-19 10:17 ` [PATCH 02/15] media: staging/imx7: add imx7 CSI subdev driver Rui Miguel Silva
2018-04-19 10:17 ` Rui Miguel Silva
2018-04-19 12:22 ` Dan Carpenter
2018-04-19 12:22 ` Dan Carpenter
2018-04-19 14:03 ` Rui Miguel Silva [this message]
2018-04-19 14:03 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 03/15] clk: imx7d: fix mipi dphy div parent Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 04/15] clk: imx7d: reset parent for mipi csi root Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 05/15] media: staging/imx7: add MIPI CSI-2 receiver subdev for i.MX7 Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 12:45 ` Dan Carpenter
2018-04-19 12:45 ` Dan Carpenter
2018-04-19 14:09 ` Rui Miguel Silva
2018-04-19 14:09 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 06/15] media: staging/imx: add imx7 capture subsystem Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 07/15] media: staging/imx: add 10 bit bayer support Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 13:38 ` Philipp Zabel
2018-04-19 13:38 ` Philipp Zabel
2018-04-19 14:20 ` Rui Miguel Silva
2018-04-19 14:20 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 08/15] ARM: dts: increase default cma size to 40MB Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 09/15] media: dt-bindings: add bindings for i.MX7 media driver Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 10/15] ARM: dts: imx7s: add mipi phy power domain Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 11/15] ARM: dts: imx7s: add multiplexer controls Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 12/15] ARM: dts: imx7: Add video mux, csi and mipi_csi and connections Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 13/15] ARM: dts: imx7s: add capture subsystem Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 14/15] media: imx7.rst: add documentation for i.MX7 media driver Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
2018-04-19 10:18 ` [PATCH 15/15] media: staging/imx: add i.MX7 entries to TODO file Rui Miguel Silva
2018-04-19 10:18 ` Rui Miguel Silva
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=m3in8n9tu1.fsf@linaro.org \
--to=rui.silva@linaro.org \
--cc=dan.carpenter@oracle.com \
--cc=devel@driverdev.osuosl.org \
--cc=devicetree@vger.kernel.org \
--cc=fabio.estevam@nxp.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=p.zabel@pengutronix.de \
--cc=robh+dt@kernel.org \
--cc=ryan.harkin@linaro.org \
--cc=sakari.ailus@linux.intel.com \
--cc=shawnguo@kernel.org \
--cc=slongerbeam@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
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.