<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux.git/sound/usb, branch linux-4.8.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=linux-4.8.y</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=linux-4.8.y'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/'/>
<updated>2017-01-06T10:16:19+00:00</updated>
<entry>
<title>ALSA: hiface: Fix M2Tech hiFace driver sampling rate change</title>
<updated>2017-01-06T10:16:19+00:00</updated>
<author>
<name>Jussi Laako</name>
<email>jussi@sonarnerd.net</email>
</author>
<published>2016-11-28T09:27:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=5496ec423449d6415a1c14381dfa2a9056101d03'/>
<id>urn:sha1:5496ec423449d6415a1c14381dfa2a9056101d03</id>
<content type='text'>
commit 995c6a7fd9b9212abdf01160f6ce3193176be503 upstream.

Sampling rate changes after first set one are not reflected to the
hardware, while driver and ALSA think the rate has been changed.

Fix the problem by properly stopping the interface at the beginning of
prepare call, allowing new rate to be set to the hardware. This keeps
the hardware in sync with the driver.

Signed-off-by: Jussi Laako &lt;jussi@sonarnerd.net&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ALSA: usb-audio: Add QuickCam Communicate Deluxe/S7500 to volume_control_quirks</title>
<updated>2017-01-06T10:16:19+00:00</updated>
<author>
<name>Con Kolivas</name>
<email>con@kolivas.org</email>
</author>
<published>2016-12-09T04:15:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=abf549a8b9693419c1a076eda3c859d646a2d887'/>
<id>urn:sha1:abf549a8b9693419c1a076eda3c859d646a2d887</id>
<content type='text'>
commit 82ffb6fc637150b279f49e174166d2aa3853eaf4 upstream.

The Logitech QuickCam Communicate Deluxe/S7500 microphone fails with the
following warning.

[    6.778995] usb 2-1.2.2.2: Warning! Unlikely big volume range (=3072),
cval-&gt;res is probably wrong.
[    6.778996] usb 2-1.2.2.2: [5] FU [Mic Capture Volume] ch = 1, val =
4608/7680/1

Adding it to the list of devices in volume_control_quirks makes it work
properly, fixing related typo.

Signed-off-by: Con Kolivas &lt;kernel@kolivas.org&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ALSA: usb-audio: Fix use-after-free of usb_device at disconnect</title>
<updated>2016-11-26T08:56:54+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2016-11-14T20:46:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=85fcb62a58b281e3bed60ecdc34d1559ba06c9c1'/>
<id>urn:sha1:85fcb62a58b281e3bed60ecdc34d1559ba06c9c1</id>
<content type='text'>
commit 6ff1a25318ebf688ef9593fe09cd449f6fb4ad31 upstream.

