Lines Matching refs:sdev

28 static void atom_host_done(struct snd_sof_dev *sdev);
29 static void atom_dsp_done(struct snd_sof_dev *sdev);
30 static void atom_get_reply(struct snd_sof_dev *sdev);
36 static void atom_get_registers(struct snd_sof_dev *sdev, in atom_get_registers() argument
41 u32 offset = sdev->dsp_oops_offset; in atom_get_registers()
44 sof_mailbox_read(sdev, offset, xoops, sizeof(*xoops)); in atom_get_registers()
50 dev_err(sdev->dev, "invalid header size 0x%x. FW oops is bogus\n", in atom_get_registers()
55 sof_mailbox_read(sdev, offset, panic_info, sizeof(*panic_info)); in atom_get_registers()
59 sof_mailbox_read(sdev, offset, stack, stack_words * sizeof(u32)); in atom_get_registers()
62 void atom_dump(struct snd_sof_dev *sdev, u32 flags) in atom_dump() argument
70 status = snd_sof_dsp_read64(sdev, DSP_BAR, SHIM_IPCD); in atom_dump()
71 panic = snd_sof_dsp_read64(sdev, DSP_BAR, SHIM_IPCX); in atom_dump()
72 atom_get_registers(sdev, &xoops, &panic_info, stack, in atom_dump()
74 snd_sof_get_status(sdev, status, panic, &xoops, &panic_info, stack, in atom_dump()
78 imrx = snd_sof_dsp_read64(sdev, DSP_BAR, SHIM_IMRX); in atom_dump()
79 imrd = snd_sof_dsp_read64(sdev, DSP_BAR, SHIM_IMRD); in atom_dump()
80 dev_err(sdev->dev, in atom_dump()
84 dev_err(sdev->dev, in atom_dump()
88 dev_err(sdev->dev, in atom_dump()
92 dev_err(sdev->dev, in atom_dump()
106 struct snd_sof_dev *sdev = context; in atom_irq_handler() local
110 ipcx = snd_sof_dsp_read64(sdev, DSP_BAR, SHIM_IPCX); in atom_irq_handler()
111 ipcd = snd_sof_dsp_read64(sdev, DSP_BAR, SHIM_IPCD); in atom_irq_handler()
116 snd_sof_dsp_update_bits64_unlocked(sdev, DSP_BAR, in atom_irq_handler()
126 snd_sof_dsp_update_bits64_unlocked(sdev, DSP_BAR, in atom_irq_handler()
139 struct snd_sof_dev *sdev = context; in atom_irq_thread() local
142 ipcx = snd_sof_dsp_read64(sdev, DSP_BAR, SHIM_IPCX); in atom_irq_thread()
143 ipcd = snd_sof_dsp_read64(sdev, DSP_BAR, SHIM_IPCD); in atom_irq_thread()
148 spin_lock_irq(&sdev->ipc_lock); in atom_irq_thread()
157 atom_get_reply(sdev); in atom_irq_thread()
158 snd_sof_ipc_reply(sdev, ipcx); in atom_irq_thread()
160 atom_dsp_done(sdev); in atom_irq_thread()
162 spin_unlock_irq(&sdev->ipc_lock); in atom_irq_thread()
170 snd_sof_dsp_panic(sdev, PANIC_OFFSET(ipcd) + in atom_irq_thread()
173 snd_sof_ipc_msgs_rx(sdev); in atom_irq_thread()
176 atom_host_done(sdev); in atom_irq_thread()
183 int atom_send_msg(struct snd_sof_dev *sdev, struct snd_sof_ipc_msg *msg) in atom_send_msg() argument
186 snd_sof_dsp_update_bits64_unlocked(sdev, DSP_BAR, SHIM_IMRX, in atom_send_msg()
190 sof_mailbox_write(sdev, sdev->host_box.offset, msg->msg_data, in atom_send_msg()
192 snd_sof_dsp_write64(sdev, DSP_BAR, SHIM_IPCX, SHIM_BYT_IPCX_BUSY); in atom_send_msg()
198 static void atom_get_reply(struct snd_sof_dev *sdev) in atom_get_reply() argument
200 struct snd_sof_ipc_msg *msg = sdev->msg; in atom_get_reply()
210 dev_warn(sdev->dev, "unexpected ipc interrupt raised!\n"); in atom_get_reply()
215 sof_mailbox_read(sdev, sdev->host_box.offset, &reply, sizeof(reply)); in atom_get_reply()
223 dev_err(sdev->dev, "error: reply expected %zu got %u bytes\n", in atom_get_reply()
230 sof_mailbox_read(sdev, sdev->host_box.offset, in atom_get_reply()
237 int atom_get_mailbox_offset(struct snd_sof_dev *sdev) in atom_get_mailbox_offset() argument
243 int atom_get_window_offset(struct snd_sof_dev *sdev, u32 id) in atom_get_window_offset() argument
249 static void atom_host_done(struct snd_sof_dev *sdev) in atom_host_done() argument
252 snd_sof_dsp_update_bits64_unlocked(sdev, DSP_BAR, SHIM_IPCD, in atom_host_done()
258 snd_sof_dsp_update_bits64_unlocked(sdev, DSP_BAR, SHIM_IMRX, in atom_host_done()
262 static void atom_dsp_done(struct snd_sof_dev *sdev) in atom_dsp_done() argument
265 snd_sof_dsp_update_bits64_unlocked(sdev, DSP_BAR, SHIM_IPCX, in atom_dsp_done()
273 int atom_run(struct snd_sof_dev *sdev) in atom_run() argument
278 snd_sof_dsp_update_bits64(sdev, DSP_BAR, SHIM_CSR, in atom_run()
281 if (!(snd_sof_dsp_read64(sdev, DSP_BAR, SHIM_CSR) & in atom_run()
294 int atom_reset(struct snd_sof_dev *sdev) in atom_reset() argument
297 snd_sof_dsp_update_bits64(sdev, DSP_BAR, SHIM_CSR, in atom_reset()
306 snd_sof_dsp_update_bits64(sdev, DSP_BAR, SHIM_CSR, in atom_reset()
313 static const char *fixup_tplg_name(struct snd_sof_dev *sdev, in fixup_tplg_name() argument
321 filename = devm_kstrdup(sdev->dev, sof_tplg_filename, GFP_KERNEL); in fixup_tplg_name()
328 tplg_filename = devm_kasprintf(sdev->dev, GFP_KERNEL, in fixup_tplg_name()
337 void atom_machine_select(struct snd_sof_dev *sdev) in atom_machine_select() argument
339 struct snd_sof_pdata *sof_pdata = sdev->pdata; in atom_machine_select()
347 dev_warn(sdev->dev, "warning: No matching ASoC machine driver found\n"); in atom_machine_select()
351 pdev = to_platform_device(sdev->dev); in atom_machine_select()
353 dev_dbg(sdev->dev, in atom_machine_select()
356 tplg_filename = fixup_tplg_name(sdev, in atom_machine_select()
364 dev_dbg(sdev->dev, in atom_machine_select()
447 struct snd_sof_dev *sdev) in atom_set_mach_params() argument
449 struct snd_sof_pdata *pdata = sdev->pdata; in atom_set_mach_params()
454 mach_params->platform = dev_name(sdev->dev); in atom_set_mach_params()