diff options
-rw-r--r-- | sound/usb/mixer.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index cdd19d7fe500..78a5abda6793 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c | |||
@@ -881,8 +881,17 @@ static int mixer_ctl_feature_info(struct snd_kcontrol *kcontrol, struct snd_ctl_ | |||
881 | uinfo->value.integer.min = 0; | 881 | uinfo->value.integer.min = 0; |
882 | uinfo->value.integer.max = 1; | 882 | uinfo->value.integer.max = 1; |
883 | } else { | 883 | } else { |
884 | if (! cval->initialized) | 884 | if (!cval->initialized) { |
885 | get_min_max(cval, 0); | 885 | get_min_max(cval, 0); |
886 | if (cval->initialized && cval->dBmin >= cval->dBmax) { | ||
887 | kcontrol->vd[0].access &= | ||
888 | ~(SNDRV_CTL_ELEM_ACCESS_TLV_READ | | ||
889 | SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK); | ||
890 | snd_ctl_notify(cval->mixer->chip->card, | ||
891 | SNDRV_CTL_EVENT_MASK_INFO, | ||
892 | &kcontrol->id); | ||
893 | } | ||
894 | } | ||
886 | uinfo->value.integer.min = 0; | 895 | uinfo->value.integer.min = 0; |
887 | uinfo->value.integer.max = | 896 | uinfo->value.integer.max = |
888 | (cval->max - cval->min + cval->res - 1) / cval->res; | 897 | (cval->max - cval->min + cval->res - 1) / cval->res; |