The usb-audio driver implements the deferred device disconnection for
the device in use.  In this mode, the disconnection callback returns
immediately while the actual ALSA card object removal happens later
when all files get closed.  As Shuah reported, this code flow,
however, leads to a use-after-free, detected by KASAN:

 BUG: KASAN: use-after-free in snd_usb_audio_free+0x134/0x160 [snd_usb_audio] at addr ffff8801c863ce10
 Write of size 8 by task pulseaudio/2244
 Call Trace:
  [&lt;ffffffff81b31473&gt;] dump_stack+0x67/0x94
  [&lt;ffffffff81564ef1&gt;] kasan_object_err+0x21/0x70
  [&lt;ffffffff8156518a&gt;] kasan_report_error+0x1fa/0x4e0
  [&lt;ffffffff81564ad7&gt;] ? kasan_slab_free+0x87/0xb0
  [&lt;ffffffff81565733&gt;] __asan_report_store8_noabort+0x43/0x50
  [&lt;ffffffffa0fc0f54&gt;] ? snd_usb_audio_free+0x134/0x160 [snd_usb_audio]
  [&lt;ffffffffa0fc0f54&gt;] snd_usb_audio_free+0x134/0x160 [snd_usb_audio]
  [&lt;ffffffffa0fc0fb1&gt;] snd_usb_audio_dev_free+0x31/0x40 [snd_usb_audio]
  [&lt;ffffffff8243c78a&gt;] __snd_device_free+0x12a/0x210
  [&lt;ffffffff8243d1f5&gt;] snd_device_free_all+0x85/0xd0
  [&lt;ffffffff8242cae4&gt;] release_card_device+0x34/0x130
  [&lt;ffffffff81ef1846&gt;] device_release+0x76/0x1e0
  [&lt;ffffffff81b37ad7&gt;] kobject_release+0x107/0x370
  .....
 Object at ffff8801c863cc80, in cache kmalloc-2048 size: 2048
 Allocated:
  [&lt;ffffffff810804eb&gt;] save_stack_trace+0x2b/0x50
  [&lt;ffffffff81564296&gt;] save_stack+0x46/0xd0
  [&lt;ffffffff8156450d&gt;] kasan_kmalloc+0xad/0xe0
  [&lt;ffffffff81560d1a&gt;] kmem_cache_alloc_trace+0xfa/0x240
  [&lt;ffffffff8214ea47&gt;] usb_alloc_dev+0x57/0xc90
  [&lt;ffffffff8216349d&gt;] hub_event+0xf1d/0x35f0
  ....
 Freed:
  [&lt;ffffffff810804eb&gt;] save_stack_trace+0x2b/0x50
  [&lt;ffffffff81564296&gt;] save_stack+0x46/0xd0
  [&lt;ffffffff81564ac1&gt;] kasan_slab_free+0x71/0xb0
  [&lt;ffffffff81560929&gt;] kfree+0xd9/0x280
  [&lt;ffffffff8214de6e&gt;] usb_release_dev+0xde/0x110
  [&lt;ffffffff81ef1846&gt;] device_release+0x76/0x1e0
  ....

It's the code trying to clear drvdata of the assigned usb_device where
the usb_device itself was already released in usb_release_dev() after
the disconnect callback.

This patch fixes it by checking whether the code path is via the
disconnect callback, i.e. chip-&gt;shutdown flag is set.

Fixes: 79289e24194a ('ALSA: usb-audio: Refer to chip-&gt;usb_id for quirks...')
Reported-and-tested-by: Shuah Khan &lt;shuahkh@osg.samsung.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ALSA: usb-audio: Add quirk for Syntek STK1160</title>
<updated>2016-11-10T15:38:47+00:00</updated>
<author>
<name>Marcel Hasler</name>
<email>mahasler@gmail.com</email>
</author>
<published>2016-10-26T22:42:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8ccf154b2654867cafc6fbe3a049cecdc29ac972'/>
<id>urn:sha1:8ccf154b2654867cafc6fbe3a049cecdc29ac972</id>
<content type='text'>
commit bdc3478f90cd4d2928197f36629d5cf93b64dbe9 upstream.

