]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
ALSA: i2c: ak4xxx-adda: implement AK4529 reset handling
authorCássio Gabriel <cassiogabrielcontato@gmail.com>
Tue, 7 Apr 2026 21:13:06 +0000 (18:13 -0300)
committerTakashi Iwai <tiwai@suse.de>
Wed, 8 Apr 2026 08:17:53 +0000 (10:17 +0200)
commit66f6f543283e91b8899b0dd109d8f15a529e8464
tree59a25b92330ce5251de64bbc5d7ed22be40fdfa0
parent6f800c3397b7f64da4c9eb636a1206f8d8636c95
ALSA: i2c: ak4xxx-adda: implement AK4529 reset handling

Delta 410 uses snd_akm4xxx_reset() both around DFS changes and from
its PM callbacks, but the AK4529 case in this helper is still left
unimplemented and never drives the codec reset path.

The AK4529 datasheet documents register 09h.RSTN as an internal
timing reset. Clearing RSTN powers down the ADC and DAC blocks, but
does not reinitialize the register map. That matches the existing
ak4xxx helper model, which already keeps the desired codec state in
the software register cache.

Implement AK4529 reset handling by clearing 09h.RSTN on state == 1,
then replaying the cached register image and setting RSTN back to 1
on state == 0.

This restores cached Delta 410 mixer state after resume and gives
the AK4529 DFS-change path a real codec reset sequence.

Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
Link: https://patch.msgid.link/20260407-ak4529-reset-handling-v1-1-b971c18b1a32@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/i2c/other/ak4xxx-adda.c