summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/modem/m6718_spi/debug.c8
-rw-r--r--drivers/modem/m6718_spi/modem_private.h4
-rw-r--r--drivers/modem/m6718_spi/modem_statemachine.h10
-rw-r--r--drivers/modem/m6718_spi/protocol.c4
-rw-r--r--drivers/modem/m6718_spi/queue.c25
-rw-r--r--drivers/modem/m6718_spi/statemachine.c325
-rw-r--r--drivers/modem/m6718_spi/util.c1
7 files changed, 11 insertions, 366 deletions
diff --git a/drivers/modem/m6718_spi/debug.c b/drivers/modem/m6718_spi/debug.c
index 522a37163c1..06ee4c34a5a 100644
--- a/drivers/modem/m6718_spi/debug.c
+++ b/drivers/modem/m6718_spi/debug.c
@@ -36,14 +36,6 @@ static const char * const sm_state_id_str[] = {
"IPC_SLW_RX_WR_CMD",
"IPC_ACT_RX_WR_CMD",
"IPC_ACT_RX_WR_DAT",
- "IPC_INIT_AUD",
- "IPC_HALT_AUD",
- "IPC_RESET_AUD",
- "IPC_IDL_AUD",
- "IPC_SLW_TX_WR_DAT_AUD",
- "IPC_ACT_TX_WR_DAT_AUD",
- "IPC_SLW_RX_WR_DAT_AUD",
- "IPC_ACT_RX_WR_DAT_AUD",
};
/* name of each state machine run cause */
diff --git a/drivers/modem/m6718_spi/modem_private.h b/drivers/modem/m6718_spi/modem_private.h
index 10e651c01ea..a4de4ba9e93 100644
--- a/drivers/modem/m6718_spi/modem_private.h
+++ b/drivers/modem/m6718_spi/modem_private.h
@@ -24,8 +24,8 @@
#include "modem_protocol.h"
#include "modem_statemachine.h"
-#define IPC_DRIVER_VERSION (0x03) /* APE protocol version */
-#define IPC_DRIVER_MODEM_MIN_VER (0x03) /* version required from modem */
+#define IPC_DRIVER_VERSION (0x02) /* APE protocol version */
+#define IPC_DRIVER_MODEM_MIN_VER (0x02) /* version required from modem */
#define IPC_NBR_SUPPORTED_SPI_LINKS (2)
#define IPC_LINK_COMMON (0)
diff --git a/drivers/modem/m6718_spi/modem_statemachine.h b/drivers/modem/m6718_spi/modem_statemachine.h
index 55e4a520d3d..6a2a32cad3a 100644
--- a/drivers/modem/m6718_spi/modem_statemachine.h
+++ b/drivers/modem/m6718_spi/modem_statemachine.h
@@ -15,7 +15,6 @@
/* valid states for the driver state machine */
enum ipc_sm_state_id {
- /* common link and shared states below */
IPC_SM_INIT,
IPC_SM_HALT,
IPC_SM_RESET,
@@ -35,15 +34,6 @@ enum ipc_sm_state_id {
IPC_SM_SLW_RX_WR_CMD,
IPC_SM_ACT_RX_WR_CMD,
IPC_SM_ACT_RX_WR_DAT,
- /* audio link states below */
- IPC_SM_INIT_AUD,
- IPC_SM_HALT_AUD,
- IPC_SM_RESET_AUD,
- IPC_SM_IDL_AUD,
- IPC_SM_SLW_TX_WR_DAT_AUD,
- IPC_SM_ACT_TX_WR_DAT_AUD,
- IPC_SM_SLW_RX_WR_DAT_AUD,
- IPC_SM_ACT_RX_WR_DAT_AUD,
IPC_SM_STATE_ID_NBR
};
diff --git a/drivers/modem/m6718_spi/protocol.c b/drivers/modem/m6718_spi/protocol.c
index fa6b2528dd4..38e9190e397 100644
--- a/drivers/modem/m6718_spi/protocol.c
+++ b/drivers/modem/m6718_spi/protocol.c
@@ -183,9 +183,7 @@ bool modem_protocol_is_busy(struct spi_device *sdev)
for (i = 0; i < IPC_NBR_SUPPORTED_SPI_LINKS; i++)
switch (l1_context.device_context[i].state->id) {
case IPC_SM_IDL:
- case IPC_SM_IDL_AUD:
case IPC_SM_INIT:
- case IPC_SM_INIT_AUD:
case IPC_SM_WAIT_SLAVE_STABLE:
/* not busy; continue checking */
break;
@@ -280,7 +278,7 @@ static irqreturn_t slave_ready_irq(int irq, void *dev)
}
#ifdef WORKAROUND_DUPLICATED_IRQ
- if (link->id != IPC_LINK_AUDIO && pl022_tfr_in_progress(sdev)) {
+ if (pl022_tfr_in_progress(sdev)) {
dev_warn(&sdev->dev,
"link %d warning: slave irq while transfer "
"is active! discarding event\n", link->id);
diff --git a/drivers/modem/m6718_spi/queue.c b/drivers/modem/m6718_spi/queue.c
index 911d538ee82..fe23ac36736 100644
--- a/drivers/modem/m6718_spi/queue.c
+++ b/drivers/modem/m6718_spi/queue.c
@@ -14,9 +14,6 @@
#define FRAME_LENGTH_ALIGN (4)
#define MAX_FRAME_COUNTER (256)
-/* fixed L1 frame size for audio link: 4 byte L2 header + 664 byte L2 payload */
-#define FRAME_SIZE_AUDIO (668)
-
void ipc_queue_init(struct ipc_link_context *context)
{
spin_lock_init(&context->tx_q_update_lock);
@@ -37,24 +34,10 @@ struct ipc_tx_queue *ipc_queue_new_frame(struct ipc_link_context *link_context,
struct ipc_tx_queue *frame;
u32 padded_len = l2_length;
- /* audio link frames are always a fixed size */
- if (link_context->link->id == IPC_LINK_AUDIO) {
- if (l2_length > FRAME_SIZE_AUDIO) {
- dev_err(&link_context->sdev->dev,
- "link %d error: invalid frame size %d "
- "requested, max is %d\n",
- link_context->link->id,
- l2_length,
- FRAME_SIZE_AUDIO);
- return NULL;
- }
- padded_len = FRAME_SIZE_AUDIO;
- } else {
- /* frame length padded to alignment boundary */
- if (padded_len % FRAME_LENGTH_ALIGN)
- padded_len += (FRAME_LENGTH_ALIGN -
- (padded_len % FRAME_LENGTH_ALIGN));
- }
+ /* frame length padded to alignment boundary */
+ if (padded_len % FRAME_LENGTH_ALIGN)
+ padded_len += (FRAME_LENGTH_ALIGN -
+ (padded_len % FRAME_LENGTH_ALIGN));
dev_dbg(&link_context->sdev->dev,
"link %d: new frame: length %d, padded to %d\n",
diff --git a/drivers/modem/m6718_spi/statemachine.c b/drivers/modem/m6718_spi/statemachine.c
index a956661c3bf..bb047fcee18 100644
--- a/drivers/modem/m6718_spi/statemachine.c
+++ b/drivers/modem/m6718_spi/statemachine.c
@@ -84,35 +84,6 @@ static const struct ipc_sm_state *sm_init_exit(u8 event,
}
}
-static const struct ipc_sm_state *sm_init_aud_exit(u8 event,
- struct ipc_link_context *context)
-{
- bool int_active = false;
-
- /*
- * For reset event just re-enter init in case the modem has
- * powered off - we need to reconfigure our GPIO pins
- */
- if (event == IPC_SM_RUN_RESET)
- return ipc_sm_state(IPC_SM_INIT_AUD);
-
- /* re-sample link INT pin */
- int_active = ipc_util_int_is_active(context);
- atomic_set(&context->state_int, int_active);
-
- dev_info(&context->sdev->dev,
- "link %d: link initialised; SS:INACTIVE(%d) INT:%s(%d)\n",
- context->link->id,
- ipc_util_ss_level_inactive(context),
- int_active ? "ACTIVE" : "INACTIVE",
- int_active ? ipc_util_int_level_active(context) :
- ipc_util_int_level_inactive(context));
- dev_info(&context->sdev->dev,
- "link %d: boot sync not needed, going idle\n",
- context->link->id);
- return ipc_sm_state(IPC_SM_IDL_AUD);
-}
-
static u8 sm_wait_slave_stable_enter(u8 event, struct ipc_link_context *context)
{
static unsigned long printk_warn_time;
@@ -219,17 +190,6 @@ static const struct ipc_sm_state *sm_idl_exit(u8 event,
return ipc_sm_state(IPC_SM_HALT);
}
-static const struct ipc_sm_state *sm_idl_aud_exit(u8 event,
- struct ipc_link_context *context)
-{
- ipc_dbg_exit_idle(context);
- if (event == IPC_SM_RUN_RESET)
- return ipc_sm_state(IPC_SM_RESET_AUD);
-
- /* always transmit data first */
- return ipc_sm_state(IPC_SM_SLW_TX_WR_DAT_AUD);
-}
-
static u8 sm_slw_tx_wr_cmd_enter(u8 event, struct ipc_link_context *context)
{
struct ipc_tx_queue *frame;
@@ -328,43 +288,6 @@ static u8 sm_slw_tx_wr_dat_enter(u8 event, struct ipc_link_context *context)
}
}
-static u8 sm_slw_tx_wr_dat_aud_enter(u8 event, struct ipc_link_context *context)
-{
- struct ipc_tx_queue *frame = NULL;
-
- /* check if there is a frame to be sent */
- if (!ipc_queue_is_empty(context)) {
- frame = ipc_queue_get_frame(context);
- } else {
- /* no frame to send, create an empty one */
- dev_dbg(&context->sdev->dev,
- "link %d: no frame to send, allocating dummy\n",
- context->link->id);
- frame = ipc_queue_new_frame(context, 0);
- if (frame == NULL)
- return IPC_SM_RUN_ABORT;
- }
-
- ipc_dbg_dump_frame(&context->sdev->dev, context->link->id, frame, true);
-
- /* prepare to transfer the frame tx data */
- context->frame = frame;
- ipc_util_spi_message_prepare(context, context->frame->data,
- NULL, context->frame->len);
-
- /* slave might already have signalled ready to transmit */
- if (event == IPC_SM_RUN_SLAVE_IRQ || atomic_read(&context->state_int)) {
- dev_dbg(&context->sdev->dev,
- "link %d: slave has already signalled ready\n",
- context->link->id);
- ipc_util_activate_ss(context);
- return IPC_SM_RUN_SLAVE_IRQ;
- } else {
- ipc_util_activate_ss_with_tmo(context);
- return IPC_SM_RUN_NONE;
- }
-}
-
static const struct ipc_sm_state *sm_slw_tx_wr_dat_exit(u8 event,
struct ipc_link_context *context)
{
@@ -376,17 +299,6 @@ static const struct ipc_sm_state *sm_slw_tx_wr_dat_exit(u8 event,
return ipc_sm_state(IPC_SM_ACT_TX_WR_DAT);
}
-static const struct ipc_sm_state *sm_slw_tx_wr_dat_aud_exit(u8 event,
- struct ipc_link_context *context)
-{
- if (event == IPC_SM_RUN_RESET)
- return ipc_sm_state(IPC_SM_RESET_AUD);
- else if (event == IPC_SM_RUN_COMMS_TMO)
- return ipc_sm_state(IPC_SM_HALT_AUD);
- else
- return ipc_sm_state(IPC_SM_ACT_TX_WR_DAT_AUD);
-}
-
static u8 sm_act_tx_wr_dat_enter(u8 event, struct ipc_link_context *context)
{
int err;
@@ -434,34 +346,6 @@ static const struct ipc_sm_state *sm_act_tx_wr_dat_exit(u8 event,
return ipc_sm_state(IPC_SM_SLW_TX_RD_CMD);
}
-static const struct ipc_sm_state *sm_act_tx_wr_dat_aud_exit(u8 event,
- struct ipc_link_context *context)
-{
- if (event == IPC_SM_RUN_RESET)
- return ipc_sm_state(IPC_SM_RESET_AUD);
-
-#ifdef CONFIG_MODEM_M6718_SPI_ENABLE_FEATURE_THROUGHPUT_MEASUREMENT
- /* frame is sent, increment link tx counter */
- context->tx_bytes += context->frame->actual_len;
-#endif
-#ifdef CONFIG_MODEM_M6718_SPI_ENABLE_FEATURE_VERIFY_FRAMES
- {
- u8 channel;
-
- channel = ipc_util_get_l2_channel(*(u32 *)context->frame->data);
- if (ipc_util_channel_is_loopback(channel)) {
- /* create a copy of the frame */
- context->last_frame = ipc_queue_new_frame(context,
- context->frame->actual_len);
- memcpy(context->last_frame->data,
- context->frame->data,
- context->frame->actual_len);
- }
- }
-#endif
- return ipc_sm_state(IPC_SM_SLW_RX_WR_DAT_AUD);
-}
-
static u8 sm_slw_tx_rd_cmd_enter(u8 event, struct ipc_link_context *context)
{
context->cmd = ipc_util_make_l1_header(CMD_READ, 0, 0);
@@ -626,39 +510,6 @@ static const struct ipc_sm_state *sm_act_rx_wr_cmd_exit(u8 event,
}
}
-static u8 sm_slw_rx_wr_dat_aud_enter(u8 event, struct ipc_link_context *context)
-{
- /*
- * We're using the same frame buffer we just sent, so no need for a
- * new allocation here, just prepare the spi message
- */
- ipc_util_spi_message_prepare(context, NULL,
- context->frame->data, context->frame->len);
-
- /* slave might already have signalled ready to transmit */
- if (atomic_read(&context->state_int)) {
- dev_dbg(&context->sdev->dev,
- "link %d: slave has already signalled ready\n",
- context->link->id);
- ipc_util_activate_ss(context);
- return IPC_SM_RUN_SLAVE_IRQ;
- } else {
- ipc_util_activate_ss_with_tmo(context);
- return IPC_SM_RUN_NONE;
- }
-}
-
-static const struct ipc_sm_state *sm_slw_rx_wr_dat_aud_exit(u8 event,
- struct ipc_link_context *context)
-{
- if (event == IPC_SM_RUN_RESET)
- return ipc_sm_state(IPC_SM_RESET_AUD);
- else if (event == IPC_SM_RUN_COMMS_TMO)
- return ipc_sm_state(IPC_SM_HALT_AUD);
- else
- return ipc_sm_state(IPC_SM_ACT_RX_WR_DAT_AUD);
-}
-
static u8 sm_act_rx_wr_dat_enter(u8 event, struct ipc_link_context *context)
{
int err;
@@ -679,22 +530,6 @@ static u8 sm_act_rx_wr_dat_enter(u8 event, struct ipc_link_context *context)
return IPC_SM_RUN_NONE;
}
-static u8 sm_act_rx_wr_dat_aud_enter(u8 event, struct ipc_link_context *context)
-{
- int err;
-
- dev_dbg(&context->sdev->dev,
- "link %d: starting spi tfr\n", context->link->id);
- err = spi_async(context->sdev, &context->spi_message);
- if (err < 0) {
- dev_err(&context->sdev->dev,
- "link %d error: spi tfr start failed, error %d\n",
- context->link->id, err);
- return IPC_SM_RUN_ABORT;
- }
- return IPC_SM_RUN_NONE;
-}
-
static const struct ipc_sm_state *sm_act_rx_wr_dat_exit(u8 event,
struct ipc_link_context *context)
{
@@ -774,86 +609,6 @@ static const struct ipc_sm_state *sm_act_rx_wr_dat_exit(u8 event,
}
}
-static const struct ipc_sm_state *sm_act_rx_wr_dat_aud_exit(u8 event,
- struct ipc_link_context *context)
-{
- u32 frame_hdr;
- unsigned char l2_header;
- unsigned int l2_length;
- u8 *l2_data;
-
- if (event == IPC_SM_RUN_RESET)
- return ipc_sm_state(IPC_SM_RESET_AUD);
-
- dev_dbg(&context->sdev->dev,
- "link %d: RX PAYLOAD %d bytes\n",
- context->link->id, context->frame->len);
-
- /* decode L2 header */
- frame_hdr = *(u32 *)context->frame->data;
- l2_header = ipc_util_get_l2_channel(frame_hdr);
- l2_length = ipc_util_get_l2_length(frame_hdr);
- l2_data = (u8 *)context->frame->data + IPC_L2_HDR_SIZE;
-
-#ifdef CONFIG_MODEM_M6718_SPI_ENABLE_FEATURE_THROUGHPUT_MEASUREMENT
- /* frame is received, increment link rx counter */
- context->rx_bytes += l2_length;
-#endif
- if (frame_hdr != 0)
- context->frame->actual_len = l2_length + IPC_L2_HDR_SIZE;
- else
- context->frame->actual_len = 0;
- ipc_dbg_dump_frame(&context->sdev->dev, context->link->id,
- context->frame, false);
-
- if (l2_length > (context->frame->len - 4))
- dev_err(&context->sdev->dev,
- "link %d: suspicious frame: L1 len %d L2 len %d\n",
- context->link->id, context->frame->len, l2_length);
-
- dev_dbg(&context->sdev->dev,
- "link %d: L2 PDU decode: header 0x%08x channel %d length %d "
- "data[%02x%02x%02x...]\n",
- context->link->id, frame_hdr, l2_header, l2_length,
- l2_data[0], l2_data[1], l2_data[2]);
-
- if (ipc_util_channel_is_loopback(l2_header))
- ipc_dbg_verify_rx_frame(context);
-
- /* did the slave actually have anything to send? */
- if (frame_hdr != 0) {
- /* pass received frame up to L2mux layer */
- if (!modem_protocol_channel_is_open(l2_header)) {
- dev_err(&context->sdev->dev,
- "link %d error: received frame on invalid "
- "channel %d, frame discarded\n",
- context->link->id, l2_header);
- } else {
-#ifdef CONFIG_MODEM_M6718_SPI_ENABLE_FEATURE_THROUGHPUT_MEASUREMENT
- /*
- * Discard loopback frames if we are taking throughput
- * measurements - we'll be loading the links and so will
- * likely overload the buffers.
- */
- if (!ipc_util_channel_is_loopback(l2_header))
-#endif
- modem_m6718_spi_receive(context->sdev,
- l2_header, l2_length, l2_data);
- }
- } else {
- dev_dbg(&context->sdev->dev,
- "link %d: received dummy frame, discarding\n",
- context->link->id);
- }
-
- /* data is copied by L2mux so free the frame here */
- ipc_queue_delete_frame(context->frame);
- context->frame = NULL;
-
- /* audio link goes idle ready for next transaction */
- return ipc_sm_state(IPC_SM_IDL_AUD);
-}
-
static u8 sm_halt_enter(u8 event, struct ipc_link_context *context)
{
dev_err(&context->sdev->dev,
@@ -884,12 +639,6 @@ static const struct ipc_sm_state *sm_halt_exit(u8 event,
return ipc_sm_state(IPC_SM_RESET);
}
-static const struct ipc_sm_state *sm_halt_aud_exit(u8 event,
- struct ipc_link_context *context)
-{
- return ipc_sm_state(IPC_SM_RESET_AUD);
-}
-
static u8 sm_reset_enter(u8 event, struct ipc_link_context *context)
{
dev_err(&context->sdev->dev,
@@ -922,12 +671,6 @@ static const struct ipc_sm_state *sm_reset_exit(u8 event,
return ipc_sm_state(IPC_SM_INIT);
}
-static const struct ipc_sm_state *sm_reset_aud_exit(u8 event,
- struct ipc_link_context *context)
-{
- return ipc_sm_state(IPC_SM_INIT_AUD);
-}
-
static u8 sm_slw_tx_bootreq_enter(u8 event, struct ipc_link_context *context)
{
dev_info(&context->sdev->dev,
@@ -1047,10 +790,10 @@ static const struct ipc_sm_state *sm_act_rx_bootresp_exit(u8 event,
context->link->id, IPC_DRIVER_VERSION, modem_ver);
/* check for minimum required modem version */
- if (modem_ver < IPC_DRIVER_MODEM_MIN_VER) {
+ if (modem_ver != IPC_DRIVER_MODEM_MIN_VER) {
dev_warn(&context->sdev->dev,
"link %d warning: modem version mismatch! "
- "minimum required version is %02x\n",
+ "required version is %02x\n",
context->link->id,
IPC_DRIVER_MODEM_MIN_VER);
}
@@ -1188,75 +931,16 @@ static const struct ipc_sm_state state_machine[IPC_SM_STATE_ID_NBR] = {
.exit = sm_act_rx_wr_dat_exit,
.events = IPC_SM_RUN_TFR_COMPLETE | IPC_SM_RUN_RESET
},
- /* audio link states below */
- [IPC_SM_INIT_AUD] = {
- .id = IPC_SM_INIT_AUD,
- .enter = sm_init_enter,
- .exit = sm_init_aud_exit,
- .events = IPC_SM_RUN_INIT | IPC_SM_RUN_RESET
- },
- [IPC_SM_HALT_AUD] = {
- .id = IPC_SM_HALT_AUD,
- .enter = sm_halt_enter,
- .exit = sm_halt_aud_exit,
- .events = IPC_SM_RUN_RESET
- },
- [IPC_SM_RESET_AUD] = {
- .id = IPC_SM_RESET_AUD,
- .enter = sm_reset_enter,
- .exit = sm_reset_aud_exit,
- .events = IPC_SM_RUN_RESET
- },
- [IPC_SM_IDL_AUD] = {
- .id = IPC_SM_IDL_AUD,
- .enter = sm_idl_enter,
- .exit = sm_idl_aud_exit,
- .events = IPC_SM_RUN_SLAVE_IRQ | IPC_SM_RUN_TX_REQ |
- IPC_SM_RUN_RESET
- },
- [IPC_SM_SLW_TX_WR_DAT_AUD] = {
- .id = IPC_SM_SLW_TX_WR_DAT_AUD,
- .enter = sm_slw_tx_wr_dat_aud_enter,
- .exit = sm_slw_tx_wr_dat_aud_exit,
- .events = IPC_SM_RUN_SLAVE_IRQ | IPC_SM_RUN_COMMS_TMO |
- IPC_SM_RUN_RESET
- },
- [IPC_SM_ACT_TX_WR_DAT_AUD] = {
- .id = IPC_SM_ACT_TX_WR_DAT_AUD,
- .enter = sm_act_tx_wr_dat_enter,
- .exit = sm_act_tx_wr_dat_aud_exit,
- .events = IPC_SM_RUN_TFR_COMPLETE | IPC_SM_RUN_RESET
- },
- [IPC_SM_SLW_RX_WR_DAT_AUD] = {
- .id = IPC_SM_SLW_RX_WR_DAT_AUD,
- .enter = sm_slw_rx_wr_dat_aud_enter,
- .exit = sm_slw_rx_wr_dat_aud_exit,
- .events = IPC_SM_RUN_SLAVE_IRQ | IPC_SM_RUN_COMMS_TMO |
- IPC_SM_RUN_RESET
- },
- [IPC_SM_ACT_RX_WR_DAT_AUD] = {
- .id = IPC_SM_ACT_RX_WR_DAT_AUD,
- .enter = sm_act_rx_wr_dat_aud_enter,
- .exit = sm_act_rx_wr_dat_aud_exit,
- .events = IPC_SM_RUN_TFR_COMPLETE | IPC_SM_RUN_RESET
- }
};
-
const struct ipc_sm_state *ipc_sm_idle_state(struct ipc_link_context *context)
{
- if (context->link->id == IPC_LINK_AUDIO)
- return ipc_sm_state(IPC_SM_IDL_AUD);
- else
- return ipc_sm_state(IPC_SM_IDL);
+ return ipc_sm_state(IPC_SM_IDL);
}
const struct ipc_sm_state *ipc_sm_init_state(struct ipc_link_context *context)
{
- if (context->link->id == IPC_LINK_AUDIO)
- return ipc_sm_state(IPC_SM_INIT_AUD);
- else
- return ipc_sm_state(IPC_SM_INIT);
+ return ipc_sm_state(IPC_SM_INIT);
}
const struct ipc_sm_state *ipc_sm_state(u8 id)
@@ -1403,4 +1087,3 @@ void ipc_sm_kick(u8 event, struct ipc_link_context *context)
"link %d is suspended, waiting for resume\n", link->id);
spin_unlock_irqrestore(&context->sm_lock, flags);
}
-
diff --git a/drivers/modem/m6718_spi/util.c b/drivers/modem/m6718_spi/util.c
index 9c89eb9b34a..9026f4427dd 100644
--- a/drivers/modem/m6718_spi/util.c
+++ b/drivers/modem/m6718_spi/util.c
@@ -136,7 +136,6 @@ bool ipc_util_link_is_idle(struct ipc_link_context *context)
switch (context->state->id) {
case IPC_SM_IDL:
- case IPC_SM_IDL_AUD:
return true;
default:
return false;