<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/sound/usb/endpoint.c, branch linux-3.7.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.7.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.7.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-11-08T07:56:44Z</updated>
<entry>
<title>ALSA: usb-audio: Fix crash at re-preparing the PCM stream</title>
<updated>2012-11-08T07:56:44Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2012-11-08T07:52:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f58161ba1b05a968e5136824b5a16b714b6a5317'/>
<id>urn:sha1:f58161ba1b05a968e5136824b5a16b714b6a5317</id>
<content type='text'>
There are bug reports of a crash with USB-audio devices when PCM
prepare is performed immediately after the stream is stopped via
trigger callback.  It turned out that the problem is that we don't
wait until all URBs are killed.

This patch adds a new function to synchronize the pending stop
operation on an endpoint, and calls in the prepare callback for
avoiding the crash above.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=49181

Reported-and-tested-by: Artem S. Tashkinov &lt;t.artem@lycos.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; [v3.6]
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>Merge tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound</title>
<updated>2012-10-08T22:07:14Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2012-10-08T22:07:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f5a246eab9a268f51ba8189ea5b098a1bfff200e'/>
<id>urn:sha1:f5a246eab9a268f51ba8189ea5b098a1bfff200e</id>
<content type='text'>
Pull sound updates from Takashi Iwai:
 "This contains pretty many small commits covering fairly large range of
  files in sound/ directory.  Partly because of additional API support
  and partly because of constantly developed ASoC and ARM stuff.

  Some highlights:

   - Introduced the helper function and documentation for exposing the
     channel map via control API, as discussed in Plumbers; most of PCI
     drivers are covered, will follow more drivers later

   - Most of drivers have been replaced with the new PM callbacks (if
     the bus is supported)

   - HD-audio controller got the support of runtime PM and the support
     of D3 clock-stop.  Also changing the power_save option in sysfs
     kicks off immediately to enable / disable the power-save mode.

   - Another significant code change in HD-audio is the rewrite of
     firmware loading code.  Other than that, most of changes in
     HD-audio are continued cleanups and standardization for the generic
     auto parser and bug fixes (HBR, device-specific fixups), in
     addition to the support of channel-map API.

   - Addition of ASoC bindings for the compressed API, used by the
     mid-x86 drivers.

   - Lots of cleanups and API refreshes for ASoC codec drivers and
     DaVinci.

   - Conversion of OMAP to dmaengine.

   - New machine driver for Wolfson Microelectronics Bells.

   - New CODEC driver for Wolfson Microelectronics WM0010.

   - Enhancements to the ux500 and wm2000 drivers

   - A new driver for DA9055 and the support for regulator bypass mode."

Fix up various arm soc header file reorg conflicts.

* tag 'sound-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (339 commits)
  ALSA: hda - Add new codec ALC283 ALC290 support
  ALSA: hda - avoid unneccesary indices on "Headphone Jack" controls
  ALSA: hda - fix indices on boost volume on Conexant
  ALSA: aloop - add locking to timer access
  ALSA: hda - Fix hang caused by race during suspend.
  sound: Remove unnecessary semicolon
  ALSA: hda/realtek - Fix detection of ALC271X codec
  ALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310
  ALSA: hda - make Realtek/Sigmatel/Conexant use the generic unsol event
  ALSA: hda - make a generic unsol event handler
  ASoC: codecs: Add DA9055 codec driver
  ASoC: eukrea-tlv320: Convert it to platform driver
  ALSA: ASoC: add DT bindings for CS4271
  ASoC: wm_hubs: Ensure volume updates are handled during class W startup
  ASoC: wm5110: Adding missing volume update bits
  ASoC: wm5110: Add OUT3R support
  ASoC: wm5110: Add AEC loopback support
  ASoC: wm5110: Rename EPOUT to HPOUT3
  ASoC: arizona: Add more clock rates
  ASoC: arizona: Add more DSP options for mixer input muxes
  ...
</content>
</entry>
<entry>
<title>ALSA: snd-usb: fix next_packet_size calls for pause case</title>
<updated>2012-09-27T23:46:15Z</updated>
<author>
<name>Daniel Mack</name>
</author>
<published>2012-09-27T08:26:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8dce30c89113e314d29d3b8f362aadff8087fccb'/>
<id>urn:sha1:8dce30c89113e314d29d3b8f362aadff8087fccb</id>
<content type='text'>
Also fix the calls to next_packet_size() for the pause case. This was
missed in 245baf983 ("ALSA: snd-usb: fix calls to next_packet_size").

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Reviewed-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Reported-and-tested-by: Christian Tefzer &lt;ctrefzer@gmx.de&gt;
Cc: stable@kernel.org
[ Taking directly because Takashi is on vacation  - Linus ]
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>ALSA: usb-audio: Don't require hw_params in endpoint.</title>
<updated>2012-09-19T06:07:52Z</updated>
<author>
<name>Dylan Reid</name>
</author>
<published>2012-09-18T16:49:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=35ec7aa29833de350f51922736aefe22ebf76c4d'/>
<id>urn:sha1:35ec7aa29833de350f51922736aefe22ebf76c4d</id>
<content type='text'>
Change the interface to configure an endpoint so that it doesn't require
a hw_params struct.  This will allow it to be called from prepare
instead of hw_params, configuring it after system resume.

