ASoC: Intel: Add generic support for DSP wake, sleep and stall
Add generic functions to support DSP sleep, wake and stall. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
137f6d541a
commit
d96c53a193
|
@ -36,6 +36,9 @@ struct sst_ops {
|
|||
/* DSP core boot / reset */
|
||||
void (*boot)(struct sst_dsp *);
|
||||
void (*reset)(struct sst_dsp *);
|
||||
int (*wake)(struct sst_dsp *);
|
||||
void (*sleep)(struct sst_dsp *);
|
||||
void (*stall)(struct sst_dsp *);
|
||||
|
||||
/* Shim IO */
|
||||
void (*write)(void __iomem *addr, u32 offset, u32 value);
|
||||
|
|
|
@ -245,6 +245,29 @@ int sst_dsp_boot(struct sst_dsp *sst)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(sst_dsp_boot);
|
||||
|
||||
int sst_dsp_wake(struct sst_dsp *sst)
|
||||
{
|
||||
if (sst->ops->wake)
|
||||
return sst->ops->wake(sst);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sst_dsp_wake);
|
||||
|
||||
void sst_dsp_sleep(struct sst_dsp *sst)
|
||||
{
|
||||
if (sst->ops->sleep)
|
||||
sst->ops->sleep(sst);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sst_dsp_sleep);
|
||||
|
||||
void sst_dsp_stall(struct sst_dsp *sst)
|
||||
{
|
||||
if (sst->ops->stall)
|
||||
sst->ops->stall(sst);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(sst_dsp_stall);
|
||||
|
||||
void sst_dsp_ipc_msg_tx(struct sst_dsp *dsp, u32 msg)
|
||||
{
|
||||
sst_dsp_shim_write_unlocked(dsp, SST_IPCX, msg | SST_IPCX_BUSY);
|
||||
|
|
|
@ -245,6 +245,10 @@ void sst_memcpy_fromio_32(struct sst_dsp *sst,
|
|||
/* DSP reset & boot */
|
||||
void sst_dsp_reset(struct sst_dsp *sst);
|
||||
int sst_dsp_boot(struct sst_dsp *sst);
|
||||
int sst_dsp_wake(struct sst_dsp *sst);
|
||||
void sst_dsp_sleep(struct sst_dsp *sst);
|
||||
void sst_dsp_stall(struct sst_dsp *sst);
|
||||
|
||||
/* DMA */
|
||||
int sst_dsp_dma_get_channel(struct sst_dsp *dsp, int chan_id);
|
||||
void sst_dsp_dma_put_channel(struct sst_dsp *dsp);
|
||||
|
|
Loading…
Reference in New Issue