All of lore.kernel.org
 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: 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 [this message]
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

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 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.