[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1368002354-15471-1-git-send-email-fabio.baltieri@linaro.org>
Date: Wed, 8 May 2013 10:39:14 +0200
From: Fabio Baltieri <fabio.baltieri@...aro.org>
To: Mark Brown <broonie@...nel.org>,
Liam Girdwood <lgirdwood@...il.com>,
Lee Jones <lee.jones@...aro.org>
Cc: alsa-devel@...a-project.org, linux-kernel@...r.kernel.org,
Linus Walleij <linus.walleij@...aro.org>,
Ola Lilja <ola.o.lilja@...ricsson.com>,
Fabio Baltieri <fabio.baltieri@...aro.org>
Subject: [PATCH v2 2/6] ASoC: ux500: Do not clear state if already idle
As enable_msp gets called only after some audio data has been received,
if the userspace closes the device before sending any data it causes
ux500_msp_i2s_close to clear device state even if it was not previously
initialized.
This in turn leads to some non necessary but harmless writel, but also
to decrementing the pinctrl usage counter (pinctrl_rxtx_ref) below zero.
To prevent this from happening add a condition to skip register and
pinctrl clear if current msp state is already MSP_STATE_IDLE.
Acked-by: Lee Jones <lee.jones@...aro.org>
Signed-off-by: Fabio Baltieri <fabio.baltieri@...aro.org>
---
Changes from v1:
- fix grammatical error in commit message
Thanks,
Fabio
sound/soc/ux500/ux500_msp_i2s.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/ux500/ux500_msp_i2s.c b/sound/soc/ux500/ux500_msp_i2s.c
index a26c6bf..964cfd6 100644
--- a/sound/soc/ux500/ux500_msp_i2s.c
+++ b/sound/soc/ux500/ux500_msp_i2s.c
@@ -638,7 +638,7 @@ int ux500_msp_i2s_close(struct ux500_msp *msp, unsigned int dir)
dev_dbg(msp->dev, "%s: Enter (dir = 0x%01x).\n", __func__, dir);
status = disable_msp(msp, dir);
- if (msp->dir_busy == 0) {
+ if (msp->dir_busy == 0 && msp->msp_state != MSP_STATE_IDLE) {
/* disable sample rate and frame generators */
msp->msp_state = MSP_STATE_IDLE;
writel((readl(msp->registers + MSP_GCR) &
--
1.8.2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists