Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09269e4e authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branch 'asoc/fix/intel' into asoc-linus

parents 9d22fd3c de251d77
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -150,7 +150,7 @@ enum sst_cmd_type {


enum sst_task {
enum sst_task {
	SST_TASK_SBA = 1,
	SST_TASK_SBA = 1,
	SST_TASK_MMX,
	SST_TASK_MMX = 3,
};
};


enum sst_type {
enum sst_type {
+9 −1
Original line number Original line Diff line number Diff line
@@ -350,7 +350,9 @@ static inline void sst_save_shim64(struct intel_sst_drv *ctx,


	spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags);
	spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags);


	shim_regs->imrx = sst_shim_read64(shim, SST_IMRX),
	shim_regs->imrx = sst_shim_read64(shim, SST_IMRX);
	shim_regs->csr = sst_shim_read64(shim, SST_CSR);



	spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags);
	spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags);
}
}
@@ -367,6 +369,7 @@ static inline void sst_restore_shim64(struct intel_sst_drv *ctx,
	 */
	 */
	spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags);
	spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags);
	sst_shim_write64(shim, SST_IMRX, shim_regs->imrx),
	sst_shim_write64(shim, SST_IMRX, shim_regs->imrx),
	sst_shim_write64(shim, SST_CSR, shim_regs->csr),
	spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags);
	spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags);
}
}


@@ -379,6 +382,10 @@ void sst_configure_runtime_pm(struct intel_sst_drv *ctx)
	 * initially active. So change the state to active before
	 * initially active. So change the state to active before
	 * enabling the pm
	 * enabling the pm
	 */
	 */

	if (!acpi_disabled)
		pm_runtime_set_active(ctx->dev);

	pm_runtime_enable(ctx->dev);
	pm_runtime_enable(ctx->dev);


	if (acpi_disabled)
	if (acpi_disabled)
@@ -409,6 +416,7 @@ static int intel_sst_runtime_suspend(struct device *dev)
	synchronize_irq(ctx->irq_num);
	synchronize_irq(ctx->irq_num);
	flush_workqueue(ctx->post_msg_wq);
	flush_workqueue(ctx->post_msg_wq);


	ctx->ops->reset(ctx);
	/* save the shim registers because PMC doesn't save state */
	/* save the shim registers because PMC doesn't save state */
	sst_save_shim64(ctx, ctx->shim, ctx->shim_regs64);
	sst_save_shim64(ctx, ctx->shim, ctx->shim_regs64);