[alsa-devel] IEC switch issues

Pavel Hofman pavel.hofman at ivitera.com
Wed Jun 23 10:55:52 CEST 2010



pl bossart napsal(a):
> If I play my AC3 data on my HDAudio/SPDIF output using the hw:0,1
> device, I can use alsamixer/amixer to mute/unmute.
> 
> [ume at plb PassThough]$ amixer cset numid=12 on
> numid=12,iface=MIXER,name='IEC958 Playback Switch'
>   ; type=BOOLEAN,access=rw------,values=1
>   : values=on
> [ume at plb PassThough]$ amixer cset numid=12 off
> numid=12,iface=MIXER,name='IEC958 Playback Switch'
>   ; type=BOOLEAN,access=rw------,values=1
>   : values=off
> 
> Now if I use the iec958: plugin, I can't control the mute switch any longer:
> [ume at plb PassThough]$ amixer cset numid=12 off
> amixer: Control default element write error: Operation not permitted
> 
> [ume at plb PassThough]$ amixer cset numid=12 on
> amixer: Control default element write error: Operation not permitted
> 
> What could possibly cause this issue? the IEC plugin relies on the
> device 1, am I missing something here?
> Thanks for your help
> - Pierre

Hi Pierre,

Check the config files in /usr/share/alsa/cards, probably HDA-Intel.conf
in your case, specifically the hooks section of its iec958 device
definition. It reads:

hooks.0 {
                        type ctl_elems
                        hook_args [
                        {
                                name "IEC958 Playback Default"
                                lock true
                                preserve true
                                value [ $AES0 $AES1 $AES2 $AES3 ]
                        }
                        {
                                name "IEC958 Playback Switch"
                                lock true
                                preserve true
                                value true
                        }
                        ]
                }


You can play with the "lock" directive.

Best regards,

Pavel.


More information about the Alsa-devel mailing list