• Home
  • Raw
  • Download

Lines Matching full:dsp

2  * cnl-sst.c - DSP library functions for CNL platform
9 * HDA DSP library functions for SKL platform
31 #include "../common/sst-dsp.h"
32 #include "../common/sst-dsp-priv.h"
34 #include "cnl-sst-dsp.h"
35 #include "skl-sst-dsp.h"
76 dev_err(ctx->dev, "dsp boot core failed ret: %d\n", ret); in cnl_prepare_fw()
197 dev_err(ctx->dev, "enable dsp core %d failed: %d\n", in cnl_set_dsp_D0()
212 "dsp boot timeout, status=%#x error=%#x\n", in cnl_set_dsp_D0()
252 "dsp core %d to d3 failed; continue reset\n", in cnl_set_dsp_D3()
265 dev_err(ctx->dev, "disable dsp core %d failed: %d\n", in cnl_set_dsp_D3()
303 struct sst_dsp *dsp = context; in cnl_dsp_irq_thread_handler() local
304 struct skl_sst *cnl = sst_dsp_get_thread_context(dsp); in cnl_dsp_irq_thread_handler()
311 if (!(dsp->intr_status & CNL_ADSPIS_IPC)) in cnl_dsp_irq_thread_handler()
314 hipcida = sst_dsp_shim_read_unlocked(dsp, CNL_ADSP_REG_HIPCIDA); in cnl_dsp_irq_thread_handler()
315 hipctdr = sst_dsp_shim_read_unlocked(dsp, CNL_ADSP_REG_HIPCTDR); in cnl_dsp_irq_thread_handler()
317 /* reply message from dsp */ in cnl_dsp_irq_thread_handler()
319 sst_dsp_shim_update_bits(dsp, CNL_ADSP_REG_HIPCCTL, in cnl_dsp_irq_thread_handler()
322 /* clear done bit - tell dsp operation is complete */ in cnl_dsp_irq_thread_handler()
323 sst_dsp_shim_update_bits_forced(dsp, CNL_ADSP_REG_HIPCIDA, in cnl_dsp_irq_thread_handler()
329 sst_dsp_shim_update_bits(dsp, CNL_ADSP_REG_HIPCCTL, in cnl_dsp_irq_thread_handler()
333 /* new message from dsp */ in cnl_dsp_irq_thread_handler()
335 hipctdd = sst_dsp_shim_read_unlocked(dsp, CNL_ADSP_REG_HIPCTDD); in cnl_dsp_irq_thread_handler()
338 dev_dbg(dsp->dev, "IPC irq: Firmware respond primary:%x", in cnl_dsp_irq_thread_handler()
340 dev_dbg(dsp->dev, "IPC irq: Firmware respond extension:%x", in cnl_dsp_irq_thread_handler()
344 /* Handle Immediate reply from DSP Core */ in cnl_dsp_irq_thread_handler()
347 dev_dbg(dsp->dev, "IPC irq: Notification from firmware\n"); in cnl_dsp_irq_thread_handler()
351 sst_dsp_shim_update_bits_forced(dsp, CNL_ADSP_REG_HIPCTDR, in cnl_dsp_irq_thread_handler()
354 /* set done bit to ack dsp */ in cnl_dsp_irq_thread_handler()
355 sst_dsp_shim_update_bits_forced(dsp, CNL_ADSP_REG_HIPCTDA, in cnl_dsp_irq_thread_handler()
363 cnl_ipc_int_enable(dsp); in cnl_dsp_irq_thread_handler()
381 sst_dsp_outbox_write(ipc->dsp, msg->tx_data, msg->tx_size); in cnl_ipc_tx_msg()
382 sst_dsp_shim_write_unlocked(ipc->dsp, CNL_ADSP_REG_HIPCIDD, in cnl_ipc_tx_msg()
384 sst_dsp_shim_write_unlocked(ipc->dsp, CNL_ADSP_REG_HIPCIDR, in cnl_ipc_tx_msg()
388 static bool cnl_ipc_is_dsp_busy(struct sst_dsp *dsp) in cnl_ipc_is_dsp_busy() argument
392 hipcidr = sst_dsp_shim_read_unlocked(dsp, CNL_ADSP_REG_HIPCIDR); in cnl_ipc_is_dsp_busy()
403 ipc->dsp = cnl->dsp; in cnl_ipc_init()
426 struct skl_sst **dsp) in cnl_sst_dsp_init() argument
432 ret = skl_sst_ctx_init(dev, irq, fw_name, dsp_ops, dsp, &cnl_dev); in cnl_sst_dsp_init()
438 cnl = *dsp; in cnl_sst_dsp_init()
439 sst = cnl->dsp; in cnl_sst_dsp_init()
468 struct sst_dsp *sst = ctx->dsp; in cnl_sst_init_fw()
470 ret = ctx->dsp->fw_ops.load_fw(sst); in cnl_sst_init_fw()
486 if (ctx->dsp->fw) in cnl_sst_dsp_cleanup()
487 release_firmware(ctx->dsp->fw); in cnl_sst_dsp_cleanup()
492 ctx->dsp->ops->free(ctx->dsp); in cnl_sst_dsp_cleanup()