diff options
| author | Devin Christensen <dchristensen8@proton.me> | 2026-10-07 16:32:14 +0000 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2026-10-07 19:26:56 +0200 |
| commit | c3e35f355fadf6be660e1fd356bb22140dda8e46 (patch) | |
| tree | 1f15515d85859ee9540bd6fac783fa958d9846bb /tools/lib/python | |
| parent | eb6237f64909d54540267581967293f2d423bb4c (diff) | |
ALSA: hda/ca0132: Add Sound BlasterX AE-5 external RGB LED strip support
The Sound BlasterX AE-5 and AE-5 Plus expose a 3-pin 5V addressable RGB
header driven directly by the CA0113 PCIe-to-HD-Audio bridge. Rather
than using the CA0132 DSP or MMIO GPIO, the CA0113 contains an
autonomous HDA link sniffer that snoops a designated HDA DMA playback
stream, extracts the 24-bit GRB color payload, and serializes it as
800 kHz single-wire NRZ pulses to the strip (WS2812B protocol).
Expose the strip through volatile card control elements:
"AE-5 LED Strip" (RW, BYTES): 300-byte RGB payload representing
up to 100 addressable LEDs (3 bytes per LED).
"AE-5 LED Strip Count" (RW, INTEGER): Active LED count (1..100).
The controls are marked with IFACE_CARD and SNDRV_CTL_ELEM_ACCESS_VOLATILE
so changes do not trigger unnecessary audio daemon wakeups or state
restoration by alsactl.
Writes allocate an idle HDA playback stream, format a 32 KB DMA buffer
populated with repeating WS2812 frames (preamble, audio words per LED,
and reset gap), configure the CA0113 BAR2 serializers and stream-tag
pin mux, and pulse the stream long enough for the reset latch to fire.
Access is serialized with a per-spec mutex, and the controls are only
registered on QUIRK_AE5 devices.
The strip transport uses snd_hdac_dsp_prepare() / snd_hdac_dsp_cleanup(),
which require CONFIG_SND_HDA_DSP_LOADER. All strip-related code and struct
fields are conditionally compiled under
IS_ENABLED(CONFIG_SND_HDA_DSP_LOADER), with a no-op stub for
ae5_add_strip_controls() when disabled.
Signed-off-by: Devin Christensen <dchristensen8@proton.me>
Link: https://patch.msgid.link/20261007163207.2621040-1-dchristensen8@proton.me
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions
