Lines Matching +full:dsp +full:- +full:irq
1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
15 * Hardware interface for audio DSP on Cannonlake.
20 #include "hda-ipc.h"
21 #include "../sof-audio.h"
26 {"dsp", HDA_DSP_BAR, 0, 0x10000, SOF_DEBUGFS_ACCESS_ALWAYS},
32 irqreturn_t cnl_ipc_irq_thread(int irq, void *context) in cnl_ipc_irq_thread() argument
48 /* reply message from DSP */ in cnl_ipc_irq_thread()
53 dev_vdbg(sdev->dev, in cnl_ipc_irq_thread()
62 spin_lock_irq(&sdev->ipc_lock); in cnl_ipc_irq_thread()
64 /* handle immediate reply from DSP core */ in cnl_ipc_irq_thread()
70 spin_unlock_irq(&sdev->ipc_lock); in cnl_ipc_irq_thread()
75 /* new message from DSP */ in cnl_ipc_irq_thread()
80 dev_vdbg(sdev->dev, in cnl_ipc_irq_thread()
84 /* handle messages from DSP */ in cnl_ipc_irq_thread()
101 dev_dbg_ratelimited(sdev->dev, in cnl_ipc_irq_thread()
102 "nothing to do in IPC IRQ thread\n"); in cnl_ipc_irq_thread()
111 * clear busy interrupt to tell dsp controller this in cnl_ipc_host_done()
119 * set done bit to ack dsp the msg has been in cnl_ipc_host_done()
120 * processed and send reply msg to dsp in cnl_ipc_host_done()
131 * set DONE bit - tell DSP we have received the reply msg in cnl_ipc_dsp_done()
132 * from DSP, and processed it, don't send more reply to host in cnl_ipc_dsp_done()
151 if (msg->header == (SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_GATE)) { in cnl_compact_ipc_compress()
152 pm_gate = msg->msg_data; in cnl_compact_ipc_compress()
158 *dd = pm_gate->flags; in cnl_compact_ipc_compress()
168 struct sof_intel_hda_dev *hdev = sdev->pdata->hw_pdata; in cnl_ipc_send_msg()
175 * IPC which is used for transitioning the DSP between the in cnl_ipc_send_msg()
178 * that a compact IPC results in the DSP exiting D0I3 without in cnl_ipc_send_msg()
191 sof_mailbox_write(sdev, sdev->host_box.offset, msg->msg_data, in cnl_ipc_send_msg()
192 msg->msg_size); in cnl_ipc_send_msg()
196 hdr = msg->msg_data; in cnl_ipc_send_msg()
201 * IPCs are sent at a high-rate. mod_delayed_work() in cnl_ipc_send_msg()
204 * CTX_SAVE IPC, which is sent before the DSP enters D3. in cnl_ipc_send_msg()
206 if (hdr->cmd != (SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_CTX_SAVE)) in cnl_ipc_send_msg()
207 mod_delayed_work(system_wq, &hdev->d0i3_work, in cnl_ipc_send_msg()
228 dev_err(sdev->dev, in cnl_ipc_dump()
229 "error: host status 0x%8.8x dsp status 0x%8.8x mask 0x%8.8x\n", in cnl_ipc_dump()
297 /* dsp core power up/down */