aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKailang Yang <kailang@realtek.com>2016-02-03 02:03:50 -0500
committerTakashi Iwai <tiwai@suse.de>2016-02-03 03:04:42 -0500
commit4231430da9607fb2eb7ea92f3b93ceef3bc2ed93 (patch)
tree4a6a11157b9ead37eada4ff6f99a839c131399c1
parentf146357f069e71aff8e474c625bcebcd3094b3ab (diff)
ALSA: hda/realtek - New codec support of ALC225
Add new support for ALC225, yet another variant of ALC298 codec. Signed-off-by: Kailang Yang <kailang@realtek.com> Cc: <stable@vger.kernel.org> # 4.4+ Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/patch_realtek.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 33753244f48f..0b05ae2bc2f7 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -327,6 +327,7 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
327 case 0x10ec0292: 327 case 0x10ec0292:
328 alc_update_coef_idx(codec, 0x4, 1<<15, 0); 328 alc_update_coef_idx(codec, 0x4, 1<<15, 0);
329 break; 329 break;
330 case 0x10ec0225:
330 case 0x10ec0233: 331 case 0x10ec0233:
331 case 0x10ec0255: 332 case 0x10ec0255:
332 case 0x10ec0256: 333 case 0x10ec0256:
@@ -900,6 +901,7 @@ static struct alc_codec_rename_pci_table rename_pci_tbl[] = {
900 { 0x10ec0899, 0x1028, 0, "ALC3861" }, 901 { 0x10ec0899, 0x1028, 0, "ALC3861" },
901 { 0x10ec0298, 0x1028, 0, "ALC3266" }, 902 { 0x10ec0298, 0x1028, 0, "ALC3266" },
902 { 0x10ec0256, 0x1028, 0, "ALC3246" }, 903 { 0x10ec0256, 0x1028, 0, "ALC3246" },
904 { 0x10ec0225, 0x1028, 0, "ALC3253" },
903 { 0x10ec0670, 0x1025, 0, "ALC669X" }, 905 { 0x10ec0670, 0x1025, 0, "ALC669X" },
904 { 0x10ec0676, 0x1025, 0, "ALC679X" }, 906 { 0x10ec0676, 0x1025, 0, "ALC679X" },
905 { 0x10ec0282, 0x1043, 0, "ALC3229" }, 907 { 0x10ec0282, 0x1043, 0, "ALC3229" },
@@ -2651,6 +2653,7 @@ enum {
2651 ALC269_TYPE_ALC298, 2653 ALC269_TYPE_ALC298,
2652 ALC269_TYPE_ALC255, 2654 ALC269_TYPE_ALC255,
2653 ALC269_TYPE_ALC256, 2655 ALC269_TYPE_ALC256,
2656 ALC269_TYPE_ALC225,
2654}; 2657};
2655 2658
2656/* 2659/*
@@ -2680,6 +2683,7 @@ static int alc269_parse_auto_config(struct hda_codec *codec)
2680 case ALC269_TYPE_ALC298: 2683 case ALC269_TYPE_ALC298:
2681 case ALC269_TYPE_ALC255: 2684 case ALC269_TYPE_ALC255:
2682 case ALC269_TYPE_ALC256: 2685 case ALC269_TYPE_ALC256:
2686 case ALC269_TYPE_ALC225:
2683 ssids = alc269_ssids; 2687 ssids = alc269_ssids;
2684 break; 2688 break;
2685 default: 2689 default:
@@ -5906,6 +5910,9 @@ static int patch_alc269(struct hda_codec *codec)
5906 spec->gen.mixer_nid = 0; /* ALC256 does not have any loopback mixer path */ 5910 spec->gen.mixer_nid = 0; /* ALC256 does not have any loopback mixer path */
5907 alc_update_coef_idx(codec, 0x36, 1 << 13, 1 << 5); /* Switch pcbeep path to Line in path*/ 5911 alc_update_coef_idx(codec, 0x36, 1 << 13, 1 << 5); /* Switch pcbeep path to Line in path*/
5908 break; 5912 break;
5913 case 0x10ec0225:
5914 spec->codec_variant = ALC269_TYPE_ALC225;
5915 break;
5909 } 5916 }
5910 5917
5911 if (snd_hda_codec_read(codec, 0x51, 0, AC_VERB_PARAMETERS, 0) == 0x10ec5505) { 5918 if (snd_hda_codec_read(codec, 0x51, 0, AC_VERB_PARAMETERS, 0) == 0x10ec5505) {
@@ -6796,6 +6803,7 @@ static int patch_alc680(struct hda_codec *codec)
6796 */ 6803 */
6797static const struct hda_device_id snd_hda_id_realtek[] = { 6804static const struct hda_device_id snd_hda_id_realtek[] = {
6798 HDA_CODEC_ENTRY(0x10ec0221, "ALC221", patch_alc269), 6805 HDA_CODEC_ENTRY(0x10ec0221, "ALC221", patch_alc269),
6806 HDA_CODEC_ENTRY(0x10ec0225, "ALC225", patch_alc269),
6799 HDA_CODEC_ENTRY(0x10ec0231, "ALC231", patch_alc269), 6807 HDA_CODEC_ENTRY(0x10ec0231, "ALC231", patch_alc269),
6800 HDA_CODEC_ENTRY(0x10ec0233, "ALC233", patch_alc269), 6808 HDA_CODEC_ENTRY(0x10ec0233, "ALC233", patch_alc269),
6801 HDA_CODEC_ENTRY(0x10ec0235, "ALC233", patch_alc269), 6809 HDA_CODEC_ENTRY(0x10ec0235, "ALC233", patch_alc269),