linux/drivers/base/regmap
Matthias Reichl d91fb1b7b7 regmap: fix bogus error on regcache_sync success
commit fea8806444 upstream.

Since commit 0ec7731655 ("regmap: Ensure range selector registers
are updated after cache sync") opening pcm512x based soundcards fail
with EINVAL and dmesg shows sync cache and pm_runtime_get errors:

[  228.794676] pcm512x 1-004c: Failed to sync cache: -22
[  228.794740] pcm512x 1-004c: ASoC: error at snd_soc_pcm_component_pm_runtime_get on pcm512x.1-004c: -22

This is caused by the cache check result leaking out into the
regcache_sync return value.

Fix this by making the check local-only, as the comment above the
regcache_read call states a non-zero return value means there's
nothing to do so the return value should not be altered.

Fixes: 0ec7731655 ("regmap: Ensure range selector registers are updated after cache sync")
Cc: stable@vger.kernel.org
Signed-off-by: Matthias Reichl <hias@horus.com>
Link: https://lore.kernel.org/r/20231203222216.96547-1-hias@horus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2023-12-13 18:36:44 +01:00
..
internal.h regmap: teach regmap to use raw spinlocks if requested in the config 2021-08-26 12:07:32 +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 21:59:06 +02:00
regcache.c regmap: fix bogus error on regcache_sync success 2023-12-13 18:36:44 +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:08:16 +01:00
regmap-i2c.c regmap: Account for register length in SMBus I/O limits 2023-07-27 08:46:54 +02:00
regmap-i3c.c regmap: add i3c bus support 2019-06-07 13:09:55 +01:00
regmap-irq.c regmap-irq: Fix offset/index mismatch in read_sub_irq_data() 2022-06-29 09:03:25 +02:00
regmap-mdio.c regmap: mdio: Reject invalid addresses 2021-06-14 15:00:29 +01:00
regmap-mmio.c regmap: Prefer unsigned int to bare use of unsigned 2021-07-11 23:48:43 +01:00
regmap-sccb.c regmap: sccb: fix typo and sort headers alphabetically 2018-07-23 18:05:08 +01:00
regmap-sdw-mbq.c regmap: sdw-mbq: use MODULE_LICENSE("GPL") 2021-02-11 10:54:00 +05:30
regmap-sdw.c regmap: sdw: use _no_pm functions in regmap_read/write 2021-02-11 10:54:00 +05:30
regmap-slimbus.c regmap: slimbus: add support to multi read/write 2018-07-11 11:58:04 +01:00
regmap-spi-avmm.c regmap: Drop initial version of maximum transfer length fixes 2023-07-27 08:46:54 +02:00
regmap-spi.c regmap: add proper SPDX identifiers on files that did not have them. 2019-04-25 20:22:15 +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: regmap-w1: Drop unreachable code 2019-11-19 13:09:20 +00:00
regmap.c regmap: prevent noinc writes from clobbering cache 2023-11-20 11:08:27 +01:00
trace.h regmap: Remove duplicate type field from regmap regcache_sync trace event 2020-11-24 14:14:00 +00:00