<feed xmlns='http://www.w3.org/2005/Atom'>
<title>talos-op-linux/sound/soc/stm, branch master</title>
<subtitle>Talos™ II Linux sources for OpenPOWER</subtitle>
<id>https://git.raptorcs.com/git/talos-op-linux/atom?h=master</id>
<link rel='self' href='https://git.raptorcs.com/git/talos-op-linux/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/'/>
<updated>2020-01-17T15:38:56+00:00</updated>
<entry>
<title>Merge tag 'asoc-fix-v5.5-rc6' into asoc-5.6</title>
<updated>2020-01-17T15:38:56+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2020-01-17T15:38:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=ea3f0ce756d678f94fd3060311030c5ed855e591'/>
<id>urn:sha1:ea3f0ce756d678f94fd3060311030c5ed855e591</id>
<content type='text'>
ASoC: Fixes for v5.5

This is mostly driver specific fixes, plus an error handling fix
in the core.  There is a rather large diffstat for the stm32 SAI
driver, this is a very large but mostly mechanical update which
wraps every register access in the driver to allow a fix to the
locking which avoids circular locks, the active change is much
smaller and more reasonably sized.
</content>
</entry>
<entry>
<title>ASoC: stm32: dfsdm: fix 16 bits record</title>
<updated>2020-01-10T13:30:10+00:00</updated>
<author>
<name>Olivier Moysan</name>
<email>olivier.moysan@st.com</email>
</author>
<published>2020-01-10T13:11:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=8e55ea19125b65cffe42747359af99d545e85f2f'/>
<id>urn:sha1:8e55ea19125b65cffe42747359af99d545e85f2f</id>
<content type='text'>
In stm32_afsdm_pcm_cb function, the transfer size is provided in bytes.
However, samples are copied as 16 bits words from iio buffer.
Divide by two the transfer size, to copy the right number of samples.

Fixes: 1e7f6e1c69f0 ("ASoC: stm32: dfsdm: add 16 bits audio record support")

Signed-off-by: Olivier Moysan &lt;olivier.moysan@st.com&gt;
Link: https://lore.kernel.org/r/20200110131131.3191-1-olivier.moysan@st.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-5.5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.6</title>
<updated>2020-01-10T11:51:21+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2020-01-10T11:51:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=23534b197159dd07d3e02d4afd7fca3243d30bce'/>
<id>urn:sha1:23534b197159dd07d3e02d4afd7fca3243d30bce</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ASoC: stm32: sai: fix possible circular locking</title>
<updated>2020-01-09T21:17:38+00:00</updated>
<author>
<name>Olivier Moysan</name>
<email>olivier.moysan@st.com</email>
</author>
<published>2020-01-09T08:32:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=a14bf98c045bf119b7e779f186528e38c6428830'/>
<id>urn:sha1:a14bf98c045bf119b7e779f186528e38c6428830</id>
<content type='text'>
In current driver, locks can be taken as follows:
- Register access: take a lock on regmap config and then on clock.
- Master clock provider: take a lock on clock and then on regmap config.
This can lead to the circular locking summarized below.

Remove peripheral clock management through regmap framework, and manage
peripheral clock in driver instead. On register access, lock on clock
is taken first, which allows to avoid possible locking issue.

[ 6696.561513] ======================================================
[ 6696.567670] WARNING: possible circular locking dependency detected
[ 6696.573842] 4.19.49 #866 Not tainted
[ 6696.577397] ------------------------------------------------------
[ 6696.583566] pulseaudio/6439 is trying to acquire lock:
[ 6696.588697] 87b0a25b (enable_lock){..-.}, at: clk_enable_lock+0x64/0x128
[ 6696.595377]
[ 6696.595377] but task is already holding lock:
[ 6696.601197] d858f825 (stm32_sai_sub:1342:(sai-&gt;regmap_config)-&gt;lock){....}
...
[ 6696.812513]  Possible unsafe locking scenario:
[ 6696.812513]
[ 6696.818418]        CPU0                    CPU1
[ 6696.822935]        ----                    ----
[ 6696.827451]   lock(stm32_sai_sub:1342:(sai-&gt;regmap_config)-&gt;lock);
[ 6696.833618]                                lock(enable_lock);
[ 6696.839350]                                lock(stm32_sai_sub:1342:
                                              (sai-&gt;regmap_config)-&gt;lock);
[ 6696.848035]   lock(enable_lock);

Fixes: 03e78a242a15 ("ASoC: stm32: sai: add h7 support")

