mirror-linux/drivers/base/regmap
Mark Brown 3e463a4f38 regmap: Account for register length in SMBus I/O limits
commit 0c9d2eb5e9 upstream.

The SMBus I2C buses have limits on the size of transfers they can do but
do not factor in the register length meaning we may try to do a transfer
longer than our length limit, the core will not take care of this.
Future changes will factor this out into the core but there are a number
of users that assume current behaviour so let's just do something
conservative here.

This does not take account padding bits but practically speaking these
are very rarely if ever used on I2C buses given that they generally run
slowly enough to mean there's no issue.

Cc: stable@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Xu Yilun <yilun.xu@intel.com>
Link: https://lore.kernel.org/r/20230712-regmap-max-transfer-v1-2-80e2aed22e83@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-07-27 08:50:26 +02:00
..
Kconfig regmap: Add MDIO bus support 2021-05-19 14:19:10 +01:00
Makefile regmap: Add MDIO bus support 2021-05-19 14:19:10 +01:00
internal.h regmap: Add bulk read/write callbacks into regmap_config 2022-05-05 13:22:34 +01:00
regcache-flat.c
regcache-lzo.c regmap: lzo: Switch to bitmap_zalloc() 2019-06-17 15:18:44 +01:00
regcache-rbtree.c regmap: Fix possible double-free in regcache_rbtree_exit() 2021-10-12 11:48:43 +01:00
regcache.c regmap: cache: Return error in cache sync operations for REGCACHE_NONE 2023-05-24 17:32:34 +01:00
regmap-ac97.c
regmap-debugfs.c regmap: debugfs: Fix indentation 2022-01-07 19:16:23 +00:00
regmap-i2c.c regmap: Account for register length in SMBus I/O limits 2023-07-27 08:50:26 +02:00
regmap-i3c.c regmap: Constify static regmap_bus structs 2022-04-04 08:41:50 +01:00
regmap-irq.c regmap-irq: Fix out-of-bounds access when allocating config buffers 2023-07-23 13:49:44 +02:00
regmap-mdio.c net: Convert more users of mdiobus_* to mdiodev_* 2021-10-24 13:40:33 +01:00
regmap-mmio.c regmap: mmio: replace return 0 with break in switch statement 2022-09-22 12:33:18 +01:00
regmap-sccb.c regmap: Constify static regmap_bus structs 2022-04-04 08:41:50 +01:00
regmap-sdw-mbq.c regmap: Constify static regmap_bus structs 2022-04-04 08:41:50 +01:00
regmap-sdw.c regmap: Constify static regmap_bus structs 2022-04-04 08:41:50 +01:00
regmap-slimbus.c regmap: Constify static regmap_bus structs 2022-04-04 08:41:50 +01:00
regmap-spi-avmm.c regmap: Drop initial version of maximum transfer length fixes 2023-07-27 08:50:26 +02:00
regmap-spi.c regmap: spi: Reserve space for register address/padding 2022-08-18 15:02:05 +01:00
regmap-spmi.c
regmap-w1.c regmap: Constify static regmap_bus structs 2022-04-04 08:41:50 +01:00
regmap.c regmap: Drop initial version of maximum transfer length fixes 2023-07-27 08:50:26 +02:00
trace.h regmap: trace: Remove unneeded blank lines 2022-09-05 13:09:45 +01:00