<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/sound, branch v3.18</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v3.18</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v3.18'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2014-11-21T14:13:28Z</updated>
<entry>
<title>ALSA: pcm: Add big-endian DSD sample formats and fix XMOS DSD sample format</title>
<updated>2014-11-21T14:13:28Z</updated>
<author>
<name>Jussi Laako</name>
<email>jussi@sonarnerd.net</email>
</author>
<published>2014-11-21T14:04:46Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d42472ecffd7c42086c6e5b1335c99a3adf58a09'/>
<id>urn:sha1:d42472ecffd7c42086c6e5b1335c99a3adf58a09</id>
<content type='text'>
This patch fixes XMOS DSD sample format to DSD_U32_BE and also adds
DSD_U16_BE and DSD_U32_BE sample formats.

Signed-off-by: Jussi Laako &lt;jussi@sonarnerd.net&gt;
Acked-by: Jurgen Kramer &lt;gtmkramer@xs4all.nl&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ASoC: dpcm: Fix race between FE/BE updates and trigger</title>
<updated>2014-11-04T17:18:32Z</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2014-11-04T15:52:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ea9d0d771fcd32cd56070819749477d511ec9117'/>
<id>urn:sha1:ea9d0d771fcd32cd56070819749477d511ec9117</id>
<content type='text'>
DPCM can update the FE/BE connection states totally asynchronously
from the FE's PCM state.  Most of FE/BE state changes are protected by
mutex, so that they won't race, but there are still some actions that
are uncovered.  For example, suppose to switch a BE while a FE's
stream is running.  This would call soc_dpcm_runtime_update(), which
sets FE's runtime_update flag, then sets up and starts BEs, and clears
FE's runtime_update flag again.

When a device emits XRUN during this operation, the PCM core triggers
snd_pcm_stop(XRUN).  Since the trigger action is an atomic ops, this
isn't blocked by the mutex, thus it kicks off DPCM's trigger action.
It eventually updates and clears FE's runtime_update flag while
soc_dpcm_runtime_update() is running concurrently, and it results in
confusion.

Usually, for avoiding such a race, we take a lock.  There is a PCM
stream lock for that purpose.  However, as already mentioned, the
trigger action is atomic, and we can't take the lock for the whole
soc_dpcm_runtime_update() or other operations that include the lengthy
jobs like hw_params or prepare.

This patch provides an alternative solution.  This adds a way to defer
the conflicting trigger callback to be executed at the end of FE/BE
state changes.  For doing it, two things are introduced:

- Each runtime_update state change of FEs is protected via PCM stream
  lock.
- The FE's trigger callback checks the runtime_update flag.  If it's
  not set, the trigger action is executed there.  If set, mark the
  pending trigger action and returns immediately.
- At the exit of runtime_update state change, it checks whether the
  pending trigger is present.  If yes, it executes the trigger action
  at this point.

Reported-and-tested-by: Qiao Zhou &lt;zhouqiao@marvell.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Acked-by: Liam Girdwood &lt;liam.r.girdwood@linux.intel.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma</title>
<updated>2014-10-19T01:11:04Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-10-19T01:11:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=52d589a01d4545ce1dc5c3892bb8c7b55edfe714'/>
<id>urn:sha1:52d589a01d4545ce1dc5c3892bb8c7b55edfe714</id>
<content type='text'>
Pull slave-dmaengine updates from Vinod Koul:
 "For dmaengine contributions we have:
   - designware cleanup by Andy
   - my series moving device_control users to dmanegine_xxx APIs for
     later removal of device_control API
   - minor fixes spread over drivers mainly mv_xor, pl330, mmp, imx-sdma
     etc"

* 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (60 commits)
  serial: atmel: add missing dmaengine header
  dmaengine: remove FSLDMA_EXTERNAL_START
  dmaengine: freescale: remove FSLDMA_EXTERNAL_START control method
  carma-fpga: move to fsl_dma_external_start()
  carma-fpga: use dmaengine_xxx() API
  dmaengine: freescale: add and export fsl_dma_external_start()
  dmaengine: add dmaengine_prep_dma_sg() helper
  video: mx3fb: use dmaengine_terminate_all() API
  serial: sh-sci: use dmaengine_terminate_all() API
  net: ks8842: use dmaengine_terminate_all() API
  mtd: sh_flctl: use dmaengine_terminate_all() API
  mtd: fsmc_nand: use dmaengine_terminate_all() API
  V4L2: mx3_camer: use dmaengine_pause() API
  dmaengine: coh901318: use dmaengine_terminate_all() API
  pata_arasan_cf: use dmaengine_terminate_all() API
  dmaengine: edma: check for echan-&gt;edesc =&gt; NULL in edma_dma_pause()
  dmaengine: dw: export probe()/remove() and Co to users
  dmaengine: dw: enable and disable controller when needed
  dmaengine: dw: always export dw_dma_{en,dis}able
  dmaengine: dw: introduce dw_dma_on() helper
  ...
