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

Richard Fitzgerald <[email protected]> Wed, 5 Aug 2026 11:36:36 +0100
Newsgroups org.kernel.vger.linux-sound,org.kernel.vger.stable
Message-ID <[email protected]>
On 05/08/2026 11:17 am, Péter Ujfalusi wrote:
> 
> 
> On 05/08/2026 13:10, Charles Keepax wrote:
>>>> I don't think we need to sort them. Just fail, so that an unsorted table
>>>> must be fixed.
>>>
>>> That would be a big regression all around the place, ordering w/ the
>>> debug message if developer is interested is much better.
>>
>> I think I would come down between the two of you. I definitely
>> agree with Richard on don't sort them, just encourages drivers to
>> be wrong. But I also agree with you, don't hard fail. I would
>> vote for just print an error message and carry on. That way no
>> regressions, but also a nice big warning message to let people
>> know what is wrong when they see problems.
> 
> I usually try to avoid alarming/annoying users with error messages, on
> the other hand I agree that w/o some pressure, these will never be
> corrected at root either ;)
> 
> On the yet another hand, if the regcache have means to fix this, it
> might be put into use as well.
> A dev_warn at max to get attention or info level perhaps and fixing it up?
> 
I asked Codex (GPT5) to search for all reg_default tables with out-of
order entries or duplicate entries, looking only at those assigned to
struct regmap_config.reg_defaults (some reg_defaults tables are used for
patching - those are allowed to be out-of-order).

It came up with this:

Restricting results to tables referenced by struct
regmap_config.reg_defaults, 39 files violate the rule:

   drivers/firmware/cirrus/test/cs_dsp_mock_regmap.c
   drivers/leds/leds-lp50xx.c
   drivers/mfd/cs42l43.c
   drivers/platform/mellanox/mlx-platform.c
   drivers/power/supply/bq25980_charger.c
   sound/soc/codecs/ad1836.c
   sound/soc/codecs/adau1373.c
   sound/soc/codecs/adau1761.c
   sound/soc/codecs/adau1781.c
   sound/soc/codecs/cs35l41-lib.c
   sound/soc/codecs/cs35l45-tables.c
   sound/soc/codecs/cs4265.c
   sound/soc/codecs/cx2072x.c
   sound/soc/codecs/lm49453.c
   sound/soc/codecs/max9860.c
   sound/soc/codecs/ml26124.c
   sound/soc/codecs/msm8916-wcd-analog.c
   sound/soc/codecs/pcm512x.c
   sound/soc/codecs/pm4125-sdw.c
   sound/soc/codecs/rt1019.c
   sound/soc/codecs/rt1318.c
   sound/soc/codecs/rt274.c
   sound/soc/codecs/rt286.c
   sound/soc/codecs/rt298.c
   sound/soc/codecs/rt700-sdw.h
   sound/soc/codecs/rt711-sdw.h
   sound/soc/codecs/rt715-sdw.h
   sound/soc/codecs/sgtl5000.c
   sound/soc/codecs/sti-sas.c
   sound/soc/codecs/tas2552.c
   sound/soc/codecs/tas2764.c
   sound/soc/codecs/tas2780.c
   sound/soc/codecs/tas675x.c
   sound/soc/codecs/wm8996.c
   sound/soc/fsl/fsl_easrc.c
   sound/soc/tegra/tegra210_admaif.c
   sound/soc/tegra/tegra210_i2s.c
   sound/soc/tegra/tegra210_mbdrc.c
   sound/soc/tegra/tegra210_mixer.c