struct regmap::max_register is in units of struct regmap::reg_stride. To get the total number or registers, we need to divide by reg_stride before adding one, but we ended up adding one before division. This is wrong at different places across the tree, leading to the last fuse to be inaccessible when not using the regmap API directly, i.e. when using a NVMEM registered by nvmem_register_regmap or the cdev instantiated in /dev. Ahmad Fatoum (6): regmap: fix calculation of regmap size when reg_stride != 1 nvmem: bsec: correct regmap's max_register nvmem: startfive-otp: correct regmap's max_register nvmem: imx-ocotp-ele: correct regmap's max_register nvmem: ocotp: correct regmap's max_register nvmem: ocotp: align OCOTP bank count with Linux Robin van der Gracht (1): nvmem: regmap: Fix nvmem size drivers/base/regmap/regmap.c | 28 ++++++++++++++++++++++++++-- drivers/nvmem/bsec.c | 2 +- drivers/nvmem/imx-ocotp-ele.c | 2 +- drivers/nvmem/ocotp.c | 24 ++++++++++++------------ drivers/nvmem/regmap.c | 4 ++-- drivers/nvmem/starfive-otp.c | 2 +- 6 files changed, 43 insertions(+), 19 deletions(-) -- 2.39.2