* [PATCH] Revert "ASoC: rsnd: make sure it uses lock when it calls rsnd_dai_call"
@ 2015-05-12 1:57 Kuninori Morimoto
2015-05-12 10:44 ` Mark Brown
0 siblings, 1 reply; 2+ messages in thread
From: Kuninori Morimoto @ 2015-05-12 1:57 UTC (permalink / raw)
To: Mark Brown; +Cc: Linux-ALSA, Simon, Liam Girdwood, Geert Uytterhoeven
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
This reverts commit 'e9c390df671f ("ASoC: rsnd: make sure it uses lock when
it calls rsnd_dai_call)' The additional locks make 1") lock issue when boot
2) lock issue when unbind/rmmod. And there is no problem without these
locks. This patch revert it.
Reported-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
sound/soc/sh/rcar/core.c | 27 +++++----------------------
1 file changed, 5 insertions(+), 22 deletions(-)
diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c
index 99eb109..405cacd 100644
--- a/sound/soc/sh/rcar/core.c
+++ b/sound/soc/sh/rcar/core.c
@@ -731,15 +731,10 @@ static int rsnd_hw_params(struct snd_pcm_substream *substream,
{
struct snd_soc_dai *dai = rsnd_substream_to_dai(substream);
struct rsnd_dai *rdai = rsnd_dai_to_rdai(dai);
- struct rsnd_priv *priv = rsnd_dai_to_priv(dai);
struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream);
- unsigned long flags;
int ret;
- rsnd_lock(priv, flags);
ret = rsnd_dai_call(hw_params, io, substream, hw_params);
- rsnd_unlock(priv, flags);
-
if (ret)
return ret;
@@ -926,16 +921,14 @@ int rsnd_kctrl_new_e(struct rsnd_mod *mod,
static int rsnd_pcm_new(struct snd_soc_pcm_runtime *rtd)
{
struct snd_soc_dai *dai = rtd->cpu_dai;
- struct rsnd_priv *priv = rsnd_dai_to_priv(dai);
struct rsnd_dai *rdai = rsnd_dai_to_rdai(dai);
- unsigned long flags;
- int ret = 0;
+ int ret;
- rsnd_lock(priv, flags);
- ret |= rsnd_dai_call(pcm_new, &rdai->playback, rtd);
- ret |= rsnd_dai_call(pcm_new, &rdai->capture, rtd);
- rsnd_unlock(priv, flags);
+ ret = rsnd_dai_call(pcm_new, &rdai->playback, rtd);
+ if (ret)
+ return ret;
+ ret = rsnd_dai_call(pcm_new, &rdai->capture, rtd);
if (ret)
return ret;
@@ -958,11 +951,8 @@ static const struct snd_soc_component_driver rsnd_soc_component = {
static int rsnd_rdai_continuance_probe(struct rsnd_priv *priv,
struct rsnd_dai_stream *io)
{
- unsigned long flags;
int ret;
- rsnd_lock(priv, flags);
-
ret = rsnd_dai_call(probe, io, priv);
if (ret == -EAGAIN) {
/*
@@ -995,7 +985,6 @@ static int rsnd_rdai_continuance_probe(struct rsnd_priv *priv,
*/
ret = rsnd_dai_call(probe, io, priv);
}
- rsnd_unlock(priv, flags);
return ret;
}
@@ -1011,7 +1000,6 @@ static int rsnd_probe(struct platform_device *pdev)
struct rsnd_dai *rdai;
const struct of_device_id *of_id = of_match_device(rsnd_of_match, dev);
const struct rsnd_of_data *of_data;
- unsigned long flags;
int (*probe_func[])(struct platform_device *pdev,
const struct rsnd_of_data *of_data,
struct rsnd_priv *priv) = {
@@ -1098,12 +1086,10 @@ static int rsnd_probe(struct platform_device *pdev)
exit_snd_soc:
snd_soc_unregister_platform(dev);
exit_snd_probe:
- rsnd_lock(priv, flags);
for_each_rsnd_dai(rdai, priv, i) {
rsnd_dai_call(remove, &rdai->playback, priv);
rsnd_dai_call(remove, &rdai->capture, priv);
}
- rsnd_unlock(priv, flags);
return ret;
}
@@ -1112,7 +1098,6 @@ static int rsnd_remove(struct platform_device *pdev)
{
struct rsnd_priv *priv = dev_get_drvdata(&pdev->dev);
struct rsnd_dai *rdai;
- unsigned long flags;
void (*remove_func[])(struct platform_device *pdev,
struct rsnd_priv *priv) = {
rsnd_ssi_remove,
@@ -1123,12 +1108,10 @@ static int rsnd_remove(struct platform_device *pdev)
pm_runtime_disable(&pdev->dev);
- rsnd_lock(priv, flags);
for_each_rsnd_dai(rdai, priv, i) {
ret |= rsnd_dai_call(remove, &rdai->playback, priv);
ret |= rsnd_dai_call(remove, &rdai->capture, priv);
}
- rsnd_unlock(priv, flags);
for (i = 0; i < ARRAY_SIZE(remove_func); i++)
remove_func[i](pdev, priv);
--
1.9.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] Revert "ASoC: rsnd: make sure it uses lock when it calls rsnd_dai_call"
2015-05-12 1:57 [PATCH] Revert "ASoC: rsnd: make sure it uses lock when it calls rsnd_dai_call" Kuninori Morimoto
@ 2015-05-12 10:44 ` Mark Brown
0 siblings, 0 replies; 2+ messages in thread
From: Mark Brown @ 2015-05-12 10:44 UTC (permalink / raw)
To: Kuninori Morimoto; +Cc: Linux-ALSA, Simon, Liam Girdwood, Geert Uytterhoeven
[-- Attachment #1.1: Type: text/plain, Size: 469 bytes --]
On Tue, May 12, 2015 at 01:57:50AM +0000, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>
> This reverts commit 'e9c390df671f ("ASoC: rsnd: make sure it uses lock when
> it calls rsnd_dai_call)' The additional locks make 1") lock issue when boot
> 2) lock issue when unbind/rmmod. And there is no problem without these
> locks. This patch revert it.
Applied, thanks. Please use normal subject lines even for reverts.
[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-05-12 10:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-12 1:57 [PATCH] Revert "ASoC: rsnd: make sure it uses lock when it calls rsnd_dai_call" Kuninori Morimoto
2015-05-12 10:44 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox