Lines Matching defs:sdev

21 static void hda_dsp_ipc_host_done(struct snd_sof_dev *sdev)
27 snd_sof_dsp_update_bits_forced(sdev, HDA_DSP_BAR,
33 snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR,
39 static void hda_dsp_ipc_dsp_done(struct snd_sof_dev *sdev)
45 snd_sof_dsp_update_bits_forced(sdev, HDA_DSP_BAR,
51 snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR,
57 int hda_dsp_ipc_send_msg(struct snd_sof_dev *sdev, struct snd_sof_ipc_msg *msg)
60 sof_mailbox_write(sdev, sdev->host_box.offset, msg->msg_data,
62 snd_sof_dsp_write(sdev, HDA_DSP_BAR, HDA_DSP_REG_HIPCI,
68 void hda_dsp_ipc_get_reply(struct snd_sof_dev *sdev)
70 struct snd_sof_ipc_msg *msg = sdev->msg;
81 dev_warn(sdev->dev, "unexpected ipc interrupt raised!\n");
101 sof_mailbox_read(sdev, sdev->host_box.offset, &reply,
112 dev_err(sdev->dev, "error: reply expected %zu got %u bytes\n",
119 sof_mailbox_read(sdev, sdev->host_box.offset,
131 struct snd_sof_dev *sdev = context;
141 hipcie = snd_sof_dsp_read(sdev, HDA_DSP_BAR,
143 hipct = snd_sof_dsp_read(sdev, HDA_DSP_BAR, HDA_DSP_REG_HIPCT);
144 hipci = snd_sof_dsp_read(sdev, HDA_DSP_BAR, HDA_DSP_REG_HIPCI);
145 hipcte = snd_sof_dsp_read(sdev, HDA_DSP_BAR, HDA_DSP_REG_HIPCTE);
152 dev_vdbg(sdev->dev,
157 snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR,
171 spin_lock_irq(&sdev->ipc_lock);
174 hda_dsp_ipc_get_reply(sdev);
175 snd_sof_ipc_reply(sdev, msg);
178 hda_dsp_ipc_dsp_done(sdev);
180 spin_unlock_irq(&sdev->ipc_lock);
190 dev_vdbg(sdev->dev,
195 snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR,
202 snd_sof_dsp_panic(sdev, HDA_DSP_PANIC_OFFSET(msg_ext));
205 snd_sof_ipc_msgs_rx(sdev);
208 hda_dsp_ipc_host_done(sdev);
217 dev_dbg_ratelimited(sdev->dev,
225 bool hda_dsp_check_ipc_irq(struct snd_sof_dev *sdev)
231 irq_status = snd_sof_dsp_read(sdev, HDA_DSP_BAR, HDA_DSP_REG_ADSPIS);
232 dev_vdbg(sdev->dev, "irq handler: irq_status:0x%x\n", irq_status);
246 int hda_dsp_ipc_get_mailbox_offset(struct snd_sof_dev *sdev)
251 int hda_dsp_ipc_get_window_offset(struct snd_sof_dev *sdev, u32 id)
256 void hda_ipc_msg_data(struct snd_sof_dev *sdev,
260 if (!substream || !sdev->stream_box.size) {
261 sof_mailbox_read(sdev, sdev->dsp_box.offset, p, sz);
272 sof_mailbox_read(sdev, hda_stream->stream.posn_offset,
277 int hda_ipc_pcm_params(struct snd_sof_dev *sdev,
290 if (posn_offset > sdev->stream_box.size ||
294 hda_stream->stream.posn_offset = sdev->stream_box.offset + posn_offset;
296 dev_dbg(sdev->dev, "pcm: stream dir %d, posn mailbox offset is %zu",