[alsa-devel] Use Case Manager Test Drive [Was: Re: ASoC: Hiding unused CODEC mixer widgets in the machine driver]

Liam Girdwood lrg at slimlogic.co.uk
Sun Aug 8 11:25:31 CEST 2010

On Sun, 2010-08-08 at 09:07 +1000, Stuart Longland wrote:
> Hi Mark, Liam...
> On 08/06/10 21:42, Liam Girdwood wrote:
> > On Fri, 2010-08-06 at 12:34 +0100, Liam Girdwood wrote:
> >> On Fri, 2010-08-06 at 12:19 +0100, Mark Brown wrote:
> >>> The machine driver shouldn't be doing this - it's too fragile in the
> >>> face of any changes in the drivers and means hard coding use cases into
> >>> the kernel which is really bad practice since it's much slower than
> >>> doing things from user space and much harder to change as new needs
> >>> arise.
> >>
> >> Please do give UCM (Use Case Manager) a test drive. We are in the late
> >> development / early testing phase before upstreaming (still one or two
> >> things todo).
> >>
> >> You will need to checkout the use-case-verb branches of :-
> >>
> >> git://git.slimlogic.co.uk/alsa-lib.git
> >>
> >> git://git.slimlogic.co.uk/alsa-utils.git
> >>
> >> There is a tool called alsaucm that allows changing the use case from
> >> the command line. Best to use it's interactive (-i) mode atm.
> >>
> >> There is also an initial repository for UCM use case configuration files
> >> here :-
> >>
> >> git://git.slimlogic.co.uk/alsa-ucm-conf.git
> >>
> >> This will show the format required to describe use cases.
> >>
> > 
> > Forgot to add that patches are most welcome.
> No worries... I can see there being possible issues with the machine
> driver being highly sensitive to changes to the CODEC driver, I was just
> curious if there was some mechanism for abstracting this.
> However, a userspace solution will probably work well... I'll have a
> look and report back any findings.  How close is this to being merged
> into the main alsa-lib and alsa-utils trees?

We are aiming for sometime in the next two weeks. There are still
roughly two things that need fixing:-

1) Drop the control ID from the use case configuration files. i.e.

In order to enable the 'DL1 Mixer Multimedia' path we have a config like

73:'DL1 Mixer Multimedia':1:1

this would just become

'DL1 Mixer Multimedia':1:1

This way we are not reliant on ID numbers that can easily change when
driver updates occur (something that is catching me atm with a new
driver). The control names are always very constant and unique though.

2) Add a small shared memory segment to store state information for
multiple client access.


Freelance Developer, SlimLogic Ltd
ASoC and Voltage Regulator Maintainer.

More information about the Alsa-devel mailing list