Signed-off-by: Dylan Reid &lt;dgreid@chromium.org&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' into for-next</title>
<updated>2012-09-11T14:46:36Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2012-09-11T14:46:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=05288426908ecb7ed7cbff61901db5918525578a'/>
<id>urn:sha1:05288426908ecb7ed7cbff61901db5918525578a</id>
<content type='text'>
To merge HD-audio fixes back to 3.7 development line
</content>
</entry>
<entry>
<title>ALSA: snd-usb: Add quirks for Playback Designs devices</title>
<updated>2012-09-04T09:31:14Z</updated>
<author>
<name>Daniel Mack</name>
</author>
<published>2012-09-04T08:23:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2b58fd5b3193fd3af3d15114d95706087d25a7fe'/>
<id>urn:sha1:2b58fd5b3193fd3af3d15114d95706087d25a7fe</id>
<content type='text'>
Playback Designs' USB devices have some hardware limitations on their
USB interface. In particular:

 - They need a 20ms delay after each class compliant request as the
   hardware ACKs the USB packets before the device is actually ready
   for the next command. Sending data immediately will result in buffer
   overflows in the hardware.
 - The devices send bogus feedback data at the start of each stream
   which confuse the feedback format auto-detection.

This patch introduces a new quirks hook that is called after each
control packet and which adds a delay for all devices that match
Playback Designs' USB VID for now.

In addition, it adds a counter to snd_usb_endpoint to drop received
packets on the floor. Another new quirks function that is called once
an endpoint is started initializes that counter for these devices on
their sync endpoint.

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Reported-and-tested-by: Andreas Koch &lt;andreas@akdesigninc.com&gt;
Supported-by: Demian Martin &lt;demianm_1@yahoo.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: snd-usb: fix calls to next_packet_size</title>
<updated>2012-08-31T19:03:48Z</updated>
<author>
<name>Daniel Mack</name>
</author>
<published>2012-08-30T16:52:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=245baf983cc39524cce39c24d01b276e6e653c9e'/>
<id>urn:sha1:245baf983cc39524cce39c24d01b276e6e653c9e</id>
<content type='text'>
In order to support devices with implicit feedback streaming models,
packet sizes are now stored with each individual urb, and the PCM
handling code which fills the buffers purely relies on the size fields
now.

However, calling snd_usb_audio_next_packet_size() for all possible
packets in an URB at once, prior to letting the PCM code do its job
does in fact not lead to the same behaviour than what the old code did:
The PCM code will break its loop once a period boundary is reached,
consequently using up less packets that it really could.

As snd_usb_audio_next_packet_size() implements a feedback mechanism to
the endpoints phase accumulator, the number of calls to that function
matters, and when called too often, the data rate runs out of bounds.

Fix this by making the next_packet function public, and call it from the
PCM code as before if the packet data sizes are not defined.

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Cc: stable@kernel.org [v3.5+]
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: snd-usb: Fix URB cancellation at stream start</title>
<updated>2012-08-30T05:46:27Z</updated>
<author>
<name>Daniel Mack</name>
</author>
<published>2012-08-29T11:17:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=015618b902ae8e28705b7af9b4668615fea48ddd'/>
<id>urn:sha1:015618b902ae8e28705b7af9b4668615fea48ddd</id>
<content type='text'>
Commit e9ba389c5 ("ALSA: usb-audio: Fix scheduling-while-atomic bug in
PCM capture stream") fixed a scheduling-while-atomic bug that happened
when snd_usb_endpoint_start was called from the trigger callback, which
is an atmic context. However, the patch breaks the idea of the endpoints
reference counting, which is the reason why the driver has been
refactored lately.

Revert that commit and let snd_usb_endpoint_start() take care of the URB
cancellation again. As this function is called from both atomic and
non-atomic context, add a flag to denote whether the function may sleep.

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Cc: stable@kernel.org [3.5+]
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: usb-audio: Fix scheduling-while-atomic bug in PCM capture stream</title>
<updated>2012-08-16T06:04:07Z</updated>
<author>
<name>Takashi Iwai</name>
</author>
<published>2012-08-15T10:32:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e9ba389c5ffc4dd29dfe17e00e48877302111135'/>
<id>urn:sha1:e9ba389c5ffc4dd29dfe17e00e48877302111135</id>
<content type='text'>
A PCM capture stream on usb-audio causes a scheduling-while-atomic
BUG, as reported in the bugzilla entry below.  It's because
snd_usb_endpoint_start() is called at first at trigger START for a
capture stream, and this function contains the left-over EP
deactivation codes.  The problem doesn't happen for a playback stream
because the function is called at PCM prepare time, which can sleep.

This patch fixes the BUG by moving the EP deactivation code into the
PCM prepare callback.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=46011
Cc: &lt;stable@vger.kernel.org&gt; [v3.5+]
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: snd-usb: move calls to usb_set_interface</title>
<updated>2012-07-13T07:31:42Z</updated>
<author>
<name>Daniel Mack</name>
</author>
<published>2012-07-12T11:08:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=68e67f40b7343383517c3f951b4b8db7626406bc'/>
<id>urn:sha1:68e67f40b7343383517c3f951b4b8db7626406bc</id>
<content type='text'>
The rework of the snd-usb endpoint logic moved the calls to
snd_usb_set_interface() into the snd_usb_endpoint implemenation. This
changed the order in which these calls are issued to the device, and
thereby caused regressions for some webcams.

Fix this by moving the calls back to pcm.c for now to make it work again
and use snd_usb_endpoint_activate() to really tear down all remaining
URBs in the flight, consequently fixing another regression caused by USB
packets on the wire after altsetting 0 has been selected.

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Reported-and-tested-by: Philipp Dreimann &lt;philipp@dreimann.net&gt;
Reported-by: Joseph Salisbury &lt;joseph.salisbury@canonical.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
</feed>
