[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>
This commit is contained in:
parent
8e84c6413a
commit
9a2a763e08
|
@ -111,6 +111,7 @@ struct sigmatel_spec {
|
||||||
unsigned int alt_switch: 1;
|
unsigned int alt_switch: 1;
|
||||||
unsigned int hp_detect: 1;
|
unsigned int hp_detect: 1;
|
||||||
unsigned int gpio_mute: 1;
|
unsigned int gpio_mute: 1;
|
||||||
|
unsigned int no_vol_knob :1;
|
||||||
|
|
||||||
unsigned int gpio_mask, gpio_data;
|
unsigned int gpio_mask, gpio_data;
|
||||||
|
|
||||||
|
@ -1930,7 +1931,8 @@ static int stac92xx_auto_create_hp_ctls(struct hda_codec *codec,
|
||||||
}
|
}
|
||||||
if (spec->multiout.hp_nid) {
|
if (spec->multiout.hp_nid) {
|
||||||
const char *pfx;
|
const char *pfx;
|
||||||
if (old_num_dacs == spec->multiout.num_dacs)
|
if (old_num_dacs == spec->multiout.num_dacs &&
|
||||||
|
spec->no_vol_knob)
|
||||||
pfx = "Master";
|
pfx = "Master";
|
||||||
else
|
else
|
||||||
pfx = "Headphone";
|
pfx = "Headphone";
|
||||||
|
@ -2487,6 +2489,7 @@ static int patch_stac9200(struct hda_codec *codec)
|
||||||
codec->spec = spec;
|
codec->spec = spec;
|
||||||
spec->num_pins = ARRAY_SIZE(stac9200_pin_nids);
|
spec->num_pins = ARRAY_SIZE(stac9200_pin_nids);
|
||||||
spec->pin_nids = stac9200_pin_nids;
|
spec->pin_nids = stac9200_pin_nids;
|
||||||
|
spec->no_vol_knob = 1;
|
||||||
spec->board_config = snd_hda_check_board_config(codec, STAC_9200_MODELS,
|
spec->board_config = snd_hda_check_board_config(codec, STAC_9200_MODELS,
|
||||||
stac9200_models,
|
stac9200_models,
|
||||||
stac9200_cfg_tbl);
|
stac9200_cfg_tbl);
|
||||||
|
@ -2541,6 +2544,7 @@ static int patch_stac925x(struct hda_codec *codec)
|
||||||
codec->spec = spec;
|
codec->spec = spec;
|
||||||
spec->num_pins = ARRAY_SIZE(stac925x_pin_nids);
|
spec->num_pins = ARRAY_SIZE(stac925x_pin_nids);
|
||||||
spec->pin_nids = stac925x_pin_nids;
|
spec->pin_nids = stac925x_pin_nids;
|
||||||
|
spec->no_vol_knob = 1;
|
||||||
spec->board_config = snd_hda_check_board_config(codec, STAC_925x_MODELS,
|
spec->board_config = snd_hda_check_board_config(codec, STAC_925x_MODELS,
|
||||||
stac925x_models,
|
stac925x_models,
|
||||||
stac925x_cfg_tbl);
|
stac925x_cfg_tbl);
|
||||||
|
|
Loading…
Reference in New Issue