Re: [PATCH] ALSA: hda/ca0132: Restore AE-5 audio registers after LED strip send

From: Takashi Iwai

Date: Wed Nov 04 2026 - 02:33:30 EST


On Mon, 02 Nov 2026 23:57:23 +0100,
Rafael Medina wrote:
>
>
> The AE-5 LED strip transport added by commit c3e35f355fad ("ALSA:
> hda/ca0132: Add Sound BlasterX AE-5 external RGB LED strip support")
> reprograms the CA0113 audio serializer block in BAR2 to clock out the
> WS2812 data, and at the end clears only the stream routing register.
> The format and channel enable register at 0x100 is left at 0x3000ff8f
> instead of the 0x00000700 it reads after a normal codec init, and the
> analog outputs stay silent until the codec is initialised again.
>
> The strip control is marked volatile, but alsactl still stores it, and
> the udev rule runs "alsactl restore" for every card probe. The saved
> state of a card that never had a strip attached contains "AE-5 LED
> Strip" and "AE-5 LED Strip Count" with access "read write volatile".
> ae5_strip_ctl_put() sent a frame even when the colors were unchanged,
> so every boot of an AE-5 or AE-5 Plus ended with a silent card.
>
> Save the registers that the transmit touches before programming them
> and write them back at the end of ae5_strip_send_frame(), and do not
> transmit from ae5_strip_ctl_put() when the colors did not change.
>
> Fixes: c3e35f355fad ("ALSA: hda/ca0132: Add Sound BlasterX AE-5 external RGB LED strip support")
> Cc: Devin Christensen <dchristensen8@xxxxxxxxx>
> Signed-off-by: Rafael Medina <rafael@xxxxxxxxxxxxxx>

Applied now. Thanks.


Takashi