mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Devin Christensen <dchristensen8@proton.me>
Cc: linux-sound@vger.kernel.org, tiwai@suse.de, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3] ALSA: hda/ca0132: Add Sound BlasterX AE-5 external RGB LED strip support
Date: Tue, 06 Oct 2026 15:54:39 +0200	[thread overview]
Message-ID: <87mrsrorxc.wl-tiwai@suse.de> (raw)
In-Reply-To: <20261005141244.2130023-1-dchristensen8@proton.me>

On Mon, 05 Oct 2026 16:13:12 +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>

Now you got a few interesting points spotted by Sashiko review.
  https://sashiko.dev/#/patchset/20261005141244.2130023-1-dchristensen8%40proton.me

Could you take a look?


thanks,

Takashi

  reply	other threads:[~2026-10-06 13:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-05 14:13 Devin Christensen
2026-10-06 13:54 ` Takashi Iwai [this message]
2026-10-06 15:25   ` [PATCH v4] " Devin Christensen

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=87mrsrorxc.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®