diff options
| author | Mark Brown <broonie@kernel.org> | 2015-03-04 15:42:39 -0500 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2015-03-04 15:42:39 -0500 |
| commit | 09269e4eefcdfcb8b27b3dd1783a1a7b916c5e17 (patch) | |
| tree | a6f145b6364e16c07044462f0e72d5913f0a0985 | |
| parent | 9d22fd3ca7dba0027a3f121d0ba525f65f8b13fb (diff) | |
| parent | de251d773bb214fa5e7666a0da1225528e07da5e (diff) | |
Merge remote-tracking branch 'asoc/fix/intel' into asoc-linus
| -rw-r--r-- | sound/soc/intel/sst-atom-controls.h | 2 | ||||
| -rw-r--r-- | sound/soc/intel/sst/sst.c | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/sound/soc/intel/sst-atom-controls.h b/sound/soc/intel/sst-atom-controls.h index dfebfdd5eb2a..daecc58f28af 100644 --- a/sound/soc/intel/sst-atom-controls.h +++ b/sound/soc/intel/sst-atom-controls.h | |||
| @@ -150,7 +150,7 @@ enum sst_cmd_type { | |||
| 150 | 150 | ||
| 151 | enum sst_task { | 151 | enum sst_task { |
| 152 | SST_TASK_SBA = 1, | 152 | SST_TASK_SBA = 1, |
| 153 | SST_TASK_MMX, | 153 | SST_TASK_MMX = 3, |
| 154 | }; | 154 | }; |
| 155 | 155 | ||
| 156 | enum sst_type { | 156 | enum sst_type { |
diff --git a/sound/soc/intel/sst/sst.c b/sound/soc/intel/sst/sst.c index 8a8d56a146e7..11c578651c1c 100644 --- a/sound/soc/intel/sst/sst.c +++ b/sound/soc/intel/sst/sst.c | |||
| @@ -350,7 +350,9 @@ static inline void sst_save_shim64(struct intel_sst_drv *ctx, | |||
| 350 | 350 | ||
| 351 | spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags); | 351 | spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags); |
| 352 | 352 | ||
| 353 | shim_regs->imrx = sst_shim_read64(shim, SST_IMRX), | 353 | shim_regs->imrx = sst_shim_read64(shim, SST_IMRX); |
| 354 | shim_regs->csr = sst_shim_read64(shim, SST_CSR); | ||
| 355 | |||
| 354 | 356 | ||
| 355 | spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags); | 357 | spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags); |
| 356 | } | 358 | } |
| @@ -367,6 +369,7 @@ static inline void sst_restore_shim64(struct intel_sst_drv *ctx, | |||
| 367 | */ | 369 | */ |
| 368 | spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags); | 370 | spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags); |
| 369 | sst_shim_write64(shim, SST_IMRX, shim_regs->imrx), | 371 | sst_shim_write64(shim, SST_IMRX, shim_regs->imrx), |
| 372 | sst_shim_write64(shim, SST_CSR, shim_regs->csr), | ||
| 370 | spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags); | 373 | spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags); |
| 371 | } | 374 | } |
| 372 | 375 | ||
| @@ -379,6 +382,10 @@ void sst_configure_runtime_pm(struct intel_sst_drv *ctx) | |||
| 379 | * initially active. So change the state to active before | 382 | * initially active. So change the state to active before |
| 380 | * enabling the pm | 383 | * enabling the pm |
| 381 | */ | 384 | */ |
| 385 | |||
| 386 | if (!acpi_disabled) | ||
| 387 | pm_runtime_set_active(ctx->dev); | ||
| 388 | |||
| 382 | pm_runtime_enable(ctx->dev); | 389 | pm_runtime_enable(ctx->dev); |
| 383 | 390 | ||
| 384 | if (acpi_disabled) | 391 | if (acpi_disabled) |
| @@ -409,6 +416,7 @@ static int intel_sst_runtime_suspend(struct device *dev) | |||
| 409 | synchronize_irq(ctx->irq_num); | 416 | synchronize_irq(ctx->irq_num); |
| 410 | flush_workqueue(ctx->post_msg_wq); | 417 | flush_workqueue(ctx->post_msg_wq); |
| 411 | 418 | ||
| 419 | ctx->ops->reset(ctx); | ||
| 412 | /* save the shim registers because PMC doesn't save state */ | 420 | /* save the shim registers because PMC doesn't save state */ |
| 413 | sst_save_shim64(ctx, ctx->shim, ctx->shim_regs64); | 421 | sst_save_shim64(ctx, ctx->shim, ctx->shim_regs64); |
| 414 | 422 | ||
