aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/pci/hda/hda_codec.h3
-rw-r--r--sound/pci/hda/hda_proc.c10
-rw-r--r--sound/pci/hda/patch_conexant.c3
3 files changed, 14 insertions, 2 deletions
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
index 2ea628478a91..079e1ab718d4 100644
--- a/sound/pci/hda/hda_codec.h
+++ b/sound/pci/hda/hda_codec.h
@@ -793,6 +793,9 @@ struct hda_codec {
793 * status change 793 * status change
794 * (e.g. Realtek codecs) 794 * (e.g. Realtek codecs)
795 */ 795 */
796 unsigned int pin_amp_workaround:1; /* pin out-amp takes index
797 * (e.g. Conexant codecs)
798 */
796#ifdef CONFIG_SND_HDA_POWER_SAVE 799#ifdef CONFIG_SND_HDA_POWER_SAVE
797 unsigned int power_on :1; /* current (global) power-state */ 800 unsigned int power_on :1; /* current (global) power-state */
798 unsigned int power_transition :1; /* power-state in transition */ 801 unsigned int power_transition :1; /* power-state in transition */
diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c
index 144b85276d5a..93b25ba4d00b 100644
--- a/sound/pci/hda/hda_proc.c
+++ b/sound/pci/hda/hda_proc.c
@@ -554,8 +554,14 @@ static void print_codec_info(struct snd_info_entry *entry,
554 snd_iprintf(buffer, " Amp-Out caps: "); 554 snd_iprintf(buffer, " Amp-Out caps: ");
555 print_amp_caps(buffer, codec, nid, HDA_OUTPUT); 555 print_amp_caps(buffer, codec, nid, HDA_OUTPUT);
556 snd_iprintf(buffer, " Amp-Out vals: "); 556 snd_iprintf(buffer, " Amp-Out vals: ");
557 print_amp_vals(buffer, codec, nid, HDA_OUTPUT, 557 if (wid_type == AC_WID_PIN &&
558 wid_caps & AC_WCAP_STEREO, 1); 558 codec->pin_amp_workaround)
559 print_amp_vals(buffer, codec, nid, HDA_OUTPUT,
560 wid_caps & AC_WCAP_STEREO,
561 conn_len);
562 else
563 print_amp_vals(buffer, codec, nid, HDA_OUTPUT,
564 wid_caps & AC_WCAP_STEREO, 1);
559 } 565 }
560 566
561 switch (wid_type) { 567 switch (wid_type) {
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index bc016fade192..1f2ad76ca94b 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -1066,6 +1066,7 @@ static int patch_cxt5045(struct hda_codec *codec)
1066 if (!spec) 1066 if (!spec)
1067 return -ENOMEM; 1067 return -ENOMEM;
1068 codec->spec = spec; 1068 codec->spec = spec;
1069 codec->pin_amp_workaround = 1;
1069 1070
1070 spec->multiout.max_channels = 2; 1071 spec->multiout.max_channels = 2;
1071 spec->multiout.num_dacs = ARRAY_SIZE(cxt5045_dac_nids); 1072 spec->multiout.num_dacs = ARRAY_SIZE(cxt5045_dac_nids);
@@ -1501,6 +1502,7 @@ static int patch_cxt5047(struct hda_codec *codec)
1501 if (!spec) 1502 if (!spec)
1502 return -ENOMEM; 1503 return -ENOMEM;
1503 codec->spec = spec; 1504 codec->spec = spec;
1505 codec->pin_amp_workaround = 1;
1504 1506
1505 spec->multiout.max_channels = 2; 1507 spec->multiout.max_channels = 2;
1506 spec->multiout.num_dacs = ARRAY_SIZE(cxt5047_dac_nids); 1508 spec->multiout.num_dacs = ARRAY_SIZE(cxt5047_dac_nids);
@@ -1847,6 +1849,7 @@ static int patch_cxt5051(struct hda_codec *codec)
1847 if (!spec) 1849 if (!spec)
1848 return -ENOMEM; 1850 return -ENOMEM;
1849 codec->spec = spec; 1851 codec->spec = spec;
1852 codec->pin_amp_workaround = 1;
1850 1853
1851 codec->patch_ops = conexant_patch_ops; 1854 codec->patch_ops = conexant_patch_ops;
1852 codec->patch_ops.init = cxt5051_init; 1855 codec->patch_ops.init = cxt5051_init;