[RFC PATCH v2 0/3] regmap: Add flat_cache_default_is_zero flag for flat cache

Sheetal .
2026-01-12T04:29:19Z

From: Sheetal <sheetal@nvidia.com>

This patch series adds a flat_cache_default_is_zero flag for REGCACHE_FLAT
that marks cache entries as valid on first read.

For hardware with zero power-on-reset registers, this avoids the need
to add all such registers to reg_defaults (maintenance burden, code
bloat, no functional benefit) just to set the validity bits.

By setting valid bits on read rather than at init, only accessed
registers are marked valid. This keeps regcache_sync scope minimal
and avoids writes to unused registers or holes.

Changes in v2:
- Renamed flag from cache_default_is_zero to flat_cache_default_is_zero
to make it explicit that this is specific to REGCACHE_FLAT
- Added KUnit test coverage (patch 2/3)
- Updated commit message to explain why valid bits are set on first
read rather than at init time

Sheetal (3):
regmap: Add flat_cache_default_is_zero flag for flat cache
regmap: Add KUnit test for flat_cache_default_is_zero
ASoC: tegra: Enable flat_cache_default_is_zero for audio drivers

drivers/base/regmap/internal.h | 2 ++
drivers/base/regmap/regcache-flat.c | 12 ++++++++----
drivers/base/regmap/regcache.c | 1 +
drivers/base/regmap/regmap-kunit.c | 93 ++++++++++++++++++++++++++++++
include/linux/regmap.h | 1 +
sound/soc/tegra/tegra186_asrc.c | 1 +
sound/soc/tegra/tegra186_dspk.c | 1 +
sound/soc/tegra/tegra210_admaif.c | 3 +++
sound/soc/tegra/tegra210_adx.c | 2 ++
sound/soc/tegra/tegra210_ahub.c | 3 +++
sound/soc/tegra/tegra210_amx.c | 3 +++
sound/soc/tegra/tegra210_dmic.c | 1 +
sound/soc/tegra/tegra210_i2s.c | 2 ++
sound/soc/tegra/tegra210_mbdrc.c | 1 +
sound/soc/tegra/tegra210_mixer.c | 1 +
sound/soc/tegra/tegra210_mvc.c | 1 +
sound/soc/tegra/tegra210_ope.c | 1 +
sound/soc/tegra/tegra210_peq.c | 1 +
sound/soc/tegra/tegra210_sfc.c | 1 +
19 files changed, 127 insertions(+), 4 deletions(-)

--
2.34.1