[alsa-devel] Exposing control of my device

Jaroslav Kysela perex at perex.cz
Tue Jul 29 10:15:30 CEST 2008

On Mon, 28 Jul 2008, Jon Smirl wrote:

> My device has 220 registers, some of these are quite long (32 bytes)
> and I have split them up into multiple 32b pseudo registers.  That
> results in about 300 registers for a TAS5504 and 450 for a TAS5508.
> A large number of these registers are for BiQuads, DRC, loudness, etc.
> They're not general purpose ALSA functions. What is an efficient way
> to expose several hundred registers of this class? Making
> snd_kcontrols for all of them seems pretty inefficient.

Note you can handle up to 128 32-bit words in one snd_kcontrol, so if you 
can group some registers, you can reduce the number of controls.

Another possibility is to use the hwdep device and create own ioctl 
interface to drive your hw. But you'll lose nice things like event 
notifier (unless you implement it in hwdep, too).


Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.

More information about the Alsa-devel mailing list