diff options
-rw-r--r-- | Documentation/sound/alsa/ALSA-Configuration.txt | 5 | ||||
-rw-r--r-- | sound/pci/hda/patch_conexant.c | 56 |
2 files changed, 41 insertions, 20 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index ede4f34bf633..07317da87bd1 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -945,8 +945,9 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
945 | auto auto-config reading BIOS (default) | 945 | auto auto-config reading BIOS (default) |
946 | 946 | ||
947 | Conexant 5045 | 947 | Conexant 5045 |
948 | laptop Laptop config | 948 | laptop-hpsense Laptop with HP sense (old model laptop) |
949 | fujitsu Fujitsu Si1520 laptop | 949 | laptop-micsense Laptop with Mic sense (old model fujitsu) |
950 | laptop-hpmicsense Laptop with HP and Mic senses | ||
950 | benq Benq R55E | 951 | benq Benq R55E |
951 | test for testing/debugging purpose, almost all controls | 952 | test for testing/debugging purpose, almost all controls |
952 | can be adjusted. Appearing only when compiled with | 953 | can be adjusted. Appearing only when compiled with |
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index dab2ce137e17..ea3559fe3328 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c | |||
@@ -781,8 +781,9 @@ static int cxt5045_init(struct hda_codec *codec) | |||
781 | 781 | ||
782 | 782 | ||
783 | enum { | 783 | enum { |
784 | CXT5045_LAPTOP, /* Laptops w/ EAPD support */ | 784 | CXT5045_LAPTOP_HPSENSE, |
785 | CXT5045_FUJITSU, /* Laptops w/ EAPD support */ | 785 | CXT5045_LAPTOP_MICSENSE, |
786 | CXT5045_LAPTOP_HPMICSENSE, | ||
786 | CXT5045_BENQ, | 787 | CXT5045_BENQ, |
787 | #ifdef CONFIG_SND_DEBUG | 788 | #ifdef CONFIG_SND_DEBUG |
788 | CXT5045_TEST, | 789 | CXT5045_TEST, |
@@ -791,27 +792,34 @@ enum { | |||
791 | }; | 792 | }; |
792 | 793 | ||
793 | static const char *cxt5045_models[CXT5045_MODELS] = { | 794 | static const char *cxt5045_models[CXT5045_MODELS] = { |
794 | [CXT5045_LAPTOP] = "laptop", | 795 | [CXT5045_LAPTOP_HPSENSE] = "laptop-hpsense", |
795 | [CXT5045_FUJITSU] = "fujitsu", | 796 | [CXT5045_LAPTOP_MICSENSE] = "laptop-micsense", |
796 | [CXT5045_BENQ] = "benq", | 797 | [CXT5045_LAPTOP_HPMICSENSE] = "laptop-hpmicsense", |
798 | [CXT5045_BENQ] = "benq", | ||
797 | #ifdef CONFIG_SND_DEBUG | 799 | #ifdef CONFIG_SND_DEBUG |
798 | [CXT5045_TEST] = "test", | 800 | [CXT5045_TEST] = "test", |
799 | #endif | 801 | #endif |
800 | }; | 802 | }; |
801 | 803 | ||
802 | static struct snd_pci_quirk cxt5045_cfg_tbl[] = { | 804 | static struct snd_pci_quirk cxt5045_cfg_tbl[] = { |
803 | SND_PCI_QUIRK(0x103c, 0x30b2, "HP DV Series", CXT5045_LAPTOP), | 805 | SND_PCI_QUIRK(0x103c, 0x30a5, "HP", CXT5045_LAPTOP_HPSENSE), |
804 | SND_PCI_QUIRK(0x103c, 0x30b5, "HP DV2120", CXT5045_LAPTOP), | 806 | SND_PCI_QUIRK(0x103c, 0x30b2, "HP DV Series", CXT5045_LAPTOP_HPSENSE), |
805 | SND_PCI_QUIRK(0x103c, 0x30b7, "HP DV6000Z", CXT5045_LAPTOP), | 807 | SND_PCI_QUIRK(0x103c, 0x30b5, "HP DV2120", CXT5045_LAPTOP_HPSENSE), |
806 | SND_PCI_QUIRK(0x103c, 0x30bb, "HP DV8000", CXT5045_LAPTOP), | 808 | SND_PCI_QUIRK(0x103c, 0x30b7, "HP DV6000Z", CXT5045_LAPTOP_HPSENSE), |
807 | SND_PCI_QUIRK(0x103c, 0x30cd, "HP DV Series", CXT5045_LAPTOP), | 809 | SND_PCI_QUIRK(0x103c, 0x30bb, "HP DV8000", CXT5045_LAPTOP_HPSENSE), |
808 | SND_PCI_QUIRK(0x103c, 0x30d5, "HP 530", CXT5045_LAPTOP), | 810 | SND_PCI_QUIRK(0x103c, 0x30cd, "HP DV Series", CXT5045_LAPTOP_HPSENSE), |
809 | SND_PCI_QUIRK(0x103c, 0x30d9, "HP Spartan", CXT5045_LAPTOP), | 811 | SND_PCI_QUIRK(0x103c, 0x30d5, "HP 530", CXT5045_LAPTOP_HPSENSE), |
812 | SND_PCI_QUIRK(0x103c, 0x30d9, "HP Spartan", CXT5045_LAPTOP_HPSENSE), | ||
810 | SND_PCI_QUIRK(0x152d, 0x0753, "Benq R55E", CXT5045_BENQ), | 813 | SND_PCI_QUIRK(0x152d, 0x0753, "Benq R55E", CXT5045_BENQ), |
811 | SND_PCI_QUIRK(0x1734, 0x10ad, "Fujitsu Si1520", CXT5045_FUJITSU), | 814 | SND_PCI_QUIRK(0x1734, 0x10ad, "Fujitsu Si1520", CXT5045_LAPTOP_MICSENSE), |
812 | SND_PCI_QUIRK(0x1734, 0x10cb, "Fujitsu Si3515", CXT5045_LAPTOP), | 815 | SND_PCI_QUIRK(0x1734, 0x10cb, "Fujitsu Si3515", CXT5045_LAPTOP_HPMICSENSE), |
813 | SND_PCI_QUIRK(0x1734, 0x110e, "Fujitsu V5505", CXT5045_LAPTOP), | 816 | SND_PCI_QUIRK(0x1734, 0x110e, "Fujitsu V5505", CXT5045_LAPTOP_HPSENSE), |
814 | SND_PCI_QUIRK(0x8086, 0x2111, "Conexant Reference board", CXT5045_LAPTOP), | 817 | SND_PCI_QUIRK(0x1509, 0x1e40, "FIC", CXT5045_LAPTOP_HPMICSENSE), |
818 | SND_PCI_QUIRK(0x1509, 0x2f05, "FIC", CXT5045_LAPTOP_HPMICSENSE), | ||
819 | SND_PCI_QUIRK(0x1509, 0x2f06, "FIC", CXT5045_LAPTOP_HPMICSENSE), | ||
820 | SND_PCI_QUIRK(0x1631, 0xc106, "Packard Bell", CXT5045_LAPTOP_HPMICSENSE), | ||
821 | SND_PCI_QUIRK(0x1631, 0xc107, "Packard Bell", CXT5045_LAPTOP_HPMICSENSE), | ||
822 | SND_PCI_QUIRK(0x8086, 0x2111, "Conexant Reference board", CXT5045_LAPTOP_HPSENSE), | ||
815 | {} | 823 | {} |
816 | }; | 824 | }; |
817 | 825 | ||
@@ -849,7 +857,7 @@ static int patch_cxt5045(struct hda_codec *codec) | |||
849 | cxt5045_models, | 857 | cxt5045_models, |
850 | cxt5045_cfg_tbl); | 858 | cxt5045_cfg_tbl); |
851 | switch (board_config) { | 859 | switch (board_config) { |
852 | case CXT5045_LAPTOP: | 860 | case CXT5045_LAPTOP_HPSENSE: |
853 | codec->patch_ops.unsol_event = cxt5045_hp_unsol_event; | 861 | codec->patch_ops.unsol_event = cxt5045_hp_unsol_event; |
854 | spec->input_mux = &cxt5045_capture_source; | 862 | spec->input_mux = &cxt5045_capture_source; |
855 | spec->num_init_verbs = 2; | 863 | spec->num_init_verbs = 2; |
@@ -857,13 +865,23 @@ static int patch_cxt5045(struct hda_codec *codec) | |||
857 | spec->mixers[0] = cxt5045_mixers; | 865 | spec->mixers[0] = cxt5045_mixers; |
858 | codec->patch_ops.init = cxt5045_init; | 866 | codec->patch_ops.init = cxt5045_init; |
859 | break; | 867 | break; |
860 | case CXT5045_FUJITSU: | 868 | case CXT5045_LAPTOP_MICSENSE: |
861 | spec->input_mux = &cxt5045_capture_source; | 869 | spec->input_mux = &cxt5045_capture_source; |
862 | spec->num_init_verbs = 2; | 870 | spec->num_init_verbs = 2; |
863 | spec->init_verbs[1] = cxt5045_mic_sense_init_verbs; | 871 | spec->init_verbs[1] = cxt5045_mic_sense_init_verbs; |
864 | spec->mixers[0] = cxt5045_mixers; | 872 | spec->mixers[0] = cxt5045_mixers; |
865 | codec->patch_ops.init = cxt5045_init; | 873 | codec->patch_ops.init = cxt5045_init; |
866 | break; | 874 | break; |
875 | default: | ||
876 | case CXT5045_LAPTOP_HPMICSENSE: | ||
877 | codec->patch_ops.unsol_event = cxt5045_hp_unsol_event; | ||
878 | spec->input_mux = &cxt5045_capture_source; | ||
879 | spec->num_init_verbs = 3; | ||
880 | spec->init_verbs[1] = cxt5045_hp_sense_init_verbs; | ||
881 | spec->init_verbs[2] = cxt5045_mic_sense_init_verbs; | ||
882 | spec->mixers[0] = cxt5045_mixers; | ||
883 | codec->patch_ops.init = cxt5045_init; | ||
884 | break; | ||
867 | case CXT5045_BENQ: | 885 | case CXT5045_BENQ: |
868 | codec->patch_ops.unsol_event = cxt5045_hp_unsol_event; | 886 | codec->patch_ops.unsol_event = cxt5045_hp_unsol_event; |
869 | spec->input_mux = &cxt5045_capture_source_benq; | 887 | spec->input_mux = &cxt5045_capture_source_benq; |
@@ -879,6 +897,8 @@ static int patch_cxt5045(struct hda_codec *codec) | |||
879 | spec->input_mux = &cxt5045_test_capture_source; | 897 | spec->input_mux = &cxt5045_test_capture_source; |
880 | spec->mixers[0] = cxt5045_test_mixer; | 898 | spec->mixers[0] = cxt5045_test_mixer; |
881 | spec->init_verbs[0] = cxt5045_test_init_verbs; | 899 | spec->init_verbs[0] = cxt5045_test_init_verbs; |
900 | break; | ||
901 | |||
882 | #endif | 902 | #endif |
883 | } | 903 | } |
884 | 904 | ||