Re: [PATCH 0/3] ASoC: cs35l41/cs35l45/cs4265: sort the reg_defaults tables

Charles Keepax <[email protected]> Wed, 5 Aug 2026 10:52:15 +0100
Newsgroups org.kernel.vger.linux-sound,org.kernel.vger.stable
Message-ID <[email protected]>
On Wed, Aug 05, 2026 at 10:38:24AM +0100, Richard Fitzgerald wrote:
> On 05/08/2026 10:25 am, Charles Keepax wrote:
> > On Wed, Aug 05, 2026 at 12:10:10PM +0300, Péter Ujfalusi wrote:
> > > On 05/08/2026 12:00, Richard Fitzgerald wrote:
> > > > > > Found by an audit of all reg_defaults tables under sound/, the SoundWire
> > > > > > codec drivers are fixed by a separate series.
> > > > > 
> > > > > Wow. Would it make sense to have a regmap helper to double-check the
> > > > > addresses are indeed in-order in those reg_default tables?
> > > > > I am not sure how this requirement can be enforced by just inspection, a
> > > > > warning would help detect this sort of issues on more platforms.
> > > > > 
> > > > It does seem probable that anything that relies on people just
> > > > remembering to keep a large table sorted is prone to breaking,
> > > > especially if the addresses are provided by named constant instead of
> > > > a list of hardcoded numbers.
> > > > 
> > > > Should regmap check the table when the regmap is first created?
> > > > As it has to search the table during normal use anyway, one extra walk
> > > > when the regmap is created probably isn't a serious overhead.
> > > 
> > > But it will be done for _all_ devices which uses regmap on boot, small
> > > things do add up, see my reply to Pierre-Louis.
> > 
> > Indeed, if we were to add some sort of auto-checker it should
> > be guarded behind something like perhaps a Kconfig option or the
> > DEBUG define.
> > 
> > Thanks,
> > Charles
> 
> regcache_init() already walks the defaults table checking the stride
> 
> 	for (i = 0; i < config->num_reg_defaults; i++)
> 		if (config->reg_defaults[i].reg % map->reg_stride)
> 			return -EINVAL;
> 
> so checking that each entry is larger than previous is trivial extra
> overhead. I think most regmaps are cached.

Hmm... in that case perhaps we should. Also if the regmap isn't
cached then the defaults don't really serve any purpose so should
cover all the cases that matter I think.

Thanks,
Charles