diff options
-rw-r--r-- | sound/pci/hda/hda_codec.h | 3 | ||||
-rw-r--r-- | sound/pci/hda/hda_proc.c | 10 | ||||
-rw-r--r-- | sound/pci/hda/patch_conexant.c | 3 |
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; |