Skip to contentSkip to conversation

ALSA: hda - enable display audio for Intel Broadwell

PATCH Applied [email protected] 2 participants 5 messages Jan 9, 2014 Sound

lore
Share & tools
lore
#0 lore raw

cover ALSA: hda - enable display audio for Intel Broadwell

From: Mengdong Lin <[email protected]>

The following patches enable HDMI/DP audio for Intel Broadwell platform from audio driver side. Gfx driver just reuses Haswell audio enabling code.

Mengdong Lin (3):
ALSA: hda - add device ID for Broadwell display audio controller
ALSA: hda - add codec ID for Broadwell display audio codec
ALSA: hda/hdmi - apply all Haswell fix-ups to Broadwell display codec

 sound/pci/hda/hda_intel.c  |  3 +++
 sound/pci/hda/patch_hdmi.c | 17 +++++++++++------
 2 files changed, 14 insertions(+), 6 deletions(-)
Signature · 1 line
1.8.1.2
#3 lore raw

PATCH 3/3 ALSA: hda/hdmi - apply all Haswell fix-ups to Broadwell display codec

From: Mengdong Lin <[email protected]>

Broadwell and Haswell have the same behavior on display audio. So this patch defines is_haswell_plus() to include codecs for both Haswell and its successor Broadwell, and apply all Haswell fix-ups to Broadwell.

sound/pci/hda/patch_hdmi.c +9 -6
index 670da3e..64f0a5e 100644
@@ -46,6 +46,9 @@ module_param(static_hdmi_pcm, bool, 0644);
 MODULE_PARM_DESC(static_hdmi_pcm, "Don't restrict PCM parameters per ELD info");
 
 #define is_haswell(codec)  ((codec)->vendor_id == 0x80862807)
