Lines Matching defs:sdev

33 static void cnl_ipc_host_done(struct snd_sof_dev *sdev);
34 static void cnl_ipc_dsp_done(struct snd_sof_dev *sdev);
39 struct snd_sof_dev *sdev = context;
44 hipcida = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDA);
45 hipctdr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCTDR);
48 snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR,
51 cnl_ipc_dsp_done(sdev);
59 u32 hipctdd = snd_sof_dsp_read(sdev, HDA_DSP_BAR,
66 if (likely(sdev->fw_state == SOF_FW_BOOT_COMPLETE)) {
67 struct sof_ipc4_msg *data = sdev->ipc->msg.reply_data;
72 spin_lock_irq(&sdev->ipc_lock);
74 snd_sof_ipc_get_reply(sdev);
75 cnl_ipc_host_done(sdev);
76 snd_sof_ipc_reply(sdev, data->primary);
78 spin_unlock_irq(&sdev->ipc_lock);
80 dev_dbg_ratelimited(sdev->dev,
89 sdev->ipc->msg.rx_data = &notification_data;
90 snd_sof_ipc_msgs_rx(sdev);
91 sdev->ipc->msg.rx_data = NULL;
94 cnl_ipc_host_done(sdev);
102 dev_dbg_ratelimited(sdev->dev, "nothing to do in IPC IRQ thread\n");
105 struct sof_intel_hda_dev *hdev = sdev->pdata->hw_pdata;
108 cnl_ipc4_send_msg(sdev, hdev->delayed_ipc_tx_msg);
116 struct snd_sof_dev *sdev = context;
125 hipcida = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDA);
126 hipctdr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCTDR);
127 hipctdd = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCTDD);
128 hipci = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDR);
135 trace_sof_intel_ipc_firmware_response(sdev, msg, msg_ext);
138 snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR,
142 if (likely(sdev->fw_state == SOF_FW_BOOT_COMPLETE)) {
143 spin_lock_irq(&sdev->ipc_lock);
146 hda_dsp_ipc_get_reply(sdev);
147 snd_sof_ipc_reply(sdev, msg);
149 cnl_ipc_dsp_done(sdev);
151 spin_unlock_irq(&sdev->ipc_lock);
153 dev_dbg_ratelimited(sdev->dev, "IPC reply before FW_READY: %#x\n",
165 trace_sof_intel_ipc_firmware_initiated(sdev, msg, msg_ext);
169 struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
180 if (sdev->fw_state == SOF_FW_BOOT_IN_PROGRESS &&
184 snd_sof_dsp_panic(sdev, HDA_DSP_PANIC_OFFSET(msg_ext),
187 snd_sof_ipc_msgs_rx(sdev);
190 cnl_ipc_host_done(sdev);
199 dev_dbg_ratelimited(sdev->dev,
206 static void cnl_ipc_host_done(struct snd_sof_dev *sdev)
212 snd_sof_dsp_update_bits_forced(sdev, HDA_DSP_BAR,
220 snd_sof_dsp_update_bits_forced(sdev, HDA_DSP_BAR,
226 static void cnl_ipc_dsp_done(struct snd_sof_dev *sdev)
232 snd_sof_dsp_update_bits_forced(sdev, HDA_DSP_BAR,
238 snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR,
262 int cnl_ipc4_send_msg(struct snd_sof_dev *sdev, struct snd_sof_ipc_msg *msg)
264 struct sof_intel_hda_dev *hdev = sdev->pdata->hw_pdata;
267 if (hda_ipc4_tx_is_busy(sdev)) {
276 sof_mailbox_write(sdev, sdev->host_box.offset, msg_data->data_ptr,
279 snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDD, msg_data->extension);
280 snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDR,
288 int cnl_ipc_send_msg(struct snd_sof_dev *sdev, struct snd_sof_ipc_msg *msg)
290 struct sof_intel_hda_dev *hdev = sdev->pdata->hw_pdata;
305 snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDD,
307 snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDR,
313 sof_mailbox_write(sdev, sdev->host_box.offset, msg->msg_data,
315 snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDR,
335 void cnl_ipc_dump(struct snd_sof_dev *sdev)
341 hda_ipc_irq_dump(sdev);
344 hipcida = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDA);
345 hipcctl = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCCTL);
346 hipctdr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCTDR);
350 dev_err(sdev->dev,
355 void cnl_ipc4_dump(struct snd_sof_dev *sdev)
359 hda_ipc_irq_dump(sdev);
361 hipcidr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDR);
362 hipcidd = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDD);
363 hipcida = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDA);
364 hipctdr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCTDR);
365 hipctdd = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCTDD);
366 hipctda = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCTDA);
367 hipcctl = snd_sof_dsp_read(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCCTL);
371 dev_err(sdev->dev,
380 int sof_cnl_ops_init(struct snd_sof_dev *sdev)
389 if (sdev->pdata->ipc_type == SOF_IPC) {
402 if (sdev->pdata->ipc_type == SOF_INTEL_IPC4) {
405 sdev->private = devm_kzalloc(sdev->dev, sizeof(*ipc4_data), GFP_KERNEL);
406 if (!sdev->private)
409 ipc4_data = sdev->private;
430 hda_set_dai_drv_ops(sdev, &sof_cnl_ops);