Signed-off-by: Olivier Moysan &lt;olivier.moysan@st.com&gt;
Link: https://lore.kernel.org/r/20200109083254.478-1-olivier.moysan@st.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-5.5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.6</title>
<updated>2019-12-25T17:51:43+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2019-12-25T17:51:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=a82cf72f94af1135f2edde0a244499af390f333a'/>
<id>urn:sha1:a82cf72f94af1135f2edde0a244499af390f333a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ASoC: stm32: spdifrx: fix input pin state management</title>
<updated>2019-12-24T23:56:17+00:00</updated>
<author>
<name>Olivier Moysan</name>
<email>olivier.moysan@st.com</email>
</author>
<published>2019-12-04T15:43:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=3b7658679d88b5628939f9bdc8e613f79cd821f9'/>
<id>urn:sha1:3b7658679d88b5628939f9bdc8e613f79cd821f9</id>
<content type='text'>
Changing input state in iec capture control is not safe,
as the pin state may be changed concurrently by ASoC
framework.
Remove pin state handling in iec capture control.

Note: This introduces a restriction on capture control,
when pin sleep state is defined in device tree. In this case
channel status can be captured only when an audio stream
capture is active.

Fixes: f68c2a682d44 ("ASoC: stm32: spdifrx: add power management")

Signed-off-by: Olivier Moysan &lt;olivier.moysan@st.com&gt;
Link: https://lore.kernel.org/r/20191204154333.7152-4-olivier.moysan@st.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: stm32: spdifrx: fix race condition in irq handler</title>
<updated>2019-12-24T23:56:17+00:00</updated>
<author>
<name>Olivier Moysan</name>
<email>olivier.moysan@st.com</email>
</author>
<published>2019-12-04T15:43:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=86e1956af4c863d653136fd6e5694adf2054dbaa'/>
<id>urn:sha1:86e1956af4c863d653136fd6e5694adf2054dbaa</id>
<content type='text'>
When snd_pcm_stop() is called in interrupt routine,
substream context may have already been released.
Add protection on substream context.

Fixes: 03e4d5d56fa5 ("ASoC: stm32: Add SPDIFRX support")

Signed-off-by: Olivier Moysan &lt;olivier.moysan@st.com&gt;
Link: https://lore.kernel.org/r/20191204154333.7152-3-olivier.moysan@st.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: stm32: spdifrx: fix inconsistent lock state</title>
<updated>2019-12-24T23:56:16+00:00</updated>
<author>
<name>Olivier Moysan</name>
<email>olivier.moysan@st.com</email>
</author>
<published>2019-12-04T15:43:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=2859b1784031b5709446af8f6039c467f136e67d'/>
<id>urn:sha1:2859b1784031b5709446af8f6039c467f136e67d</id>
<content type='text'>
In current spdifrx driver locks may be requested as follows:
- request lock on iec capture control, when starting synchronization.
- request lock in interrupt context, when spdifrx stop is called
from IRQ handler.

Take lock with IRQs disabled, to avoid the possible deadlock.

Lockdep report:
[   74.278059] ================================
[   74.282306] WARNING: inconsistent lock state
[   74.290120] --------------------------------
...
[   74.314373]        CPU0
[   74.314377]        ----
[   74.314381]   lock(&amp;(&amp;spdifrx-&gt;lock)-&gt;rlock);
[   74.314396]   &lt;Interrupt&gt;
[   74.314400]     lock(&amp;(&amp;spdifrx-&gt;lock)-&gt;rlock);

Fixes: 03e4d5d56fa5 ("ASoC: stm32: Add SPDIFRX support")

Signed-off-by: Olivier Moysan &lt;olivier.moysan@st.com&gt;
Link: https://lore.kernel.org/r/20191204154333.7152-2-olivier.moysan@st.com
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>ASoC: stm32: Use managed buffer allocation</title>
<updated>2019-12-11T16:43:23+00:00</updated>
<author>
<name>Takashi Iwai</name>
<email>tiwai@suse.de</email>
</author>
<published>2019-12-10T14:26:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=6f7aff352e690bd167d97f8354543855cf6c34b8'/>
<id>urn:sha1:6f7aff352e690bd167d97f8354543855cf6c34b8</id>
<content type='text'>
Clean up the drivers with the new managed buffer allocation API.
The superfluous snd_pcm_lib_malloc_pages() and
snd_pcm_lib_free_pages() calls are dropped, as well as the superfluous
snd_pcm_lib_preallocate_free_for_all() call.  As of the result,
hw_free and pcm_destruct ops became empty and got removed.

Cc: Olivier Moysan &lt;olivier.moysan@st.com&gt;
Cc: Arnaud Pouliquen &lt;arnaud.pouliquen@st.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Link: https://lore.kernel.org/r/20191210142614.19405-13-tiwai@suse.de
Signed-off-by: Mark Brown &lt;broonie@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-5.4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.5</title>
<updated>2019-11-06T16:29:34+00:00</updated>
<author>
<name>Mark Brown</name>
<email>broonie@kernel.org</email>
</author>
<published>2019-11-06T16:29:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=992fd39a349ac62044d9e20d17d309c2cf0f5c27'/>
<id>urn:sha1:992fd39a349ac62044d9e20d17d309c2cf0f5c27</id>
<content type='text'>
</content>
</entry>
</feed>
