[alsa-devel] RFC: reworking ASOC for large registers

Mark Brown broonie at opensource.wolfsonmicro.com
Tue Jul 22 21:45:47 CEST 2008

On Tue, Jul 22, 2008 at 03:30:12PM -0400, Jon Smirl wrote:

> My new plan is to make it work on 32bit registers like it does
> currently, instead of 16b. I only need to use bitfield masks in the
> first 32bits.

Yes, that's needed anyway.  You might want to coordinate with Daniel
Ribeiro (CCed) who recently expressed an interest in the same thing.

> Then to access the wide registers I would encode it into the register
> names. So if the big mixer register is at 0x40 and it is 32 bytes wide
> the defines would look like this.

> #define MIXER_CHANNEL_0 0x0040

That sounds like a good solution to the problem of extremely large
registers.  Some other devices implement virtual registers, mostly to
allow them to map the functionality of the chip into DAPM rather than
for uses like this, though.

> What I'm missing is a fast way to bulk load a bunch of registers. If
> you change equalization settings from jazz to classical I need to
> update 50 registers in bulk.

A transaction interface in the ALSA API might be handy for stuff like
this - something that lets you indicate the start and end of a sequence
of control changes.  It would be helpful for DAPM pop/click suppression
during scenario changes too.

More information about the Alsa-devel mailing list