From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: jacopo mondi <jacopo@jmondi.org>
Cc: Jacopo Mondi <jacopo+renesas@jmondi.org>,
magnus.damm@gmail.com, geert@glider.be, mchehab@kernel.org,
hverkuil@xs4all.nl, robh+dt@kernel.org, mark.rutland@arm.com,
linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org,
linux-sh@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 7/9] media: i2c: ov772x: Remove soc_camera dependencies
Date: Wed, 03 Jan 2018 17:49:55 +0200 [thread overview]
Message-ID: <2597640.1dqQloDucb@avalon> (raw)
In-Reply-To: <20180103154458.GD9493@w540>
Hi Jacopo,
On Wednesday, 3 January 2018 17:44:58 EET jacopo mondi wrote:
> On Tue, Jan 02, 2018 at 05:44:03PM +0200, Laurent Pinchart wrote:
> > On Thursday, 28 December 2017 16:01:19 EET Jacopo Mondi wrote:
> >> Remove soc_camera framework dependencies from ov772x sensor driver.
> >> - Handle clock and gpios
> >> - Register async subdevice
> >> - Remove soc_camera specific g/s_mbus_config operations
> >> - Change image format colorspace to SRGB
> >
> > Could you explain the rationale for this ?
>
> Hans suggested this, and I assume it is beacause COLORSPACE_JPEG ==
> (COLORSPACE_SRGB + assumptions on quantization ranges) which does not
> apply to the sensor.
Could you capture it in the commit message ? :-)
> >> - Remove sizes crop from get_selection as driver can't scale
> >> - Add kernel doc to driver interface header file
> >> - Adjust build system
> >
> > That's a lot for a single patch. On the other hand I don't think splitting
> > this in 7 patches would be a good idea either. If you can find a better
> > granularity, go for it, otherwise keep it as-is. Same comment for the
> > tw9910 driver.
>
> I know.
> I would have kept changes down to the minimum required to remove
> soc_camera dependencies, but I received comments on other parts of the
> driver not directly soc_camera specific. I understand this, since I'm
> touching the driver it is maybe worth changing some parts of it that
> needs updates..
>
> >> This commit does not remove the original soc_camera based driver as long
> >> as other platforms depends on soc_camera-based CEU driver.
> >>
> >> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> >> ---
> >>
> >> drivers/media/i2c/Kconfig | 11 +++
> >> drivers/media/i2c/Makefile | 1 +
> >> drivers/media/i2c/ov772x.c | 169 +++++++++++++++++++++++++-------------
> >> include/media/i2c/ov772x.h | 8 ++-
> >> 4 files changed, 130 insertions(+), 59 deletions(-)
> >>
> >> diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig
> >> index cb5d7ff..a61d7f4 100644
> >> --- a/drivers/media/i2c/Kconfig
> >> +++ b/drivers/media/i2c/Kconfig
> >
> > [snip]
> >
> >> diff --git a/drivers/media/i2c/ov772x.c b/drivers/media/i2c/ov772x.c
> >> index 8063835..f7b293f 100644
> >> --- a/drivers/media/i2c/ov772x.c
> >> +++ b/drivers/media/i2c/ov772x.c
> >> @@ -1,6 +1,9 @@
> >
> > [snip]
> >
> >> @@ -25,8 +26,8 @@
> >>
> >> #include <linux/videodev2.h>
> >>
> >> #include <media/i2c/ov772x.h>
> > >
> > > -#include <media/soc_camera.h>
> > > -#include <media/v4l2-clk.h>
> > > +
> > > +#include <media/v4l2-device.h>
> > >
> > > #include <media/v4l2-ctrls.h>
> >
> > I think C comes before D.
> >
> > > #include <media/v4l2-subdev.h>
> > > #include <media/v4l2-image-sizes.h>
> >
> > [snip]
> >
> >> @@ -650,13 +653,63 @@ static int ov772x_s_register(struct v4l2_subdev
> >> *sd,
> >> }
> >> #endif
> >>
> >> +static int ov772x_power_on(struct ov772x_priv *priv)
> >> +{
> >> + struct i2c_client *client = v4l2_get_subdevdata(&priv->subdev);
> >> + int ret;
> >> +
> >> + if (priv->info->xclk_rate)
> >> + ret = clk_set_rate(priv->clk, priv->info->xclk_rate);
> >
> > The return value is then ignored.
> >
> > I wonder whether the clk_set_rate() call shouldn't be kept in board code
> > as it's a board-specific frequency. DT platforms would use the
> > assigned-clock-rates property that doesn't require any explicit handling
> > in the driver.
>
> DT based platforms won't have any info->xlkc_rate, so they should be
> fine. I wonder how could I set rate in board code, as I'm just
> registering an alias for the clock there...
Exactly as done by the current code, get the clock and set the rate :) You can
do that at initialization time, when you register the alias. Don't forget to
put the clock too.
> >> + if (priv->clk) {
> >> + ret = clk_prepare_enable(priv->clk);
> >> + if (ret)
> >> + return ret;
> >> + }
> >> +
> >> + if (priv->pwdn_gpio) {
> >> + gpiod_set_value(priv->pwdn_gpio, 1);
> >> + usleep_range(500, 1000);
> >> + }
> >> +
> >> + /* Reset GPIOs are shared in some platforms. */
> >
> > I'd make this a FIXME comment as this is really a hack.
> >
> > /*
> > * FIXME: The reset signal is connected to a shared GPIO on some
> > * platforms (namely the SuperH Migo-R). Until a framework becomes
> > * available to handle this cleanly, request the GPIO temporarily
> > * only to avoid conflicts.
> > */
> >
> > Same for the tw9910 driver.
>
> Ack.
--
Regards,
Laurent Pinchart
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: jacopo mondi <jacopo@jmondi.org>
Cc: Jacopo Mondi <jacopo+renesas@jmondi.org>,
magnus.damm@gmail.com, geert@glider.be, mchehab@kernel.org,
hverkuil@xs4all.nl, robh+dt@kernel.org, mark.rutland@arm.com,
linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org,
linux-sh@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 7/9] media: i2c: ov772x: Remove soc_camera dependencies
Date: Wed, 03 Jan 2018 15:49:55 +0000 [thread overview]
Message-ID: <2597640.1dqQloDucb@avalon> (raw)
In-Reply-To: <20180103154458.GD9493@w540>
Hi Jacopo,
On Wednesday, 3 January 2018 17:44:58 EET jacopo mondi wrote:
> On Tue, Jan 02, 2018 at 05:44:03PM +0200, Laurent Pinchart wrote:
> > On Thursday, 28 December 2017 16:01:19 EET Jacopo Mondi wrote:
> >> Remove soc_camera framework dependencies from ov772x sensor driver.
> >> - Handle clock and gpios
> >> - Register async subdevice
> >> - Remove soc_camera specific g/s_mbus_config operations
> >> - Change image format colorspace to SRGB
> >
> > Could you explain the rationale for this ?
>
> Hans suggested this, and I assume it is beacause COLORSPACE_JPEG =
> (COLORSPACE_SRGB + assumptions on quantization ranges) which does not
> apply to the sensor.
Could you capture it in the commit message ? :-)
> >> - Remove sizes crop from get_selection as driver can't scale
> >> - Add kernel doc to driver interface header file
> >> - Adjust build system
> >
> > That's a lot for a single patch. On the other hand I don't think splitting
> > this in 7 patches would be a good idea either. If you can find a better
> > granularity, go for it, otherwise keep it as-is. Same comment for the
> > tw9910 driver.
>
> I know.
> I would have kept changes down to the minimum required to remove
> soc_camera dependencies, but I received comments on other parts of the
> driver not directly soc_camera specific. I understand this, since I'm
> touching the driver it is maybe worth changing some parts of it that
> needs updates..
>
> >> This commit does not remove the original soc_camera based driver as long
> >> as other platforms depends on soc_camera-based CEU driver.
> >>
> >> Signed-off-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
> >> ---
> >>
> >> drivers/media/i2c/Kconfig | 11 +++
> >> drivers/media/i2c/Makefile | 1 +
> >> drivers/media/i2c/ov772x.c | 169 +++++++++++++++++++++++++-------------
> >> include/media/i2c/ov772x.h | 8 ++-
> >> 4 files changed, 130 insertions(+), 59 deletions(-)
> >>
> >> diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig
> >> index cb5d7ff..a61d7f4 100644
> >> --- a/drivers/media/i2c/Kconfig
> >> +++ b/drivers/media/i2c/Kconfig
> >
> > [snip]
> >
> >> diff --git a/drivers/media/i2c/ov772x.c b/drivers/media/i2c/ov772x.c
> >> index 8063835..f7b293f 100644
> >> --- a/drivers/media/i2c/ov772x.c
> >> +++ b/drivers/media/i2c/ov772x.c
> >> @@ -1,6 +1,9 @@
> >
> > [snip]
> >
> >> @@ -25,8 +26,8 @@
> >>
> >> #include <linux/videodev2.h>
> >>
> >> #include <media/i2c/ov772x.h>
> > >
> > > -#include <media/soc_camera.h>
> > > -#include <media/v4l2-clk.h>
> > > +
> > > +#include <media/v4l2-device.h>
> > >
> > > #include <media/v4l2-ctrls.h>
> >
> > I think C comes before D.
> >
> > > #include <media/v4l2-subdev.h>
> > > #include <media/v4l2-image-sizes.h>
> >
> > [snip]
> >
> >> @@ -650,13 +653,63 @@ static int ov772x_s_register(struct v4l2_subdev
> >> *sd,
> >> }
> >> #endif
> >>
> >> +static int ov772x_power_on(struct ov772x_priv *priv)
> >> +{
> >> + struct i2c_client *client = v4l2_get_subdevdata(&priv->subdev);
> >> + int ret;
> >> +
> >> + if (priv->info->xclk_rate)
> >> + ret = clk_set_rate(priv->clk, priv->info->xclk_rate);
> >
> > The return value is then ignored.
> >
> > I wonder whether the clk_set_rate() call shouldn't be kept in board code
> > as it's a board-specific frequency. DT platforms would use the
> > assigned-clock-rates property that doesn't require any explicit handling
> > in the driver.
>
> DT based platforms won't have any info->xlkc_rate, so they should be
> fine. I wonder how could I set rate in board code, as I'm just
> registering an alias for the clock there...
Exactly as done by the current code, get the clock and set the rate :) You can
do that at initialization time, when you register the alias. Don't forget to
put the clock too.
> >> + if (priv->clk) {
> >> + ret = clk_prepare_enable(priv->clk);
> >> + if (ret)
> >> + return ret;
> >> + }
> >> +
> >> + if (priv->pwdn_gpio) {
> >> + gpiod_set_value(priv->pwdn_gpio, 1);
> >> + usleep_range(500, 1000);
> >> + }
> >> +
> >> + /* Reset GPIOs are shared in some platforms. */
> >
> > I'd make this a FIXME comment as this is really a hack.
> >
> > /*
> > * FIXME: The reset signal is connected to a shared GPIO on some
> > * platforms (namely the SuperH Migo-R). Until a framework becomes
> > * available to handle this cleanly, request the GPIO temporarily
> > * only to avoid conflicts.
> > */
> >
> > Same for the tw9910 driver.
>
> Ack.
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2018-01-03 15:49 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-28 14:01 [PATCH v2 0/9] Renesas Capture Engine Unit (CEU) V4L2 driver Jacopo Mondi
2017-12-28 14:01 ` Jacopo Mondi
2017-12-28 14:01 ` [PATCH v2 1/9] dt-bindings: media: Add Renesas CEU bindings Jacopo Mondi
2017-12-28 14:01 ` Jacopo Mondi
2017-12-28 14:01 ` Jacopo Mondi
2018-01-02 9:34 ` Geert Uytterhoeven
2018-01-02 9:34 ` Geert Uytterhoeven
2018-01-02 11:45 ` Laurent Pinchart
2018-01-02 11:45 ` Laurent Pinchart
2018-01-03 8:49 ` jacopo mondi
2018-01-03 8:49 ` jacopo mondi
2018-01-03 11:22 ` Laurent Pinchart
2018-01-03 11:22 ` Laurent Pinchart
2017-12-28 14:01 ` [PATCH v2 2/9] include: media: Add Renesas CEU driver interface Jacopo Mondi
2017-12-28 14:01 ` Jacopo Mondi
2018-01-02 11:50 ` Laurent Pinchart
2018-01-02 11:50 ` Laurent Pinchart
2018-01-03 9:00 ` jacopo mondi
2018-01-03 9:00 ` jacopo mondi
2017-12-28 14:01 ` [PATCH v2 3/9] v4l: platform: Add Renesas CEU driver Jacopo Mondi
2017-12-28 14:01 ` Jacopo Mondi
2018-01-02 13:46 ` Laurent Pinchart
2018-01-02 13:46 ` Laurent Pinchart
2018-01-02 13:46 ` Laurent Pinchart
2018-01-03 10:47 ` jacopo mondi
2018-01-03 10:47 ` jacopo mondi
2018-01-03 11:19 ` Laurent Pinchart
2018-01-03 11:19 ` Laurent Pinchart
2017-12-28 14:01 ` [PATCH v2 4/9] ARM: dts: r7s72100: Add Capture Engine Unit (CEU) Jacopo Mondi
2017-12-28 14:01 ` Jacopo Mondi
2018-01-02 9:35 ` Geert Uytterhoeven
2018-01-02 9:35 ` Geert Uytterhoeven
2018-01-02 9:35 ` Geert Uytterhoeven
2018-01-02 13:54 ` Laurent Pinchart
2018-01-02 13:54 ` Laurent Pinchart
2018-01-02 13:54 ` Laurent Pinchart
2017-12-28 14:01 ` [PATCH v2 5/9] arch: sh: migor: Use new renesas-ceu camera driver Jacopo Mondi
2017-12-28 14:01 ` Jacopo Mondi
2017-12-30 19:04 ` kbuild test robot
2017-12-30 19:04 ` kbuild test robot
2017-12-30 19:04 ` kbuild test robot
2018-01-02 15:27 ` Laurent Pinchart
2018-01-02 15:27 ` Laurent Pinchart
2017-12-28 14:01 ` [PATCH v2 6/9] v4l: i2c: Copy ov772x soc_camera sensor driver Jacopo Mondi
2017-12-28 14:01 ` Jacopo Mondi
2017-12-29 12:47 ` Philippe Ombredanne
2017-12-29 12:47 ` Philippe Ombredanne
2018-01-02 9:00 ` jacopo mondi
2018-01-02 9:00 ` jacopo mondi
2017-12-28 14:01 ` [PATCH v2 7/9] media: i2c: ov772x: Remove soc_camera dependencies Jacopo Mondi
2017-12-28 14:01 ` Jacopo Mondi
2018-01-02 15:44 ` Laurent Pinchart
2018-01-02 15:44 ` Laurent Pinchart
2018-01-03 15:44 ` jacopo mondi
2018-01-03 15:44 ` jacopo mondi
2018-01-03 15:44 ` jacopo mondi
2018-01-03 15:49 ` Laurent Pinchart [this message]
2018-01-03 15:49 ` Laurent Pinchart
2018-01-03 16:24 ` jacopo mondi
2018-01-03 16:24 ` jacopo mondi
2017-12-28 14:01 ` [PATCH v2 8/9] v4l: i2c: Copy tw9910 soc_camera sensor driver Jacopo Mondi
2017-12-28 14:01 ` Jacopo Mondi
2017-12-28 14:01 ` [PATCH v2 9/9] media: i2c: tw9910: Remove soc_camera dependencies Jacopo Mondi
2017-12-28 14:01 ` Jacopo Mondi
2018-01-02 15:50 ` Laurent Pinchart
2018-01-02 15:50 ` Laurent Pinchart
2018-01-03 16:24 ` jacopo mondi
2018-01-03 16:24 ` jacopo mondi
2018-01-03 16:41 ` Fabio Estevam
2018-01-03 16:41 ` Fabio Estevam
2018-01-03 17:13 ` jacopo mondi
2018-01-03 17:13 ` jacopo mondi
2018-01-03 17:13 ` jacopo mondi
2018-01-03 17:27 ` Fabio Estevam
2018-01-03 17:27 ` Fabio Estevam
2018-01-03 17:37 ` jacopo mondi
2018-01-03 17:37 ` jacopo mondi
2018-01-03 18:14 ` Fabio Estevam
2018-01-03 18:14 ` Fabio Estevam
2018-01-03 19:34 ` jacopo mondi
2018-01-03 19:34 ` jacopo mondi
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=2597640.1dqQloDucb@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=devicetree@vger.kernel.org \
--cc=geert@glider.be \
--cc=hverkuil@xs4all.nl \
--cc=jacopo+renesas@jmondi.org \
--cc=jacopo@jmondi.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=magnus.damm@gmail.com \
--cc=mark.rutland@arm.com \
--cc=mchehab@kernel.org \
--cc=robh+dt@kernel.org \
/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.