mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 08:31:37 +00:00
ASoC: Intel: mrfld - add shim save restore
In ACPI platform we need to save few registers of Shim on suspend and restore them on resume, so add handlers to do this 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>
This commit is contained in:
parent
f533a035e4
commit
b0d94acd63
@ -339,6 +339,34 @@ void sst_context_cleanup(struct intel_sst_drv *ctx)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sst_context_cleanup);
|
||||
|
||||
static inline void sst_save_shim64(struct intel_sst_drv *ctx,
|
||||
void __iomem *shim,
|
||||
struct sst_shim_regs64 *shim_regs)
|
||||
{
|
||||
unsigned long irq_flags;
|
||||
|
||||
spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags);
|
||||
|
||||
shim_regs->imrx = sst_shim_read64(shim, SST_IMRX),
|
||||
|
||||
spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags);
|
||||
}
|
||||
|
||||
static inline void sst_restore_shim64(struct intel_sst_drv *ctx,
|
||||
void __iomem *shim,
|
||||
struct sst_shim_regs64 *shim_regs)
|
||||
{
|
||||
unsigned long irq_flags;
|
||||
|
||||
/*
|
||||
* we only need to restore IMRX for this case, rest will be
|
||||
* initialize by FW or driver when firmware is loaded
|
||||
*/
|
||||
spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags);
|
||||
sst_shim_write64(shim, SST_IMRX, shim_regs->imrx),
|
||||
spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags);
|
||||
}
|
||||
|
||||
void sst_configure_runtime_pm(struct intel_sst_drv *ctx)
|
||||
{
|
||||
pm_runtime_set_autosuspend_delay(ctx->dev, SST_SUSPEND_DELAY);
|
||||
|
Loading…
Reference in New Issue
Block a user