[alsa-devel] Problem setting mixer switch with amixer/alsactl.

Oliver Ford ipaqlinux at oliford.co.uk
Fri Oct 24 00:55:05 CEST 2008

Oliver Ford wrote:

>>         name 'Speaker Playback Volume'
>>         value 1
>>     }
This is unrelated, I have just left it there from playing around.

>> One other thing that would be useful would be to put trace which logs
>> the register writes in ac97_write() in the driver and then try testing
>> both using alsamixer and then amixer to do the final enable of the
>> Speaker Mixer PCM Playback Switch.

In terms of the control's direct effect, setting it in alsamixer gives:
pxa2xx_ac97_write: 0c = af08

setting it in amixer:
pxa2xx_ac97_write: 0c = af09

Am I right in understanding that setting all the controls in amixer 
doesn't actually enable the control in the codec chip at that time but 
that the powering on/off is done by soc-dapm.c when the the DAC is 
actually enabled when playing some audio? This appears to be what is 
happening when it does work (looking at the log). I hadn't realised this.

However, after running the offending amixer command this no longer 
happens. It seems that the dapm_power_widgets() function determines that 
the DAC is off and so doesn't power any widgets on at all.

I've put some debugging in pxa2xx-ac97-write and in dapm_power_widgets() 
and the log is attached (stripped of non-audio stuff).

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: consolelog-dapm-and-ac97regs-amixer-fail.txt
Url: http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20081023/98df8e5b/attachment.txt 

More information about the Alsa-devel mailing list