diff options
| author | Mark Brown <broonie@kernel.org> | 2026-10-12 19:52:02 +0100 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-10-12 19:52:02 +0100 |
| commit | 8ac49fbf00e580e8ee1a66b120f8b33d9ab81901 (patch) | |
| tree | 8ae0fd870141ba1e55b84bea13ff295e979b0e08 /scripts/basic/split-include.c | |
| parent | 0936bbd35a247665c64886135835faa3c3f4f29f (diff) | |
| parent | 4db45fc1da3d62d0fa6e8f1e457ae92e8741ed07 (diff) | |
| download | linux-8ac49fbf00e580e8ee1a66b120f8b33d9ab81901.tar.gz linux-8ac49fbf00e580e8ee1a66b120f8b33d9ab81901.zip | |
ASoC: Fix controls that write another control's bits
HyeongJun An <sammiee5311@gmail.com> says:
In the es8316 thread Mark suggested checking at registration time for
controls whose register fields overlap [1]. Before adding such a check,
I wanted to see what it would find in the tree today.
A script expanded the control tables of every ASoC driver built by
allmodconfig and looked for two controls in one table whose register
fields overlap. It found 80 pairs in 33 drivers. Most are real bugs.
The rest are deliberate, where two names drive the same field, such as
the AC and DRC mode thresholds in sta32x.
This series fixes six that I could confirm against the vendor
datasheet. In each one, writing a control changes a different control,
and the bits it should own cannot be reached. Most date back to the
first version of the driver.
One more is left out on purpose. The cs42l56 ADC Mute Switch writes the
ADC invert bits. The real mute bits are also written by the
cs42l56_mute() callback on every stream start and stop, so moving the
control there would let the stream mute override it. I am not sure
whether you would rather move it or drop it.
I have none of this hardware, so these are checked against the
datasheets only. More fixes, checked against the register headers,
and the registration time check would follow.
[1] https://lore.kernel.org/all/0fefbfe1-021b-46b2-8945-15956e75e37f@sirena.org.uk/
Link: https://patch.msgid.link/20261008130953.2446692-1-sammiee5311@gmail.com
Diffstat (limited to 'scripts/basic/split-include.c')
0 files changed, 0 insertions, 0 deletions
