linux/drivers/base/regmap
Jim Wylder 85646d7796 regmap-i2c: Subtract reg size from max_write
[ Upstream commit 611b7eb19d ]

Currently, when an adapter defines a max_write_len quirk,
the data will be chunked into data sizes equal to the
max_write_len quirk value.  But the payload will be increased by
the size of the register address before transmission.  The
resulting value always ends up larger than the limit set
by the quirk.

Avoid this error by setting regmap's max_write to the quirk's
max_write_len minus the number of bytes for the register and
padding.  This allows the chunking to work correctly for this
limited case without impacting other use-cases.

Signed-off-by: Jim Wylder <jwylder@google.com>
Link: https://msgid.link/r/20240523211437.2839942-1-jwylder@google.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-07-11 12:47:17 +02:00
..
internal.h regmap: Add bulk read/write callbacks into regmap_config 2022-05-05 13:22:34 +01: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
regcache-flat.c regmap: add proper SPDX identifiers on files that did not have them. 2019-04-25 20:22:15 +01:00
regcache-lzo.c regmap: lzo: Switch to bitmap_zalloc() 2019-06-17 15:18:44 +01:00
regcache-rbtree.c regmap: rbtree: Fix wrong register marked as in-cache when creating new node 2023-10-10 22:00:41 +02:00
regcache.c regmap: fix bogus error on regcache_sync success 2023-12-13 18:39:20 +01:00
regmap-ac97.c regmap: add proper SPDX identifiers on files that did not have them. 2019-04-25 20:22:15 +01:00
regmap-debugfs.c regmap: debugfs: Fix a erroneous check after snprintf() 2023-11-20 11:51:55 +01:00
regmap-i2c.c regmap-i2c: Subtract reg size from max_write 2024-07-11 12:47:17 +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: add proper SPDX identifiers on files that did not have them. 2019-04-25 20:22:15 +01:00
regmap-w1.c regmap: Constify static regmap_bus structs 2022-04-04 08:41:50 +01:00
regmap.c regmap: prevent noinc writes from clobbering cache 2023-11-20 11:52:15 +01:00
trace.h regmap: trace: Remove unneeded blank lines 2022-09-05 13:09:45 +01:00