|
@@ -985,6 +985,7 @@ int send_rtac_asm_apr(void *buf, u32 opcode)
|
|
|
u32 user_buf_size = 0;
|
|
|
u32 bytes_returned = 0;
|
|
|
u32 session_id = 0;
|
|
|
+ u8 stream_id = 0;
|
|
|
u32 payload_size;
|
|
|
u32 data_size = 0;
|
|
|
struct apr_hdr asm_params;
|
|
@@ -1044,6 +1045,13 @@ int send_rtac_asm_apr(void *buf, u32 opcode)
|
|
|
goto err;
|
|
|
}
|
|
|
|
|
|
+ stream_id = q6asm_get_asm_stream_id(session_id);
|
|
|
+ if ((stream_id != 1) && (stream_id != 2)) {
|
|
|
+ pr_err("%s: Invalid stream id %u\n", __func__, stream_id);
|
|
|
+ result = -EINVAL;
|
|
|
+ goto err;
|
|
|
+ }
|
|
|
+
|
|
|
switch (opcode) {
|
|
|
case ASM_STREAM_CMD_SET_PP_PARAMS_V2:
|
|
|
case ASM_STREAM_CMD_SET_PP_PARAMS_V3:
|
|
@@ -1103,10 +1111,10 @@ int send_rtac_asm_apr(void *buf, u32 opcode)
|
|
|
payload_size);
|
|
|
asm_params.src_svc = q6asm_get_apr_service_id(session_id);
|
|
|
asm_params.src_domain = APR_DOMAIN_APPS;
|
|
|
- asm_params.src_port = (session_id << 8) | 0x0001;
|
|
|
+ asm_params.src_port = (session_id << 8) | stream_id;
|
|
|
asm_params.dest_svc = APR_SVC_ASM;
|
|
|
asm_params.dest_domain = APR_DOMAIN_ADSP;
|
|
|
- asm_params.dest_port = (session_id << 8) | 0x0001;
|
|
|
+ asm_params.dest_port = (session_id << 8) | stream_id;
|
|
|
asm_params.token = session_id;
|
|
|
asm_params.opcode = opcode;
|
|
|
|