[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20170210080514.nrryisw4y2wbs5wk@lukather>
Date: Fri, 10 Feb 2017 09:05:14 +0100
From: Maxime Ripard <maxime.ripard@...e-electrons.com>
To: Icenowy Zheng <icenowy@...c.xyz>
Cc: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>,
Rob Herring <robh+dt@...nel.org>, Chen-Yu Tsai <wens@...e.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-sunxi@...glegroups.com" <linux-sunxi@...glegroups.com>
Subject: Re: [PATCH v3 2/3] nvmem: sunxi-sid: add support for H3's SID
controller
On Tue, Feb 07, 2017 at 09:36:35PM +0800, Icenowy Zheng wrote:
> >> >> @@ -51,7 +64,8 @@ static u8 sunxi_sid_read_byte(const struct sunxi_sid *sid,
> >> >> {
> >> >> u32 sid_key;
> >> >>
> >> >> - sid_key = ioread32be(sid->base + round_down(offset, 4));
> >> >> + sid_key = ioread32be(sid->base + sid->value_offset +
> >> >> + round_down(offset, 4));
> >> >
> >> > This would probably be more logical to have this in sunxi_sid_read.
> >>
> >> But it's here which really access the memory...
> >
> > This function is made to read a single register. What you want is to
> > offset all reads, and all the reads are made in sunxi_sid_read.
>
> I think the semantic of this function is to read out one byte from SID,
> not read out a single register from SID; the parameter passed into it is
> also a const struct *sunxi_sid, so I think make the offset here is right.
You need to offset *all* register reads, it makes much more sense to
do that offset in the function that reads all the registers, and not
just one.
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
Download attachment "signature.asc" of type "application/pgp-signature" (802 bytes)
Powered by blists - more mailing lists