summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBhalchandra Gajare <gajare@codeaurora.org>2016-09-26 22:12:46 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-10-04 12:43:02 -0700
commitacaf2a7f798cffd9007fada98865449aeb010f63 (patch)
treee0d0a54000a126c6a2d4b19f1450f823eefd5a02
parentd728aa90314f66b19616df559c67d1f76bbb51bd (diff)
ASoC: wcd-spi: fix clock disable
Currently, the clock request is performed during init and the clock is kept on assuming that there will be code download event followed by init. This assumption may not always be true and might cause the clock to be enabled when it is really not needed. Change fixes clock disable such that clock is disabled right after init and re-enabled again if code download event is raised. CRs-fixed: 1071949 Change-Id: Icc415e911653012726e5b81b4fc09199560d5691 Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
-rw-r--r--sound/soc/codecs/wcd-spi.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sound/soc/codecs/wcd-spi.c b/sound/soc/codecs/wcd-spi.c
index ecc395bb810e..60efcb174740 100644
--- a/sound/soc/codecs/wcd-spi.c
+++ b/sound/soc/codecs/wcd-spi.c
@@ -639,12 +639,10 @@ static int wcd_spi_init(struct spi_device *spi)
WCD_SPI_SLAVE_TRNS_LEN,
0xFFFF0000,
(WCD_SPI_RW_MULTI_MAX_LEN / 4) << 16);
-done:
- return ret;
-
err_wr_en:
wcd_spi_clk_ctrl(spi, WCD_SPI_CLK_DISABLE,
WCD_SPI_CLK_FLAG_IMMEDIATE);
+done:
return ret;
}
@@ -845,6 +843,7 @@ static int wdsp_spi_event_handler(struct device *dev, void *priv_data,
__func__, event);
switch (event) {
+ case WDSP_EVENT_PRE_DLOAD_CODE:
case WDSP_EVENT_PRE_DLOAD_DATA:
ret = wcd_spi_clk_ctrl(spi, WCD_SPI_CLK_ENABLE,
WCD_SPI_CLK_FLAG_IMMEDIATE);