diff options
author | Kailang Yang <kailang@realtek.com> | 2013-01-10 04:25:48 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-01-10 04:27:46 -0500 |
commit | 065380f0880dd651eb405430745926dc4747b759 (patch) | |
tree | 6c57f38b0098d015aa90489acd720b49b77d64b0 /sound/pci | |
parent | e8e7da23c9add6f636bcc631aeb4461ffb99f77f (diff) |
ALSA: hda - Add support of new codec ALC284
Added the support for a new codec ALC284, which is compatible with
ALC269. Also add more codec variants to handle the SSID check
properly.
Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 71ae23dd7103..f5196277b6e9 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -5817,6 +5817,9 @@ enum { | |||
5817 | ALC269_TYPE_ALC269VB, | 5817 | ALC269_TYPE_ALC269VB, |
5818 | ALC269_TYPE_ALC269VC, | 5818 | ALC269_TYPE_ALC269VC, |
5819 | ALC269_TYPE_ALC269VD, | 5819 | ALC269_TYPE_ALC269VD, |
5820 | ALC269_TYPE_ALC280, | ||
5821 | ALC269_TYPE_ALC282, | ||
5822 | ALC269_TYPE_ALC284, | ||
5820 | }; | 5823 | }; |
5821 | 5824 | ||
5822 | /* | 5825 | /* |
@@ -5833,10 +5836,13 @@ static int alc269_parse_auto_config(struct hda_codec *codec) | |||
5833 | switch (spec->codec_variant) { | 5836 | switch (spec->codec_variant) { |
5834 | case ALC269_TYPE_ALC269VA: | 5837 | case ALC269_TYPE_ALC269VA: |
5835 | case ALC269_TYPE_ALC269VC: | 5838 | case ALC269_TYPE_ALC269VC: |
5839 | case ALC269_TYPE_ALC280: | ||
5840 | case ALC269_TYPE_ALC284: | ||
5836 | ssids = alc269va_ssids; | 5841 | ssids = alc269va_ssids; |
5837 | break; | 5842 | break; |
5838 | case ALC269_TYPE_ALC269VB: | 5843 | case ALC269_TYPE_ALC269VB: |
5839 | case ALC269_TYPE_ALC269VD: | 5844 | case ALC269_TYPE_ALC269VD: |
5845 | case ALC269_TYPE_ALC282: | ||
5840 | ssids = alc269_ssids; | 5846 | ssids = alc269_ssids; |
5841 | break; | 5847 | break; |
5842 | default: | 5848 | default: |
@@ -6400,7 +6406,8 @@ static int patch_alc269(struct hda_codec *codec) | |||
6400 | 6406 | ||
6401 | alc_auto_parse_customize_define(codec); | 6407 | alc_auto_parse_customize_define(codec); |
6402 | 6408 | ||
6403 | if (codec->vendor_id == 0x10ec0269) { | 6409 | switch (codec->vendor_id) { |
6410 | case 0x10ec0269: | ||
6404 | spec->codec_variant = ALC269_TYPE_ALC269VA; | 6411 | spec->codec_variant = ALC269_TYPE_ALC269VA; |
6405 | switch (alc_get_coef0(codec) & 0x00f0) { | 6412 | switch (alc_get_coef0(codec) & 0x00f0) { |
6406 | case 0x0010: | 6413 | case 0x0010: |
@@ -6425,6 +6432,20 @@ static int patch_alc269(struct hda_codec *codec) | |||
6425 | goto error; | 6432 | goto error; |
6426 | spec->init_hook = alc269_fill_coef; | 6433 | spec->init_hook = alc269_fill_coef; |
6427 | alc269_fill_coef(codec); | 6434 | alc269_fill_coef(codec); |
6435 | break; | ||
6436 | |||
6437 | case 0x10ec0280: | ||
6438 | case 0x10ec0290: | ||
6439 | spec->codec_variant = ALC269_TYPE_ALC280; | ||
6440 | break; | ||
6441 | case 0x10ec0282: | ||
6442 | case 0x10ec0283: | ||
6443 | spec->codec_variant = ALC269_TYPE_ALC282; | ||
6444 | break; | ||
6445 | case 0x10ec0284: | ||
6446 | case 0x10ec0292: | ||
6447 | spec->codec_variant = ALC269_TYPE_ALC284; | ||
6448 | break; | ||
6428 | } | 6449 | } |
6429 | 6450 | ||
6430 | /* automatic parse from the BIOS config */ | 6451 | /* automatic parse from the BIOS config */ |
@@ -7129,6 +7150,7 @@ static const struct hda_codec_preset snd_hda_preset_realtek[] = { | |||
7129 | { .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 }, | 7150 | { .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 }, |
7130 | { .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 }, | 7151 | { .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 }, |
7131 | { .id = 0x10ec0283, .name = "ALC283", .patch = patch_alc269 }, | 7152 | { .id = 0x10ec0283, .name = "ALC283", .patch = patch_alc269 }, |
7153 | { .id = 0x10ec0284, .name = "ALC284", .patch = patch_alc269 }, | ||
7132 | { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 }, | 7154 | { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 }, |
7133 | { .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 }, | 7155 | { .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 }, |
7134 | { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660", | 7156 | { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660", |