提交 5712b6c1 编写于 作者: J James Hughes 提交者: Zheng Zengkai

Add HDMI1 facility to the driver.

raspberrypi inclusion
category: feature
bugzilla: 50432

--------------------------------

For generic ALSA, all you need is the bcm2835.h change, but
have also added structures for IEC958 HDMI. Not sure how to
test those.
Signed-off-by: NFang Yafen <yafen@iscas.ac.cn>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 d9c9c9c4
...@@ -79,7 +79,11 @@ static int bcm2835_audio_alsa_newpcm(struct bcm2835_chip *chip, ...@@ -79,7 +79,11 @@ static int bcm2835_audio_alsa_newpcm(struct bcm2835_chip *chip,
if (err) if (err)
return err; return err;
err = snd_bcm2835_new_pcm(chip, "bcm2835 IEC958/HDMI", 1, 0, 1, true); err = snd_bcm2835_new_pcm(chip, "bcm2835 IEC958/HDMI", 1, AUDIO_DEST_HDMI0, 1, true);
if (err)
return err;
err = snd_bcm2835_new_pcm(chip, "bcm2835 IEC958/HDMI1", 2, AUDIO_DEST_HDMI1, 1, true);
if (err) if (err)
return err; return err;
...@@ -106,7 +110,7 @@ static struct bcm2835_audio_driver bcm2835_audio_alsa = { ...@@ -106,7 +110,7 @@ static struct bcm2835_audio_driver bcm2835_audio_alsa = {
.newctl = snd_bcm2835_new_ctl, .newctl = snd_bcm2835_new_ctl,
}; };
static struct bcm2835_audio_driver bcm2835_audio_hdmi = { static struct bcm2835_audio_driver bcm2835_audio_hdmi0 = {
.driver = { .driver = {
.name = "bcm2835_hdmi", .name = "bcm2835_hdmi",
.owner = THIS_MODULE, .owner = THIS_MODULE,
...@@ -116,7 +120,20 @@ static struct bcm2835_audio_driver bcm2835_audio_hdmi = { ...@@ -116,7 +120,20 @@ static struct bcm2835_audio_driver bcm2835_audio_hdmi = {
.minchannels = 1, .minchannels = 1,
.newpcm = bcm2835_audio_simple_newpcm, .newpcm = bcm2835_audio_simple_newpcm,
.newctl = snd_bcm2835_new_hdmi_ctl, .newctl = snd_bcm2835_new_hdmi_ctl,
.route = AUDIO_DEST_HDMI .route = AUDIO_DEST_HDMI0
};
static struct bcm2835_audio_driver bcm2835_audio_hdmi1 = {
.driver = {
.name = "bcm2835_hdmi",
.owner = THIS_MODULE,
},
.shortname = "bcm2835 HDMI 1",
.longname = "bcm2835 HDMI 1",
.minchannels = 1,
.newpcm = bcm2835_audio_simple_newpcm,
.newctl = snd_bcm2835_new_hdmi_ctl,
.route = AUDIO_DEST_HDMI1
}; };
static struct bcm2835_audio_driver bcm2835_audio_headphones = { static struct bcm2835_audio_driver bcm2835_audio_headphones = {
...@@ -143,7 +160,11 @@ static struct bcm2835_audio_drivers children_devices[] = { ...@@ -143,7 +160,11 @@ static struct bcm2835_audio_drivers children_devices[] = {
.is_enabled = &enable_compat_alsa, .is_enabled = &enable_compat_alsa,
}, },
{ {
.audio_driver = &bcm2835_audio_hdmi, .audio_driver = &bcm2835_audio_hdmi0,
.is_enabled = &enable_hdmi,
},
{
.audio_driver = &bcm2835_audio_hdmi1,
.is_enabled = &enable_hdmi, .is_enabled = &enable_hdmi,
}, },
{ {
......
...@@ -33,7 +33,9 @@ enum { ...@@ -33,7 +33,9 @@ enum {
enum snd_bcm2835_route { enum snd_bcm2835_route {
AUDIO_DEST_AUTO = 0, AUDIO_DEST_AUTO = 0,
AUDIO_DEST_HEADPHONES = 1, AUDIO_DEST_HEADPHONES = 1,
AUDIO_DEST_HDMI = 2, AUDIO_DEST_HDMI = 2, // for backwards compatibility.
AUDIO_DEST_HDMI0 = 2,
AUDIO_DEST_HDMI1 = 3,
AUDIO_DEST_MAX, AUDIO_DEST_MAX,
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册