Patch "ALSA: usb-audio: Add mute TLV for playback volumes on C-Media devices" has been added to the 4.12-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
ALSA: usb-audio: Add mute TLV for playback volumes on C-Media devices
to the 4.12-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
alsa-usb-audio-add-mute-tlv-for-playback-volumes-on-c-media-devices.patch
and it can be found in the queue-4.12 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
0f174b3525a43bd51f9397394763925e0ebe7bc7Mon Sep 17 00:00:00 2001
From: Takashi Iwai <[email protected]>
Date: Wed, 16 Aug 2017 14:18:37 +0200
Subject: ALSA: usb-audio: Add mute TLV for playback volumes on C-Media devices
From: Takashi Iwai <[email protected]>
commit 0f174b3525a43bd51f9397394763925e0ebe7bc7 upstream.
C-Media devices (at least some models) mute the playback stream when volumes are set to the minimum value. But this isn't informed via TLV and the user-space, typically PulseAudio, gets confused as if it's still played in a low volume.
This patch adds the new flag, min_mute, to struct usb_mixer_elem_info for indicating that the mixer element is with the minimum-mute volume. This flag is set for known C-Media devices in snd_usb_mixer_fu_apply_quirk() in turn.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=196669
--- sound/usb/mixer.c | 2 ++ sound/usb/mixer.h | 1 + sound/usb/mixer_quirks.c | 6 ++++++ 3 files changed, 9 insertions(+)
sound/usb/mixer.c +2 -0
@@ -542,6 +542,8 @@ int snd_usb_mixer_vol_tlv(struct snd_kcoif (size <sizeof (scale))return -ENOMEM ; +if (cval->min_mute) + scale[0 ] =SNDRV_CTL_TLVT_DB_MINMAX_MUTE ; scale[2 ] = cval->dBmin; scale[3 ] = cval->dBmax;if (copy_to_user (_tlv, scale,sizeof (scale)))
sound/usb/mixer.h +1 -0
@@ -64,6 +64,7 @@ struct usb_mixer_elem_info {int cached;int cache_val[MAX_CHANNELS ];u8 initialized; +u8 min_mute;void *private_data; };
sound/usb/mixer_quirks.c +6 -0
@@ -1878,6 +1878,12 @@ void snd_usb_mixer_fu_apply_quirk(structif (unitid ==7 && cval->control ==UAC_FU_VOLUME )snd_dragonfly_quirk_db_scale (mixer, cval, kctl);break ; +/* lowest playback value is muted on C-Media devices */ +case USB_ID (0x0d8c ,0x000c ): +case USB_ID (0x0d8c ,0x0014 ): +if (strstr (kctl->id.name,"Playback" )) + cval->min_mute =1 ; +break ; } }
Patches currently in stable-queue which might be from [email protected] are
queue-4.12/alsa-seq-2nd-attempt-at-fixing-race-creating-a-queue.patch queue-4.12/alsa-usb-audio-apply-sample-rate-quirk-to-sennheiser-headset.patch queue-4.12/alsa-usb-audio-add-mute-tlv-for-playback-volumes-on-c-media-devices.patch queue-4.12/alsa-usb-audio-add-dsd-support-for-new-amanero-pid.patch