@@ -79,7 +79,11 @@ static int bcm2835_audio_alsa_newpcm(struct bcm2835_chip *chip,
79
79
if (err )
80
80
return err ;
81
81
82
- err = snd_bcm2835_new_pcm (chip , "bcm2835 IEC958/HDMI" , 1 , 0 , 1 , true);
82
+ err = snd_bcm2835_new_pcm (chip , "bcm2835 IEC958/HDMI" , 1 , AUDIO_DEST_HDMI0 , 1 , true);
83
+ if (err )
84
+ return err ;
85
+
86
+ err = snd_bcm2835_new_pcm (chip , "bcm2835 IEC958/HDMI1" , 2 , AUDIO_DEST_HDMI1 , 1 , true);
83
87
if (err )
84
88
return err ;
85
89
@@ -106,7 +110,7 @@ static struct bcm2835_audio_driver bcm2835_audio_alsa = {
106
110
.newctl = snd_bcm2835_new_ctl ,
107
111
};
108
112
109
- static struct bcm2835_audio_driver bcm2835_audio_hdmi = {
113
+ static struct bcm2835_audio_driver bcm2835_audio_hdmi0 = {
110
114
.driver = {
111
115
.name = "bcm2835_hdmi" ,
112
116
.owner = THIS_MODULE ,
@@ -116,7 +120,20 @@ static struct bcm2835_audio_driver bcm2835_audio_hdmi = {
116
120
.minchannels = 1 ,
117
121
.newpcm = bcm2835_audio_simple_newpcm ,
118
122
.newctl = snd_bcm2835_new_hdmi_ctl ,
119
- .route = AUDIO_DEST_HDMI
123
+ .route = AUDIO_DEST_HDMI0
124
+ };
125
+
126
+ static struct bcm2835_audio_driver bcm2835_audio_hdmi1 = {
127
+ .driver = {
128
+ .name = "bcm2835_hdmi" ,
129
+ .owner = THIS_MODULE ,
130
+ },
131
+ .shortname = "bcm2835 HDMI 1" ,
132
+ .longname = "bcm2835 HDMI 1" ,
133
+ .minchannels = 1 ,
134
+ .newpcm = bcm2835_audio_simple_newpcm ,
135
+ .newctl = snd_bcm2835_new_hdmi_ctl ,
136
+ .route = AUDIO_DEST_HDMI1
120
137
};
121
138
122
139
static struct bcm2835_audio_driver bcm2835_audio_headphones = {
@@ -143,7 +160,11 @@ static struct bcm2835_audio_drivers children_devices[] = {
143
160
.is_enabled = & enable_compat_alsa ,
144
161
},
145
162
{
146
- .audio_driver = & bcm2835_audio_hdmi ,
163
+ .audio_driver = & bcm2835_audio_hdmi0 ,
164
+ .is_enabled = & enable_hdmi ,
165
+ },
166
+ {
167
+ .audio_driver = & bcm2835_audio_hdmi1 ,
147
168
.is_enabled = & enable_hdmi ,
148
169
},
149
170
{
0 commit comments