The stk1160 chip needs QUIRK_AUDIO_ALIGN_TRANSFER. This patch resolves
the issue reported on the mailing list
(http://marc.info/?l=linux-sound&amp;m=139223599126215&amp;w=2) and also fixes
bug 180071 (https://bugzilla.kernel.org/show_bug.cgi?id=180071).

Signed-off-by: Marcel Hasler &lt;mahasler@gmail.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ALSA: usb-line6: use the same declaration as definition in header for MIDI manufacturer ID</title>
<updated>2016-10-16T16:03:38+00:00</updated>
<author>
<name>Takashi Sakamoto</name>
<email>o-takashi@sakamocchi.jp</email>
</author>
<published>2016-09-25T13:00:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=14ca6ce4528d834c9c2abe4b3423e58df2390c0f'/>
<id>urn:sha1:14ca6ce4528d834c9c2abe4b3423e58df2390c0f</id>
<content type='text'>
commit 8da08ca03b73593d5299893bf29fc08569c3fb5f upstream.

Currently, usb-line6 module exports an array of MIDI manufacturer ID and
usb-pod module uses it. However, the declaration is not the definition in
common header. The difference is explicit length of array. Although
compiler calculates it and everything goes well, it's better to use the
same representation between definition and declaration.

This commit fills the length of array for usb-line6 module. As a small
good sub-effect, this commit suppress below warnings from static analysis
by sparse v0.5.0.

sound/usb/line6/driver.c:274:43: error: cannot size expression
sound/usb/line6/driver.c:275:16: error: cannot size expression
sound/usb/line6/driver.c:276:16: error: cannot size expression
sound/usb/line6/driver.c:277:16: error: cannot size expression

Fixes: 705ececd1c60 ("Staging: add line6 usb driver")
Signed-off-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ALSA: usb-audio: Extend DragonFly dB scale quirk to cover other variants</title>
<updated>2016-10-16T16:03:38+00:00</updated>
<author>
<name>Anssi Hannula</name>
<email>anssi.hannula@iki.fi</email>
</author>
<published>2016-09-23T03:43:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e09db64b3e100e7c021b8d34ef2f92c888eec95b'/>
<id>urn:sha1:e09db64b3e100e7c021b8d34ef2f92c888eec95b</id>
<content type='text'>
commit eb1a74b7bea17eea31915c4f76385cefe69d9795 upstream.

The DragonFly quirk added in 42e3121d90f4 ("ALSA: usb-audio: Add a more
accurate volume quirk for AudioQuest DragonFly") applies a custom dB map
on the volume control when its range is reported as 0..50 (0 .. 0.2dB).

However, there exists at least one other variant (hw v1.0c, as opposed
to the tested v1.2) which reports a different non-sensical volume range
(0..53) and the custom map is therefore not applied for that device.

This results in all of the volume change appearing close to 100% on
mixer UIs that utilize the dB TLV information.

Add a fallback case where no dB TLV is reported at all if the control
range is not 0..50 but still 0..N where N &lt;= 1000 (3.9 dB). Also
restrict the quirk to only apply to the volume control as there is also
a mute control which would match the check otherwise.

Fixes: 42e3121d90f4 ("ALSA: usb-audio: Add a more accurate volume quirk for AudioQuest DragonFly")
Signed-off-by: Anssi Hannula &lt;anssi.hannula@iki.fi&gt;
Reported-by: David W &lt;regulars@d-dub.org.uk&gt;
Tested-by: David W &lt;regulars@d-dub.org.uk&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>ALSA: usb-audio: Add sample rate inquiry quirk for B850V3 CP2114</title>
<updated>2016-08-29T14:49:18+00:00</updated>
<author>
<name>Ken Lin</name>
<email>ken.lin@advantech.com.tw</email>
</author>
<published>2016-08-12T18:08:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=83d9956b7e6b310c1062df7894257251c625b22e'/>
<id>urn:sha1:83d9956b7e6b310c1062df7894257251c625b22e</id>
<content type='text'>
Avoid getting sample rate on B850V3 CP2114 as it is unsupported and
causes noisy "current rate is different from the runtime rate" messages
when playback starts.

Signed-off-by: Ken Lin &lt;ken.lin@advantech.com.tw&gt;
Signed-off-by: Akshay Bhat &lt;akshay.bhat@timesys.com&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: line6: Fix POD sysfs attributes segfault</title>
<updated>2016-08-22T09:37:31+00:00</updated>
<author>
<name>Andrej Krutak</name>
<email>dev@andree.sk</email>
</author>
<published>2016-08-18T21:52:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=b027d11263836a0cd335520175257dcb99b43757'/>
<id>urn:sha1:b027d11263836a0cd335520175257dcb99b43757</id>
<content type='text'>
The commit 02fc76f6a changed base of the sysfs attributes from device to card.
The "show" callbacks dereferenced wrong objects because of this.

Fixes: 02fc76f6a7db ('ALSA: line6: Create sysfs via snd_card_add_dev_attr()')
Cc: &lt;stable@vger.kernel.org&gt; # v4.0+
Reviewed-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Andrej Krutak &lt;dev@andree.sk&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: line6: Give up on the lock while URBs are released.</title>
<updated>2016-08-22T09:37:16+00:00</updated>
<author>
<name>Andrej Krutak</name>
<email>dev@andree.sk</email>
</author>
<published>2016-08-18T21:52:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=adc8a43a6d6688272ebffa81789fa857e603dec6'/>
<id>urn:sha1:adc8a43a6d6688272ebffa81789fa857e603dec6</id>
<content type='text'>
Done, because line6_stream_stop() locks and calls line6_unlink_audio_urbs(),
which in turn invokes audio_out_callback(), which tries to lock 2nd time.

Fixes:

=============================================
[ INFO: possible recursive locking detected ]
4.4.15+ #15 Not tainted
---------------------------------------------
mplayer/3591 is trying to acquire lock:
 (&amp;(&amp;line6pcm-&gt;out.lock)-&gt;rlock){-.-...}, at: [&lt;bfa27655&gt;] audio_out_callback+0x70/0x110 [snd_usb_line6]

but task is already holding lock:
 (&amp;(&amp;line6pcm-&gt;out.lock)-&gt;rlock){-.-...}, at: [&lt;bfa26aad&gt;] line6_stream_stop+0x24/0x5c [snd_usb_line6]

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&amp;(&amp;line6pcm-&gt;out.lock)-&gt;rlock);
  lock(&amp;(&amp;line6pcm-&gt;out.lock)-&gt;rlock);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

3 locks held by mplayer/3591:
 #0:  (snd_pcm_link_rwlock){.-.-..}, at: [&lt;bf8d49a7&gt;] snd_pcm_stream_lock+0x1e/0x40 [snd_pcm]
 #1:  (&amp;(&amp;substream-&gt;self_group.lock)-&gt;rlock){-.-...}, at: [&lt;bf8d49af&gt;] snd_pcm_stream_lock+0x26/0x40 [snd_pcm]
 #2:  (&amp;(&amp;line6pcm-&gt;out.lock)-&gt;rlock){-.-...}, at: [&lt;bfa26aad&gt;] line6_stream_stop+0x24/0x5c [snd_usb_line6]

stack backtrace:
CPU: 0 PID: 3591 Comm: mplayer Not tainted 4.4.15+ #15
Hardware name: Generic AM33XX (Flattened Device Tree)
[&lt;c0015d85&gt;] (unwind_backtrace) from [&lt;c001253d&gt;] (show_stack+0x11/0x14)
[&lt;c001253d&gt;] (show_stack) from [&lt;c02f1bdf&gt;] (dump_stack+0x8b/0xac)
[&lt;c02f1bdf&gt;] (dump_stack) from [&lt;c0076f43&gt;] (__lock_acquire+0xc8b/0x1780)
[&lt;c0076f43&gt;] (__lock_acquire) from [&lt;c007810d&gt;] (lock_acquire+0x99/0x1c0)
[&lt;c007810d&gt;] (lock_acquire) from [&lt;c06171e7&gt;] (_raw_spin_lock_irqsave+0x3f/0x4c)
[&lt;c06171e7&gt;] (_raw_spin_lock_irqsave) from [&lt;bfa27655&gt;] (audio_out_callback+0x70/0x110 [snd_usb_line6])
[&lt;bfa27655&gt;] (audio_out_callback [snd_usb_line6]) from [&lt;c04294db&gt;] (__usb_hcd_giveback_urb+0x53/0xd0)
[&lt;c04294db&gt;] (__usb_hcd_giveback_urb) from [&lt;c046388d&gt;] (musb_giveback+0x3d/0x98)
[&lt;c046388d&gt;] (musb_giveback) from [&lt;c04647f5&gt;] (musb_urb_dequeue+0x6d/0x114)
[&lt;c04647f5&gt;] (musb_urb_dequeue) from [&lt;c042ac11&gt;] (usb_hcd_unlink_urb+0x39/0x98)
[&lt;c042ac11&gt;] (usb_hcd_unlink_urb) from [&lt;bfa26a87&gt;] (line6_unlink_audio_urbs+0x6a/0x6c [snd_usb_line6])
[&lt;bfa26a87&gt;] (line6_unlink_audio_urbs [snd_usb_line6]) from [&lt;bfa26acb&gt;] (line6_stream_stop+0x42/0x5c [snd_usb_line6])
[&lt;bfa26acb&gt;] (line6_stream_stop [snd_usb_line6]) from [&lt;bfa26fe7&gt;] (snd_line6_trigger+0xb6/0xf4 [snd_usb_line6])
[&lt;bfa26fe7&gt;] (snd_line6_trigger [snd_usb_line6]) from [&lt;bf8d47b7&gt;] (snd_pcm_do_stop+0x36/0x38 [snd_pcm])
[&lt;bf8d47b7&gt;] (snd_pcm_do_stop [snd_pcm]) from [&lt;bf8d462f&gt;] (snd_pcm_action_single+0x22/0x40 [snd_pcm])
[&lt;bf8d462f&gt;] (snd_pcm_action_single [snd_pcm]) from [&lt;bf8d46f9&gt;] (snd_pcm_action+0xac/0xb0 [snd_pcm])
[&lt;bf8d46f9&gt;] (snd_pcm_action [snd_pcm]) from [&lt;bf8d4b61&gt;] (snd_pcm_drop+0x38/0x64 [snd_pcm])
[&lt;bf8d4b61&gt;] (snd_pcm_drop [snd_pcm]) from [&lt;bf8d6233&gt;] (snd_pcm_common_ioctl1+0x7fe/0xbe8 [snd_pcm])
[&lt;bf8d6233&gt;] (snd_pcm_common_ioctl1 [snd_pcm]) from [&lt;bf8d6779&gt;] (snd_pcm_playback_ioctl1+0x15c/0x51c [snd_pcm])
[&lt;bf8d6779&gt;] (snd_pcm_playback_ioctl1 [snd_pcm]) from [&lt;bf8d6b59&gt;] (snd_pcm_playback_ioctl+0x20/0x28 [snd_pcm])
[&lt;bf8d6b59&gt;] (snd_pcm_playback_ioctl [snd_pcm]) from [&lt;c016714b&gt;] (do_vfs_ioctl+0x3af/0x5c8)

Fixes: 63e20df1e5b2 ('ALSA: line6: Reorganize PCM stream handling')
Cc: &lt;stable@vger.kernel.org&gt; # v4.0+
Reviewed-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Andrej Krutak &lt;dev@andree.sk&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: line6: Remove double line6_pcm_release() after failed acquire.</title>
<updated>2016-08-22T09:36:58+00:00</updated>
<author>
<name>Andrej Krutak</name>
<email>dev@andree.sk</email>
</author>
<published>2016-08-18T21:52:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7e4379eae0e31994ea645db1d13006ea8e5ce539'/>
<id>urn:sha1:7e4379eae0e31994ea645db1d13006ea8e5ce539</id>
<content type='text'>
If there's an error, pcm is released in line6_pcm_acquire already.

Fixes: 247d95ee6dd2 ('ALSA: line6: Handle error from line6_pcm_acquire()')
Cc: &lt;stable@vger.kernel.org&gt; # v4.0+
Reviewed-by: Stefan Hajnoczi &lt;stefanha@gmail.com&gt;
Signed-off-by: Andrej Krutak &lt;dev@andree.sk&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
</feed>
