class DspChannel

Defined at line 35 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-ipc.h

A DspChannel manages a inter-processor communication channel from the

Intel HDA driver to the DSP.

Public Members

static const auto kDefaultTimeout

Public Methods

void Shutdown ()

Shutdown the object, cancelling all in-flight transactions.

Called implicitly on destruction if not called earlier.

void ProcessIrq ()

Process an interrupt.

Should be called each time the DSP receives an interrupt, allowing this

object to process any IPC-related interrupts that may be pending.

zx::result<> Send (uint32_t primary, uint32_t extension)

Send an IPC message and wait for response.

The second variant |SendWithData| allows a data payload to be sent and/or

received from the DSP. Empty spans are allowed to indicate no data should

be sent or received, and both the send and receive spans may point to the

same underlying memory if the same buffer should be used for both reading

and writing.

zx::result<> SendWithData (uint32_t primary, uint32_t extension, cpp20::span<const uint8_t> payload, cpp20::span<uint8_t> recv_buffer, size_t * bytes_received)
bool IsOperationPending ()

Return true if at least one operation is pending.

void ~DspChannel ()

Implementations will block until all pending operations have been cancelled and callbacks

completed.

Defined at line 39 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-ipc.h