diff options
| author | Mythri P K <mythri.p.k@intel.com> | 2014-10-31 03:08:21 -0400 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2014-10-31 08:47:44 -0400 |
| commit | 45f31bfcda0c6e5f11168de10c85f3dd20337bdf (patch) | |
| tree | 73d14e359938e27ab0c25ad98c4ace2f7a062edd /sound/soc/intel/sst | |
| parent | d62f2a08b9d657344b2e271e8274f9d8f746e543 (diff) | |
ASoC: Intel: use lock when changing SST state.
SST state change should be done under sst_lock
Signed-off-by: Mythri P K <mythri.p.k@intel.com>
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/sst')
| -rw-r--r-- | sound/soc/intel/sst/sst.c | 4 | ||||
| -rw-r--r-- | sound/soc/intel/sst/sst_ipc.c | 2 |
2 files changed, 2 insertions, 4 deletions
diff --git a/sound/soc/intel/sst/sst.c b/sound/soc/intel/sst/sst.c index 7b8a110b213d..04af2460f9cc 100644 --- a/sound/soc/intel/sst/sst.c +++ b/sound/soc/intel/sst/sst.c | |||
| @@ -463,15 +463,13 @@ static int intel_sst_runtime_resume(struct device *dev) | |||
| 463 | int ret = 0; | 463 | int ret = 0; |
| 464 | struct intel_sst_drv *ctx = dev_get_drvdata(dev); | 464 | struct intel_sst_drv *ctx = dev_get_drvdata(dev); |
| 465 | 465 | ||
| 466 | mutex_lock(&ctx->sst_lock); | ||
| 467 | if (ctx->sst_state == SST_RESET) { | 466 | if (ctx->sst_state == SST_RESET) { |
| 468 | ret = sst_load_fw(ctx); | 467 | ret = sst_load_fw(ctx); |
| 469 | if (ret) { | 468 | if (ret) { |
| 470 | dev_err(dev, "FW download fail %d\n", ret); | 469 | dev_err(dev, "FW download fail %d\n", ret); |
| 471 | ctx->sst_state = SST_RESET; | 470 | sst_set_fw_state_locked(ctx, SST_RESET); |
| 472 | } | 471 | } |
| 473 | } | 472 | } |
| 474 | mutex_unlock(&ctx->sst_lock); | ||
| 475 | return ret; | 473 | return ret; |
| 476 | } | 474 | } |
| 477 | 475 | ||
diff --git a/sound/soc/intel/sst/sst_ipc.c b/sound/soc/intel/sst/sst_ipc.c index 2126f5bb2813..484e60978477 100644 --- a/sound/soc/intel/sst/sst_ipc.c +++ b/sound/soc/intel/sst/sst_ipc.c | |||
| @@ -230,7 +230,7 @@ static void process_fw_init(struct intel_sst_drv *sst_drv_ctx, | |||
| 230 | 230 | ||
| 231 | dev_dbg(sst_drv_ctx->dev, "*** FW Init msg came***\n"); | 231 | dev_dbg(sst_drv_ctx->dev, "*** FW Init msg came***\n"); |
| 232 | if (init->result) { | 232 | if (init->result) { |
| 233 | sst_drv_ctx->sst_state = SST_RESET; | 233 | sst_set_fw_state_locked(sst_drv_ctx, SST_RESET); |
| 234 | dev_err(sst_drv_ctx->dev, "FW Init failed, Error %x\n", | 234 | dev_err(sst_drv_ctx->dev, "FW Init failed, Error %x\n", |
| 235 | init->result); | 235 | init->result); |
| 236 | retval = init->result; | 236 | retval = init->result; |
