On Tue, Oct 06, 2015 at 03:45:32PM -0300, Fabio Estevam wrote: > On Tue, Oct 6, 2015 at 3:18 PM, Russell King - ARM Linux > <linux@xxxxxxxxxxxxxxxx> wrote: > > > Sorry, I've been out for most of the day. There's no DT patches required. > > > > The dw_hdmi bridge driver creates its own platform device for the audio, > > which should then bind to the dw_hdmi-ahb-audio driver using normal Linux > > methods. > > > > I don't know what's wrong with your setup, for me, it just works: > > > > [ 1.358829] dwhdmi-imx 120000.hdmi: Detected HDMI controller 0x13:0xa:0xa0:0xc1 > > [ 1.377173] imx-drm display-subsystem: bound 120000.hdmi (ops dw_hdmi_imx_ops) > > ... > > [ 2.851343] ALSA device list: > > [ 2.857364] #0: DW-HDMI rev 0x0a, irq 21 > > > > as it always has done for me. There's nothing special about it. > > Great, got it to probe now: > > [ 7.454760] ALSA device list: > [ 7.457764] #0: DW-HDMI rev 0x0a, irq 19 > [ 7.461990] #1: wm8962-audio > > There was a conflict and I resolved incorrectly here. Will try to play > a wav file via aplay now. Make sure you have the ALSA config file, as alsalib won't get on with dw-hdmi only accepting 24-bit audio without this. A copy is attached. It also tells ALSA how to deal with multi-channel audio as well. -- FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.
# # All PCM must be 24-bit for easy kernel conversion. # IEC958 formatted output can be sent directly. # # Direct-to-hardware converting to 24-bit output. # dw-hdmi-ahb-aud.pcm.hw-s24le { @args [ CARD ] @args.CARD { type string } type linear slave.pcm { type hw card $CARD } slave.format S24_LE } # # Dmix hardware 24-bit output. # dw-hdmi-ahb-aud.pcm.dmix-s24le { @args [ CARD ] @args.CARD { type string } type plug slave.pcm { @func concat strings [ "dmix:" $CARD ",FORMAT=S24_LE" ] } } # # Softvol with dmix output # dw-hdmi-ahb-aud.pcm.default { @args [ CARD ] @args.CARD { type string } type asym playback.pcm { type softvol slave.pcm { @func refer name { @func concat strings [ "cards." { @func card_driver card $CARD } ".pcm.dmix-s24le:CARD=" $CARD ] } } control { name "PCM Playback Volume" card $CARD } } } # # Common output path for front and surround outputs # dw-hdmi-ahb-aud.pcm.common.0 { @args [ CARD ] @args.CARD { type string } type asym playback.pcm { type softvol slave.pcm { @func refer name { @func concat strings [ "cards." { @func card_driver card $CARD } ".pcm.hw-s24le:CARD=" $CARD ] } } control { name "PCM Playback Volume" card $CARD } } } <confdir:pcm/front.conf> dw-hdmi-ahb-aud.pcm.front.0 cards.dw-hdmi-ahb-aud.pcm.common.0 # The mapping of ALSA channels to surround channels is very imprecise. # ALSA uses a different terminology and speaker placement to the CEA # surround positioning. CEA has the positioning of: # # LFE # FL FLC FC FRC FR # # # RL RLC RC RRC RR # # ALSA's idea is: # # LFE # FL C FR # # SL SR # # RL RR # # We do our best to map between these representations. <confdir:pcm/surround40.conf> dw-hdmi-ahb-aud.pcm.surround40.0 { @args [ CARD ] @args.CARD { type string } type empty slave.pcm { @func refer name { @func concat strings [ "cards.dw-hdmi-ahb-aud.pcm.common.0:CARD=" $CARD ] } } } # surround 41 and surround50 are (annoyingly) mapped to surround51 # We could do without stacking two 'route' plugins on top of each other <confdir:pcm/surround41.conf> <confdir:pcm/surround50.conf> <confdir:pcm/surround51.conf> dw-hdmi-ahb-aud.pcm.surround51.0 { @args [ CARD ] @args.CARD { type string } type route slave.pcm { @func refer name { @func concat strings [ "cards.dw-hdmi-ahb-aud.pcm.common.0:CARD=" $CARD ] } } ttable.0.0 1.0 # FL -> slave 0 -> hdmi 0 FL ttable.1.1 1.0 # FR -> slave 1 -> hdmi 1 FR ttable.2.4 1.0 # RL -> slave 4 -> hdmi 4 RL ttable.3.5 1.0 # RR -> slave 5 -> hdmi 5 RR ttable.4.3 1.0 # C -> slave 3 -> hdmi 3 FC ttable.5.2 1.0 # LFE -> slave 2 -> hdmi 2 LFE } <confdir:pcm/surround71.conf> dw-hdmi-ahb-aud.pcm.surround71.0 { @args [ CARD ] @args.CARD { type string } type route slave.pcm { @func refer name { @func concat strings [ "cards.dw-hdmi-ahb-aud.pcm.common.0:CARD=" $CARD ] } } slave.channels 8 ttable.0.0 1.0 # FL -> slave 0 -> hdmi 0 FL ttable.1.1 1.0 # FR -> slave 1 -> hdmi 1 FR ttable.2.6 1.0 # RL -> slave 6 -> hdmi 6 RLC/FLC ttable.3.7 1.0 # RR -> slave 7 -> hdmi 7 RRC/FRC ttable.4.3 1.0 # C -> slave 3 -> hdmi 3 FC ttable.5.2 1.0 # LFE -> slave 2 -> hdmi 2 LFE ttable.6.4 1.0 # SL -> slave 4 -> hdmi 4 RL ttable.7.5 1.0 # SR -> slave 5 -> hdmi 5 RR } <confdir:pcm/hdmi.conf> dw-hdmi-ahb-aud.pcm.hdmi.0 { @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 iec958 slave.pcm { type hw card $CARD } slave.format IEC958_SUBFRAME_LE # $AES3 must be correct for some AV receivers to accept the stream status [ $AES0 $AES1 $AES2 $AES3 ] } <confdir:pcm/iec958.conf> dw-hdmi-ahb-aud.pcm.iec958.0 cards.dw-hdmi-ahb-aud.pcm.hdmi.0
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel