diff options
Diffstat (limited to 'sound/core/vmaster.c')
| -rw-r--r-- | sound/core/vmaster.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/sound/core/vmaster.c b/sound/core/vmaster.c index 257624bd199..3b9b550109c 100644 --- a/sound/core/vmaster.c +++ b/sound/core/vmaster.c @@ -353,7 +353,8 @@ static void master_free(struct snd_kcontrol *kcontrol)   *   * The optional argument @tlv can be used to specify the TLV information   * for dB scale of the master control.  It should be a single element - * with #SNDRV_CTL_TLVT_DB_SCALE type, and should be the max 0dB. + * with #SNDRV_CTL_TLVT_DB_SCALE, #SNDRV_CTL_TLV_DB_MINMAX or + * #SNDRV_CTL_TLVT_DB_MINMAX_MUTE type, and should be the max 0dB.   */  struct snd_kcontrol *snd_ctl_make_virtual_master(char *name,  						 const unsigned int *tlv) @@ -384,7 +385,10 @@ struct snd_kcontrol *snd_ctl_make_virtual_master(char *name,  	kctl->private_free = master_free;  	/* additional (constant) TLV read */ -	if (tlv && tlv[0] == SNDRV_CTL_TLVT_DB_SCALE) { +	if (tlv && +	    (tlv[0] == SNDRV_CTL_TLVT_DB_SCALE || +	     tlv[0] == SNDRV_CTL_TLVT_DB_MINMAX || +	     tlv[0] == SNDRV_CTL_TLVT_DB_MINMAX_MUTE)) {  		kctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_TLV_READ;  		memcpy(master->tlv, tlv, sizeof(master->tlv));  		kctl->tlv.p = master->tlv;  |