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.