+#define is_broadwell(codec)    ((codec)->vendor_id == 0x80862808)
+#define is_haswell_plus(codec) (is_haswell(codec) || is_broadwell(codec))
+
 #define is_valleyview(codec) ((codec)->vendor_id == 0x80862882)
 
 struct hdmi_spec_per_cvt {
@@ -1101,7 +1104,7 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec,
 	if (!channels)
 		return;
 
-	if (is_haswell(codec))
+	if (is_haswell_plus(codec))
 		snd_hda_codec_write(codec, pin_nid, 0,
 					    AC_VERB_SET_AMP_GAIN_MUTE,
 					    AMP_OUT_UNMUTE);
@@ -1280,7 +1283,7 @@ static int hdmi_setup_stream(struct hda_codec *codec, hda_nid_t cvt_nid,
 	struct hdmi_spec *spec = codec->spec;
 	int err;
 
-	if (is_haswell(codec))
+	if (is_haswell_plus(codec))
 		haswell_verify_D0(codec, cvt_nid, pin_nid);
 
 	err = spec->ops.pin_hbr_setup(codec, pin_nid, is_hbr_format(format));
@@ -1421,7 +1424,7 @@ static int hdmi_pcm_open(struct hda_pcm_stream *hinfo,
 			    mux_idx);
 
 	/* configure unused pins to choose other converters */
-	if (is_haswell(codec) || is_valleyview(codec))
+	if (is_haswell_plus(codec) || is_valleyview(codec))
 		intel_not_share_assigned_cvt(codec, per_pin->pin_nid, mux_idx);
 
 	snd_hda_spdif_ctls_assign(codec, pin_idx, per_cvt->cvt_nid);
@@ -1611,7 +1614,7 @@ static int hdmi_add_pin(struct hda_codec *codec, hda_nid_t pin_nid)
 	if (get_defcfg_connect(config) == AC_JACK_PORT_NONE)
 		return 0;
 
-	if (is_haswell(codec))
+	if (is_haswell_plus(codec))
 		intel_haswell_fixup_connect_list(codec, pin_nid);
 
 	pin_idx = spec->num_pins;
@@ -2249,7 +2252,7 @@ static int patch_generic_hdmi(struct hda_codec *codec)
 	codec->spec = spec;
 	hdmi_array_init(spec, 4);
 
-	if (is_haswell(codec)) {
+	if (is_haswell_plus(codec)) {
 		intel_haswell_enable_all_pins(codec, true);
 		intel_haswell_fixup_enable_dp12(codec);
 	}
@@ -2264,7 +2267,7 @@ static int patch_generic_hdmi(struct hda_codec *codec)
 		return -EINVAL;
 	}
 	codec->patch_ops = generic_hdmi_patch_ops;
-	if (is_haswell(codec)) {
+	if (is_haswell_plus(codec)) {
 		codec->patch_ops.set_power_state = haswell_set_power_state;
 		codec->dp_mst = true;
 	}
Signature · 1 line
1.8.1.2
#1 lore raw

PATCH 1/3 ALSA: hda - add device ID for Broadwell display audio controller

In reply to [email protected]

From: Mengdong Lin <[email protected]>

This patch adds the device ID for Intel Broadwell display HD-Audio controller, and applies Haswell properties to this device.

sound/pci/hda/hda_intel.c +3 -0
index 53937de..fa2879a 100644
@@ -4009,6 +4009,9 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids) = {
 	  .driver_data = AZX_DRIVER_HDMI | AZX_DCAPS_INTEL_HASWELL },
 	{ PCI_DEVICE(0x8086, 0x0d0c),
 	  .driver_data = AZX_DRIVER_HDMI | AZX_DCAPS_INTEL_HASWELL },
+	/* Broadwell */
+	{ PCI_DEVICE(0x8086, 0x160c),
+	  .driver_data = AZX_DRIVER_HDMI | AZX_DCAPS_INTEL_HASWELL },
 	/* 5 Series/3400 */
 	{ PCI_DEVICE(0x8086, 0x3b56),
 	  .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH_NOPM },
Signature · 1 line
1.8.1.2
#2 lore raw

PATCH 2/3 ALSA: hda - add codec ID for Broadwell display audio codec

In reply to [email protected]

From: Mengdong Lin <[email protected]>

This patch adds codec ID (0x80862808) and module alias for Broadwell display codec.

sound/pci/hda/patch_hdmi.c +2 -0
index 59b83f4..670da3e 100644
@@ -3273,6 +3273,7 @@ static const struct hda_codec_preset snd_hda_preset_hdmi[] = {
 { .id = 0x80862805, .name = "CougarPoint HDMI",	.patch = patch_generic_hdmi },
 { .id = 0x80862806, .name = "PantherPoint HDMI", .patch = patch_generic_hdmi },
 { .id = 0x80862807, .name = "Haswell HDMI",	.patch = patch_generic_hdmi },
+{ .id = 0x80862808, .name = "Broadwell HDMI",	.patch = patch_generic_hdmi },
 { .id = 0x80862880, .name = "CedarTrail HDMI",	.patch = patch_generic_hdmi },
 { .id = 0x80862882, .name = "Valleyview2 HDMI",	.patch = patch_generic_hdmi },
 { .id = 0x808629fb, .name = "Crestline HDMI",	.patch = patch_generic_hdmi },
@@ -3328,6 +3329,7 @@ MODULE_ALIAS("snd-hda-codec-id:80862804");
 MODULE_ALIAS("snd-hda-codec-id:80862805");
 MODULE_ALIAS("snd-hda-codec-id:80862806");
 MODULE_ALIAS("snd-hda-codec-id:80862807");
+MODULE_ALIAS("snd-hda-codec-id:80862808");
 MODULE_ALIAS("snd-hda-codec-id:80862880");
 MODULE_ALIAS("snd-hda-codec-id:80862882");
 MODULE_ALIAS("snd-hda-codec-id:808629fb");
Signature · 1 line
1.8.1.2
Applied
#4 lore raw
In reply to [email protected]

At Wed, 8 Jan 2014 15:55:07 -0500,

Quoted 5 lines · [email protected] wrote:

From: Mengdong Lin <[email protected]>

The following patches enable HDMI/DP audio for Intel Broadwell platform from audio driver side. Gfx driver just reuses Haswell audio enabling code.

Thanks, applied all patches now.

Takashi

Quoted 13 lines

Mengdong Lin (3):
ALSA: hda - add device ID for Broadwell display audio controller
ALSA: hda - add codec ID for Broadwell display audio codec
ALSA: hda/hdmi - apply all Haswell fix-ups to Broadwell display codec

 sound/pci/hda/hda_intel.c  |  3 +++
 sound/pci/hda/patch_hdmi.c | 17 +++++++++++------
 2 files changed, 14 insertions(+), 6 deletions(-)
Signature · 1 line
1.8.1.2