mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: Robin van der Gracht <robin@protonic.nl>
Cc: barebox@lists.infradead.org
Subject: Re: [PATCH master 2/7] nvmem: bsec: correct regmap's max_register
Date: Mon, 8 Jan 2024 11:44:00 +0100	[thread overview]
Message-ID: <48a6551d-b6a9-45de-bcca-71599b39a1ba@pengutronix.de> (raw)
In-Reply-To: <20240108112958.3b582cbb@ERD993>

Hello Robin,

On 08.01.24 11:29, Robin van der Gracht wrote:
> Hi Ahmad,
> 
> Comments are below.
> 
> On Tue,  2 Jan 2024 18:00:55 +0100
> Ahmad Fatoum <a.fatoum@pengutronix.de> wrote:
> 
>> The max_register must be a multiple of the register stride, which is not
>> the case for (384 / 4) - 1 == 95. Instead, we should be setting 380, so
>> fix the calculation to do this.
>>
>> Fixes: 094ce0ee7cdf ("nvmem: bsec: correct regmap's max_register")
>> Reported-by: Robin van der Gracht <robin@protonic.nl>
>> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
>> ---
>>  drivers/nvmem/bsec.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/nvmem/bsec.c b/drivers/nvmem/bsec.c
>> index 889f14428d59..22e30c6c2e82 100644
>> --- a/drivers/nvmem/bsec.c
>> +++ b/drivers/nvmem/bsec.c
>> @@ -218,7 +218,7 @@ static int stm32_bsec_probe(struct device *dev)
>>  	priv->map_config.reg_bits = 32;
>>  	priv->map_config.val_bits = 32;
>>  	priv->map_config.reg_stride = 4;
>> -	priv->map_config.max_register = (data->size / 4) - 1;
>> +	priv->map_config.max_register = data->size - priv->map_config.reg_stride;
>>  
>>  	priv->lower = data->lower;
>>  
> 
> This patch gives a bsec device size of 1520 bytes. Which means I'm now
> allowed to read/write beyond register 95 without an error.
> 
> barebox@board:/ ls -l /dev/stm32-bsec
> crw-------           1520 /dev/stm32-bsec
> 
> The device size is now in bytes, but the read/write offsets given to
> the md and mw commands is still in bytes/stride.
> 
> I.e. to read register 95:
> md -l -s /dev/stm32-bsec 380+4 
> 0000017c: xxxxxxxx
> 
> I can now also read register 100:
> md -l -s /dev/stm32-bsec 400+4 
> 00000190: 00000000                                           ....
> 
> This doesn't seem right.
> 
> max_register should probably stay 95. See doc[1]
> 
> 1:https://git.pengutronix.de/cgit/barebox/tree/include/linux/regmap.h?h=v2023.12.0#n33

Did you apply the whole series? With the whole series applied I have:

barebox@Linux Automation MC-1 board:/ ls -l /dev/stm32-bsec 
crw-------            384 /dev/stm32-bsec

Because there are two issues (size in bsec driver is wrong, cdev size is calculated wrong),
I need to decide which to fix first or squash them. I chose to make the size intermittently
bigger (so reading valid offsets still work) instead of making it smaller and breaking
bisect (or squashing all and making it less easy to review).

Cheers,
Ahmad

> 
> Robin
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




  reply	other threads:[~2024-01-08 10:45 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-02 17:00 [PATCH master 0/7] regmap: fix size of regmap-backed cdev and nvmem Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 1/7] regmap: fix calculation of regmap size when reg_stride != 1 Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 2/7] nvmem: bsec: correct regmap's max_register Ahmad Fatoum
2024-01-08 10:29   ` Robin van der Gracht
2024-01-08 10:44     ` Ahmad Fatoum [this message]
2024-01-08 11:17       ` Robin van der Gracht
2024-01-08 12:48         ` Robin van der Gracht
2024-01-11  7:35           ` Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 3/7] nvmem: startfive-otp: " Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 4/7] nvmem: imx-ocotp-ele: " Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 5/7] nvmem: ocotp: " Ahmad Fatoum
2024-01-02 17:00 ` [PATCH master 6/7] nvmem: ocotp: align OCOTP bank count with Linux Ahmad Fatoum
2024-01-02 17:01 ` [PATCH master 7/7] nvmem: regmap: Fix nvmem size Ahmad Fatoum
2024-01-08  9:43 ` [PATCH master 0/7] regmap: fix size of regmap-backed cdev and nvmem Sascha Hauer

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=48a6551d-b6a9-45de-bcca-71599b39a1ba@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=robin@protonic.nl \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox