mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-11-13 07:31:07 +00:00
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
This commit is contained in:
commit
8ac49fbf00
392 changed files with 10711 additions and 1755 deletions
5
.mailmap
5
.mailmap
2
Makefile
2
Makefile
4
arch/riscv/include/uapi/asm/vendor/mips.h
vendored
4
arch/riscv/include/uapi/asm/vendor/mips.h
vendored
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue