lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