aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt5
-rw-r--r--sound/pci/hda/patch_conexant.c56
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
783enum { 783enum {
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
793static const char *cxt5045_models[CXT5045_MODELS] = { 794static 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
802static struct snd_pci_quirk cxt5045_cfg_tbl[] = { 804static 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