[alsa-devel] ALSACTL wrong restore on ARM9

Liam Girdwood lg at opensource.wolfsonmicro.com
Fri Mar 7 16:46:06 CET 2008


On Fri, 2008-03-07 at 16:28 +0100, Alexandre BOUIN wrote:
> > Can you describe 'bad values' in a little more detail.
> 
> You're right, some details are missing.
> 
> For example, for first control, a playback volume control, value can go from
> 0 to 63.
> Before "store" command, I'd set it to 20.
> I've check that in "/var/lib/alsa/asound/state", I had the same value. Here
> is a part of this file : 
> 
> state.codec {
>         control.1 {
>                 comment.access 'read write'
>                 comment.type INTEGER
>                 comment.count 2
>                 comment.range '0 - 63'
>                 iface MIXER
>                 name 'HP Playback Volume'
>                 value.0 20
>                 value.1 20
>         }
> 
> So saved value seems ok.
> 
> After "restore" command, I get this :
> 
> $amixer cget numid=1
> numid=1,iface=MIXER,name='HP Playback Volume'
>   ; type=INTEGER,access=rw------,values=2,min=0,max=63,step=0
>   : values=45,45
> 
> That's why I say that values are not correct.
> I'm currently using debian alsa-utils_1.0.16-1_arm package.
> 

It's possible that your codec drivers register caching is borked. This
can be easily confirmed with debug in your driver kcontrol code.

If your driver looks ok, then I'd suggest looking into your alsa-lib
cross build. There have been some problems with it being incorrectly
cross compiled for ARM in the past (pls search the list for details).
Fwiw, I use OpenEmbedded to build ALSA for ARM and I've never ran into
this issue.

Liam



More information about the Alsa-devel mailing list