From: Takashi Iwai <tiwai@suse.de>
To: Devin Christensen <dchristensen8@proton.me>
Cc: tiwai@suse.de, linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5] ALSA: hda/ca0132: Add Sound BlasterX AE-5 external RGB LED strip support
Date: Wed, 07 Oct 2026 19:27:24 +0200 [thread overview]
Message-ID: <87ece1775v.wl-tiwai@suse.de> (raw)
In-Reply-To: <20261007163207.2621040-1-dchristensen8@proton.me>
On Wed, 07 Oct 2026 18:32:14 +0200,
Devin Christensen wrote:
>
> 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>
Applied now to for-next branch. Thanks.
Takashi
prev parent reply other threads:[~2026-10-07 17:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-05 14:13 [PATCH v3] ALSA: hda/ca0132: Add Sound BlasterX AE-5 external RGB LED strip support Devin Christensen
2026-10-06 13:54 ` Takashi Iwai
2026-10-06 15:25 ` [PATCH v4] " Devin Christensen
2026-10-07 16:32 ` [PATCH v5] " Devin Christensen
2026-10-07 17:27 ` Takashi Iwai [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ece1775v.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=dchristensen8@proton.me \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.