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.
Liam
--
Freelance Developer, SlimLogic Ltd
ASoC and Voltage Regulator Maintainer.
http://www.slimlogic.co.uk