# subframe conversion
#
-<confdir:pcm/front.conf>
+<confdir:pcm/hdmi.conf>
-vc4-hdmi.pcm.front.0 {
- @args [ CARD ]
- @args.CARD {
- type string
- }
- type hw
- card $CARD
-}
-
-# default with dmix
-vc4-hdmi.pcm.default {
- @args [ CARD ]
- @args.CARD {
- type string
- }
- type asym
- playback.pcm {
- type plug
- slave.pcm {
- @func concat
- strings [ "dmix:" $CARD ]
- }
- }
-}
-
-<confdir:pcm/iec958.conf>
-
-vc4-hdmi.pcm.iec958.0 {
+vc4-hdmi.pcm.hdmi.0 {
@args [ CARD AES0 AES1 AES2 AES3 ]
@args.CARD {
type string
slave {
format IEC958_SUBFRAME_LE
pcm {
- type plug
+ type hooks
slave.pcm {
type hw
card $CARD
+ device 0
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "IEC958 Playback Default"
+ interface PCM
+ optional true
+ lock true
+ preserve true
+ value [ $AES0 $AES1 $AES2 $AES3 ]
+ }
+ ]
}
}
}
status [ $AES0 $AES1 $AES2 $AES3 ]
+ hdmi_mode true
+}
+
+# default with plug and softvol
+vc4-hdmi.pcm.default {
+ @args [ CARD ]
+ @args.CARD {
+ type string
+ }
+ type asym
+ playback.pcm {
+ type plug
+ slave.pcm {
+ type softvol
+ slave.pcm {
+ @func concat
+ strings [
+ "cards.vc4-hdmi.pcm.hdmi.0:"
+ "CARD=" $CARD ","
+ "AES0=0x04," # IEC958_AES0_CON_NOT_COPYRIGHT | IEC958_AES0_CON_EMPHASIS_NONE
+ "AES1=0x82," # IEC958_AES1_CON_ORIGINAL | IEC958_AES1_CON_PCM_CODER
+ "AES2=0x00," # IEC958_AES2_CON_SOURCE_UNSPEC | IEC958_AES2_CON_CHANNEL_UNSPEC
+ "AES3=0x01" # IEC958_AES3_CON_FS_NOTID (iec958 plugin will fill in actual rate)
+ ]
+ }
+ control {
+ name "PCM Playback Volume"
+ card $CARD
+ }
+ }
+ }
}