</content>
</entry>
<entry>
<title>Merge tag 'asoc-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next</title>
<updated>2014-10-06T12:01:11Z</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2014-10-06T12:01:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=8df22a4d6f5b81c9c1703579d4907b57002689ed'/>
<id>urn:sha1:8df22a4d6f5b81c9c1703579d4907b57002689ed</id>
<content type='text'>
ASoC: Updates for v3.18

 - More componentisation work from Lars-Peter, this time mainly
   cleaning up the suspend and bias level transition callbacks.
 - Real system support for the Intel drivers and a bunch of fixes and
   enhancements for the associated CODEC drivers, this is going to need
   a lot quirks over time due to the lack of any firmware description of
   the boards.
 - Jack detect support for simple card from Dylan Reid.
 - A bunch of small fixes and enhancements for the Freescale drivers.
 - New drivers for Analog Devices SSM4567, Cirrus Logic CS35L32, Everest
   Semiconductor ES8328 and Freescale cards using the ASRC in newer i.MX
   processors.
</content>
</entry>
<entry>
<title>Merge remote-tracking branches 'asoc/topic/rt5645', 'asoc/topic/rt5677', 'asoc/topic/samsung', 'asoc/topic/sgtl5000' and 'asoc/topic/sh' into asoc-next</title>
<updated>2014-10-06T11:49:03Z</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2014-10-06T11:49:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7370780cfd52552e570e4d252c75584c36378e4e'/>
<id>urn:sha1:7370780cfd52552e570e4d252c75584c36378e4e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge remote-tracking branches 'asoc/topic/davinci', 'asoc/topic/dmic', 'asoc/topic/drivers', 'asoc/topic/es8328' and 'asoc/topic/fsl' into asoc-next</title>
<updated>2014-10-06T11:48:57Z</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2014-10-06T11:48:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=565fefdf31a58b5c07869fe598c3dcc69ed680d7'/>
<id>urn:sha1:565fefdf31a58b5c07869fe598c3dcc69ed680d7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'asoc/topic/dapm' into asoc-next</title>
<updated>2014-10-06T11:48:52Z</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2014-10-06T11:48:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=64fdf13c8b5ff530f54dd767861f4e25a9ec2fe9'/>
<id>urn:sha1:64fdf13c8b5ff530f54dd767861f4e25a9ec2fe9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'asoc/topic/core' into asoc-next</title>
<updated>2014-10-06T11:48:52Z</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2014-10-06T11:48:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=97c53e26f0773b9eb9ede21f544a91dd1bcd9ca9'/>
<id>urn:sha1:97c53e26f0773b9eb9ede21f544a91dd1bcd9ca9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'asoc/topic/component' into asoc-next</title>
<updated>2014-10-06T11:48:51Z</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2014-10-06T11:48:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5bcaca4b5bf2b05cc15a2c5bfb3d95fc49607e36'/>
<id>urn:sha1:5bcaca4b5bf2b05cc15a2c5bfb3d95fc49607e36</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ASoC: Export dapm_kcontrol_get_value</title>
<updated>2014-10-02T18:13:12Z</updated>
<author>
<name>Subhransu S. Prusty</name>
<email>subhransu.s.prusty@intel.com</email>
</author>
<published>2014-09-19T11:16:05Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5dc0158a27f65e7efaa6e3cc496d93b4c4c65d19'/>
<id>urn:sha1:5dc0158a27f65e7efaa6e3cc496d93b4c4c65d19</id>
<content type='text'>
The DSP driver needs to know widget control value in its event handler for
widgets like mixers. This is required in the subsequent patches

Signed-off-by: Subhransu S. Prusty &lt;subhransu.s.prusty@intel.com&gt;
Signed-off-by: Vinod Koul &lt;vinod.koul@intel.com&gt;
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
</feed>
