On Wed, 16 Aug 2017 17:15:09 +0200, Pierre-Louis Bossart wrote: > > Hi Takashi, > > While I was looking at IEC61937, I ran a quick test on my BYT and CHT > boxes, and as I suspected IEC61937 works fine since your modifications > to add s16_le support. I can get AC3 to my HDMI receiver without > problems just by using the hw:0,<1,2,3> device, depending on which > port is used. > > e.g. aplay -Dhw:0,2 -c2 -r48000 -fs16le ac3_surround_test.spdif > > To make things more usable for applications, and maybe support > receivers who actually care about the AES0 non-audio bit or reduce the > initial lock time, it'd be nice to support the traditional command > line, e.g. > > aplay -D'hdmi:CARD=0,DEV=<0,1,2>,AES0=0x6' -c2 -r48000 -fs16_le > ac3_surround_test.spdif > > However we seem to have a mix of alsa-lib configuration issues and > maybe a miss at the driver level Yeah, alsa-lib config is still not updated to follow the recent changes in kernel side. It needs multiple HDMI entries. > I added the missing devices in HdmiLpeAudio.conf with the patch below, > which helps select the right output, but somehow the AES0 non-audio > bit doesn't seem to be set. > > [plb@ZOTAC PASSTHROUGH]$ amixer -Dhw:0 cget numid=12 > numid=12,iface=PCM,name='IEC958 Playback Default',device=2 > ; type=IEC958,access=rw------,values=1 > : values=[AES0=0x00 AES1=0x00 AES2=0x00 AES3=0x00] > [plb@ZOTAC PASSTHROUGH]$ aplay -D'hdmi:CARD=0,DEV=2,AES0=0x6' -c2 > -r48000 -fs16_le ac3_surround_test.spdif > Playing raw data 'ac3_surround_test.spdif' : Signed 16 bit Little > Endian, Rate 48000 Hz, Stereo > ^CAborted by signal Interrupt... > [plb@ZOTAC PASSTHROUGH]$ amixer -Dhw:0 cget > numid=12numid=12,iface=PCM,name='IEC958 Playback Default',device=2 > ; type=IEC958,access=rw------,values=1 > : values=[AES0=0x00 AES1=0x00 AES2=0x00 AES3=0x00] Did you check the value during the playback? Since you set "preserve" in HDMI config, the old value gets restored at closing the PCM. thanks, Takashi > Could it be that we are missing the 'index' which is used in the > HDaudio case to access the 'IEC958 Playback Default' controls? > > Thanks > > -Pierre > > diff HdmiLpeAudio.conf /usr/share/alsa/cards/HdmiLpeAudio.conf > 59,135d58 > < device 0 > < lock true > < preserve true > < value [ $AES0 $AES1 $AES2 $AES3 ] > < } > < ] > < } > < } > < > < HdmiLpeAudio.pcm.hdmi.1 { > < @args [ CARD AES0 AES1 AES2 AES3 ] > < @args.CARD { > < type string > < } > < @args.AES0 { > < type integer > < } > < @args.AES1 { > < type integer > < } > < @args.AES2 { > < type integer > < } > < @args.AES3 { > < type integer > < } > < type hooks > < slave.pcm { > < type hw > < card $CARD > < device 1 > < } > < hooks.0 { > < type ctl_elems > < hook_args [ > < { > < interface PCM > < name "IEC958 Playback Default" > < device 1 > < lock true > < preserve true > < value [ $AES0 $AES1 $AES2 $AES3 ] > < } > < ] > < } > < } > < > < HdmiLpeAudio.pcm.hdmi.2 { > < @args [ CARD AES0 AES1 AES2 AES3 ] > < @args.CARD { > < type string > < } > < @args.AES0 { > < type integer > < } > < @args.AES1 { > < type integer > < } > < @args.AES2 { > < type integer > < } > < @args.AES3 { > < type integer > < } > < type hooks > < slave.pcm { > < type hw > < card $CARD > < device 2 > < } > < hooks.0 { > < type ctl_elems > < hook_args [ > < { > < interface PCM > < name "IEC958 Playback Default" > < device 2 > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel