[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YjRHgGgYfYODAmoi@aptenodytes>
Date: Fri, 18 Mar 2022 09:49:04 +0100
From: Paul Kocialkowski <paul.kocialkowski@...tlin.com>
To: Jernej Škrabec <jernej.skrabec@...il.com>
Cc: linux-kernel@...r.kernel.org, linux-media@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-sunxi@...ts.linux.dev,
Yong Deng <yong.deng@...ewell.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Chen-Yu Tsai <wens@...e.org>,
Samuel Holland <samuel@...lland.org>,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Petazzoni <thomas.petazzoni@...tlin.com>
Subject: Re: [PATCH v3 03/46] media: sun6i-csi: Grab bus clock instead of
passing it to regmap
Hi Jernej,
On Tue 15 Mar 22, 20:22, Jernej Škrabec wrote:
> Hi Paul!
>
> Dne petek, 11. marec 2022 ob 15:34:49 CET je Paul Kocialkowski napisal(a):
> > Since the bus clock alone is not enough to get access to the registers,
> > don't pass it to regmap and manage it instead just like the other
> > clocks.
> >
>
> Let me ask it in another way, is bus clock needed only for register access? If
> yes, it makes sense to keep it enabled only during register access.
Ah right, I lost sight that what regmap will do is to enable/disable the
clock around register access. I understand there might be an advantage
in terms of power consumption here.
I haven't checked specifically, but since it was used like that before
it's probably fine.
Out of curiosity: is there any noticeable latency added by the process?
Cheers,
Paul
> Best regards,
> Jernej
>
> > Signed-off-by: Paul Kocialkowski <paul.kocialkowski@...tlin.com>
> > ---
> > drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c | 10 ++++++++--
> > drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h | 1 +
> > 2 files changed, 9 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c b/drivers/
> media/platform/sunxi/sun6i-csi/sun6i_csi.c
> > index 5fbaa1e99412..dc79f3c14336 100644
> > --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c
> > +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.c
> > @@ -827,13 +827,19 @@ static int sun6i_csi_resource_request(struct
> sun6i_csi_device *csi_dev,
> > if (IS_ERR(io_base))
> > return PTR_ERR(io_base);
> >
> > - csi_dev->regmap = devm_regmap_init_mmio_clk(&pdev->dev, "bus",
> io_base,
> > -
> &sun6i_csi_regmap_config);
> > + csi_dev->regmap = devm_regmap_init_mmio(&pdev->dev, io_base,
> > +
> &sun6i_csi_regmap_config);
> > if (IS_ERR(csi_dev->regmap)) {
> > dev_err(&pdev->dev, "Failed to init register map\n");
> > return PTR_ERR(csi_dev->regmap);
> > }
> >
> > + csi_dev->clk_bus = devm_clk_get(&pdev->dev, "bus");
> > + if (IS_ERR(csi_dev->clk_bus)) {
> > + dev_err(&pdev->dev, "Unable to acquire bus clock\n");
> > + return PTR_ERR(csi_dev->clk_bus);
> > + }
> > +
> > csi_dev->clk_mod = devm_clk_get(&pdev->dev, "mod");
> > if (IS_ERR(csi_dev->clk_mod)) {
> > dev_err(&pdev->dev, "Unable to acquire csi clock\n");
> > diff --git a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h b/drivers/
> media/platform/sunxi/sun6i-csi/sun6i_csi.h
> > index e4e7ac6c869f..356661b413f8 100644
> > --- a/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h
> > +++ b/drivers/media/platform/sunxi/sun6i-csi/sun6i_csi.h
> > @@ -51,6 +51,7 @@ struct sun6i_csi_device {
> > struct sun6i_video video;
> >
> > struct regmap *regmap;
> > + struct clk *clk_bus;
> > struct clk *clk_mod;
> > struct clk *clk_ram;
> > struct reset_control *reset;
> > --
> > 2.35.1
> >
> >
>
>
--
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)
Powered by blists - more mailing lists