diff options
author | Takashi Iwai <tiwai@suse.de> | 2007-10-18 11:33:27 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2007-10-23 02:04:34 -0400 |
commit | 9a2a763e08889318d7ace9f59d7963661a46d393 (patch) | |
tree | f3015e06c30c6809ab791bac110e1dc40cbe0bf7 /sound/pci | |
parent | 8e84c6413a2bec1c3e67bb38d42422f9f3262c10 (diff) |
[ALSA] hda-codec - Fix conflict of Master volume in STAC92xx codec
The addition of volume knob as Master volume resulted in conflict with
the existing one by stac92xx_auto_create_hp_ctls().
This patch fixes the conflict, and still keeps the Master control for
codecs without volume knob as much as possible.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index bf950195107c..f9b2c435a130 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -111,6 +111,7 @@ struct sigmatel_spec { | |||
111 | unsigned int alt_switch: 1; | 111 | unsigned int alt_switch: 1; |
112 | unsigned int hp_detect: 1; | 112 | unsigned int hp_detect: 1; |
113 | unsigned int gpio_mute: 1; | 113 | unsigned int gpio_mute: 1; |
114 | unsigned int no_vol_knob :1; | ||
114 | 115 | ||
115 | unsigned int gpio_mask, gpio_data; | 116 | unsigned int gpio_mask, gpio_data; |
116 | 117 | ||
@@ -1930,7 +1931,8 @@ static int stac92xx_auto_create_hp_ctls(struct hda_codec *codec, | |||
1930 | } | 1931 | } |
1931 | if (spec->multiout.hp_nid) { | 1932 | if (spec->multiout.hp_nid) { |
1932 | const char *pfx; | 1933 | const char *pfx; |
1933 | if (old_num_dacs == spec->multiout.num_dacs) | 1934 | if (old_num_dacs == spec->multiout.num_dacs && |
1935 | spec->no_vol_knob) | ||
1934 | pfx = "Master"; | 1936 | pfx = "Master"; |
1935 | else | 1937 | else |
1936 | pfx = "Headphone"; | 1938 | pfx = "Headphone"; |
@@ -2487,6 +2489,7 @@ static int patch_stac9200(struct hda_codec *codec) | |||
2487 | codec->spec = spec; | 2489 | codec->spec = spec; |
2488 | spec->num_pins = ARRAY_SIZE(stac9200_pin_nids); | 2490 | spec->num_pins = ARRAY_SIZE(stac9200_pin_nids); |
2489 | spec->pin_nids = stac9200_pin_nids; | 2491 | spec->pin_nids = stac9200_pin_nids; |
2492 | spec->no_vol_knob = 1; | ||
2490 | spec->board_config = snd_hda_check_board_config(codec, STAC_9200_MODELS, | 2493 | spec->board_config = snd_hda_check_board_config(codec, STAC_9200_MODELS, |
2491 | stac9200_models, | 2494 | stac9200_models, |
2492 | stac9200_cfg_tbl); | 2495 | stac9200_cfg_tbl); |
@@ -2541,6 +2544,7 @@ static int patch_stac925x(struct hda_codec *codec) | |||
2541 | codec->spec = spec; | 2544 | codec->spec = spec; |
2542 | spec->num_pins = ARRAY_SIZE(stac925x_pin_nids); | 2545 | spec->num_pins = ARRAY_SIZE(stac925x_pin_nids); |
2543 | spec->pin_nids = stac925x_pin_nids; | 2546 | spec->pin_nids = stac925x_pin_nids; |
2547 | spec->no_vol_knob = 1; | ||
2544 | spec->board_config = snd_hda_check_board_config(codec, STAC_925x_MODELS, | 2548 | spec->board_config = snd_hda_check_board_config(codec, STAC_925x_MODELS, |
2545 | stac925x_models, | 2549 | stac925x_models, |
2546 | stac925x_cfg_tbl); | 2550 | stac925x_cfg_tbl); |