aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2007-10-18 11:33:27 -0400
committerJaroslav Kysela <perex@perex.cz>2007-10-23 02:04:34 -0400
commit9a2a763e08889318d7ace9f59d7963661a46d393 (patch)
treef3015e06c30c6809ab791bac110e1dc40cbe0bf7 /sound
parent8e84c6413a2bec1c3e67bb38d42422f9f3262c10 (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')
-rw-r--r--sound/pci/hda/patch_sigmatel.c6
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);