val = snd_hda_get_bool_hint(codec, "hp_mic_detect");
        if (val >= 0)
                spec->suppress_hp_mic_detect = !val;
+       val = snd_hda_get_bool_hint(codec, "vmaster");
+       if (val >= 0)
+               spec->suppress_vmaster = !val;
 
        if (!snd_hda_get_int_hint(codec, "mixer_nid", &val))
                spec->mixer_nid = val;
        }
 
        /* if we have no master control, let's create it */
-       if (!spec->no_analog &&
+       if (!spec->no_analog && !spec->suppress_vmaster &&
            !snd_hda_find_mixer_ctl(codec, "Master Playback Volume")) {
                err = snd_hda_add_vmaster(codec, "Master Playback Volume",
                                          spec->vmaster_tlv, slave_pfxs,
                if (err < 0)
                        return err;
        }
-       if (!spec->no_analog &&
+       if (!spec->no_analog && !spec->suppress_vmaster &&
            !snd_hda_find_mixer_ctl(codec, "Master Playback Switch")) {
                err = __snd_hda_add_vmaster(codec, "Master Playback Switch",
                                            NULL, slave_pfxs,
 
        unsigned int add_jack_modes:1; /* add i/o jack mode enum ctls */
        unsigned int power_down_unused:1; /* power down unused widgets */
        unsigned int dac_min_mute:1; /* minimal = mute for DACs */
+       unsigned int suppress_vmaster:1; /* don't create vmaster kctls */
 
        /* other internal flags */
        unsigned int no_analog:1; /* digital I/O only */