[PATCH v2] nvmem: regmap: Fix nvmem size
Robin van der Gracht
robin at protonic.nl
Wed Dec 20 04:38:43 PST 2023
Hi Ahmad,
On 2023-12-20 10:00, Ahmad Fatoum wrote:
> Hello Robin,
>
> Thanks for the fix.
>
> On 20.12.23 09:29, Robin van der Gracht wrote:
>> - if (roffset + rbytes > stride * regmap_get_max_register(map))
>> + if (roffset + rbytes > regmap_size_bytes(map) * stride)
>
> Shouldn't stride on the right hand side be dropped?
roffset = register index * stride.
I.e. 380 for register with index 95.
For stm32mp1x bsec:
map->format.val_bytes = 4
map->reg_stride = 4
regmap_size_bytes() = map->format.val_bytes * (95 + 1) / map->reg_stride
= 96
So the result with the stride on the right size is correct.
I moved stride from left to right to be consistent with the size
calculation
in nvmem_regmap_register_with_pp()
Kind regards,
Robin
>
> Cheers,
> Ahmad
>
>> return -EINVAL;
>>
>> for (i = roffset; i < roffset + rbytes; i += stride) {
>> @@ -78,7 +78,7 @@ nvmem_regmap_register_with_pp(struct regmap *map,
>> const char *name,
>> config.priv = map;
>> config.stride = 1;
>> config.word_size = 1;
>> - config.size = regmap_get_max_register(map) *
>> regmap_get_reg_stride(map);
>> + config.size = regmap_size_bytes(map) * regmap_get_reg_stride(map);
>> config.cell_post_process = cell_post_process;
>> config.reg_write = nvmem_regmap_write;
>> config.reg_read = nvmem_regmap_read;
More information about the barebox
mailing list