Skip to content

Commit 0c45d72

Browse files
committed
ipc4: add qemu gateway types and expose pipeline creation
Define new connector node ID types for QEMU test input and output classes, and add a QEMU gateway type. Also expose pipeline creation and deletion functions globally to support testing in userspace. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
1 parent 8910e29 commit 0c45d72

3 files changed

Lines changed: 15 additions & 3 deletions

File tree

src/include/ipc4/gateway.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ enum ipc4_connector_node_id_type {
8080
/**< SPI */
8181
ipc4_spi_output_class = 25,
8282
ipc4_spi_input_class = 26,
83+
84+
/**< QEMU test output (DSP ->). */
85+
ipc4_qemu_output_class = 27,
86+
/**< QEMU test input (DSP <-). */
87+
ipc4_qemu_input_class = 28,
88+
8389
ipc4_max_connector_node_id_type
8490
};
8591

@@ -209,7 +215,8 @@ enum ipc4_gateway_type {
209215
ipc4_gtw_link = BIT(3),
210216
ipc4_gtw_alh = BIT(4),
211217
ipc4_gtw_ssp = BIT(5),
212-
ipc4_gtw_all = BIT(6) - 1
218+
ipc4_gtw_qemu = BIT(6),
219+
ipc4_gtw_all = BIT(7) - 1
213220
};
214221

215222
enum ipc4_direction_type {

src/include/ipc4/pipeline.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,4 +453,9 @@ struct ipc4_chain_dma {
453453
} extension;
454454
} __attribute__((packed, aligned(4)));
455455

456+
struct ipc4_message_request;
457+
458+
int ipc4_new_pipeline(struct ipc4_message_request *ipc4);
459+
int ipc4_delete_pipeline(struct ipc4_message_request *ipc4);
460+
456461
#endif

src/ipc/ipc4/handler.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ static inline const struct ipc4_pipeline_set_state_data *ipc4_get_pipeline_data(
127127
/*
128128
* Global IPC Operations.
129129
*/
130-
__cold static int ipc4_new_pipeline(struct ipc4_message_request *ipc4)
130+
__cold int ipc4_new_pipeline(struct ipc4_message_request *ipc4)
131131
{
132132
struct ipc *ipc = ipc_get();
133133

@@ -136,7 +136,7 @@ __cold static int ipc4_new_pipeline(struct ipc4_message_request *ipc4)
136136
return ipc_pipeline_new(ipc, (ipc_pipe_new *)ipc4);
137137
}
138138

139-
__cold static int ipc4_delete_pipeline(struct ipc4_message_request *ipc4)
139+
__cold int ipc4_delete_pipeline(struct ipc4_message_request *ipc4)
140140
{
141141
struct ipc4_pipeline_delete *pipe;
142142
struct ipc *ipc = ipc_get();

0 commit comments

Comments
 (0)