[PATCH v1 3/3] ASoC: qcom: qdsp6: generalize GPR service domain

From: Ajay Kumar Nandam

Date: Tue Jun 09 2026 - 02:46:24 EST


Use each GPR domain advertised by the qcom APR/GPR layer when building
APM/PRM packets and add explicit dest_domain parameters to all AudioReach
alloc helpers.
Legacy helpers fall back to ADSP while graphs, media-format, and
shared-memory packets reuse gdev->domain_id for modem targets.

Co-developed-by: Pratyush Meduri <mpratyus@xxxxxxxxxxxxxxxx>
Signed-off-by: Pratyush Meduri <mpratyus@xxxxxxxxxxxxxxxx>
Signed-off-by: Ajay Kumar Nandam <ajay.nandam@xxxxxxxxxxxxxxxx>
---
sound/soc/qcom/qdsp6/audioreach.c | 112 +++++++++++++++++++++---------
sound/soc/qcom/qdsp6/audioreach.h | 23 +++---
sound/soc/qcom/qdsp6/q6apm.c | 48 +++++++++----
sound/soc/qcom/qdsp6/q6prm.c | 19 ++---
4 files changed, 138 insertions(+), 64 deletions(-)

diff --git a/sound/soc/qcom/qdsp6/audioreach.c b/sound/soc/qcom/qdsp6/audioreach.c
index e6e9eb2e85aa..8090181ac7ce 100644
--- a/sound/soc/qcom/qdsp6/audioreach.c
+++ b/sound/soc/qcom/qdsp6/audioreach.c
@@ -227,8 +227,9 @@ struct apm_module_sp_vi_channel_map_cfg {
sizeof(struct apm_module_sp_vi_channel_map_cfg) + \
(ch) * sizeof(uint32_t), 8)

-static void *__audioreach_alloc_pkt(int payload_size, uint32_t opcode, uint32_t token,
- uint32_t src_port, uint32_t dest_port, bool has_cmd_hdr)
+static void *__audioreach_alloc_pkt(int payload_size, u32 opcode, u32 token,
+ u32 src_port, u32 dest_port, u16 dest_domain,
+ bool has_cmd_hdr)
{
struct gpr_pkt *pkt;
void *p;
@@ -248,7 +249,10 @@ static void *__audioreach_alloc_pkt(int payload_size, uint32_t opcode, uint32_t
pkt->hdr.dest_port = dest_port;
pkt->hdr.src_port = src_port;

- pkt->hdr.dest_domain = GPR_DOMAIN_ID_ADSP;
+ if (!dest_domain)
+ dest_domain = GPR_DOMAIN_ID_ADSP;
+
+ pkt->hdr.dest_domain = dest_domain;
pkt->hdr.src_domain = GPR_DOMAIN_ID_APPS;
pkt->hdr.token = token;
pkt->hdr.opcode = opcode;
@@ -264,31 +268,35 @@ static void *__audioreach_alloc_pkt(int payload_size, uint32_t opcode, uint32_t
return pkt;
}

-void *audioreach_alloc_pkt(int payload_size, uint32_t opcode, uint32_t token,
- uint32_t src_port, uint32_t dest_port)
+void *audioreach_alloc_pkt(int payload_size, u32 opcode, u32 token,
+ u32 src_port, u32 dest_port, u16 dest_domain)
{
- return __audioreach_alloc_pkt(payload_size, opcode, token, src_port, dest_port, false);
+ return __audioreach_alloc_pkt(payload_size, opcode, token, src_port, dest_port,
+ dest_domain, false);
}
EXPORT_SYMBOL_GPL(audioreach_alloc_pkt);

-void *audioreach_alloc_apm_pkt(int pkt_size, uint32_t opcode, uint32_t token, uint32_t src_port)
+void *audioreach_alloc_apm_pkt(int pkt_size, u32 opcode, u32 token,
+ u32 src_port, u16 dest_domain)
{
return __audioreach_alloc_pkt(pkt_size, opcode, token, src_port, APM_MODULE_INSTANCE_ID,
- false);
+ dest_domain, false);
}
EXPORT_SYMBOL_GPL(audioreach_alloc_apm_pkt);

-void *audioreach_alloc_cmd_pkt(int payload_size, uint32_t opcode, uint32_t token,
- uint32_t src_port, uint32_t dest_port)
+void *audioreach_alloc_cmd_pkt(int payload_size, u32 opcode, u32 token,
+ u32 src_port, u32 dest_port, u16 dest_domain)
{
- return __audioreach_alloc_pkt(payload_size, opcode, token, src_port, dest_port, true);
+ return __audioreach_alloc_pkt(payload_size, opcode, token, src_port, dest_port,
+ dest_domain, true);
}
EXPORT_SYMBOL_GPL(audioreach_alloc_cmd_pkt);

-void *audioreach_alloc_apm_cmd_pkt(int pkt_size, uint32_t opcode, uint32_t token)
+void *audioreach_alloc_apm_cmd_pkt(int pkt_size, u32 opcode, u32 token,
+ u16 dest_domain)
{
return __audioreach_alloc_pkt(pkt_size, opcode, token, GPR_APM_MODULE_IID,
- APM_MODULE_INSTANCE_ID, true);
+ APM_MODULE_INSTANCE_ID, dest_domain, true);
}
EXPORT_SYMBOL_GPL(audioreach_alloc_apm_cmd_pkt);

@@ -485,6 +493,7 @@ void *audioreach_alloc_graph_pkt(struct q6apm *apm,
int num_sub_graphs = 0;
int num_modules = 0;
int num_modules_list;
+ u16 dest_domain = audioreach_gpr_dest_domain(apm->gdev);
struct gpr_pkt *pkt;
void *p;

@@ -519,7 +528,8 @@ void *audioreach_alloc_graph_pkt(struct q6apm *apm,
mc_sz = APM_MOD_CONN_PSIZE(mcon, num_connections);

payload_size = sg_sz + cont_sz + ml_sz + mp_sz + mc_sz;
- pkt = audioreach_alloc_apm_cmd_pkt(payload_size, APM_CMD_GRAPH_OPEN, 0);
+ pkt = audioreach_alloc_apm_cmd_pkt(payload_size, APM_CMD_GRAPH_OPEN, 0,
+ dest_domain);
if (IS_ERR(pkt))
return pkt;

@@ -645,7 +655,10 @@ static int audioreach_display_port_set_media_format(struct q6apm_graph *graph,
int size = ic_sz + ep_sz + fs_sz;
void *p;

- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -704,7 +717,10 @@ static int audioreach_codec_dma_set_media_format(struct q6apm_graph *graph,
int size = ic_sz + ep_sz + fs_sz + pm_sz;
void *p;

- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -764,7 +780,10 @@ int audioreach_send_u32_param(struct q6apm_graph *graph,
int payload_size = sizeof(uint32_t) + APM_MODULE_PARAM_DATA_SIZE;
void *p;

- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(payload_size, APM_CMD_SET_CFG, 0);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(payload_size, APM_CMD_SET_CFG, 0,
+ dest_domain);
if (IS_ERR(pkt))
return -ENOMEM;

@@ -820,7 +839,10 @@ static int audioreach_set_module_config(struct q6apm_graph *graph,
int size = le32_to_cpu(module->data->size);
void *p;

- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -843,7 +865,10 @@ static int audioreach_mfc_set_media_format(struct q6apm_graph *graph,
int i;
void *p;

- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(payload_size, APM_CMD_SET_CFG, 0);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(payload_size, APM_CMD_SET_CFG, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -958,9 +983,12 @@ int audioreach_compr_set_param(struct q6apm_graph *graph,
int iid = graph->shm_iid;
int payload_size = sizeof(struct apm_sh_module_media_fmt_cmd);

- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_cmd_pkt(payload_size,
- DATA_CMD_WR_SH_MEM_EP_MEDIA_FORMAT,
- 0, graph->port->id, iid);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_cmd_pkt(payload_size,
+ DATA_CMD_WR_SH_MEM_EP_MEDIA_FORMAT,
+ 0, graph->port->id, iid,
+ dest_domain);
if (IS_ERR(pkt))
return -ENOMEM;

@@ -988,7 +1016,10 @@ static int audioreach_i2s_set_media_format(struct q6apm_graph *graph,
int size = ic_sz + ep_sz + fs_sz;
void *p;

- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -1050,7 +1081,10 @@ static int audioreach_logging_set_media_format(struct q6apm_graph *graph,
int size = sizeof(*cfg) + APM_MODULE_PARAM_DATA_SIZE;
void *p;

- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -1088,8 +1122,10 @@ static int audioreach_pcm_set_media_format(struct q6apm_graph *graph,

payload_size = APM_PCM_MODULE_FMT_CMD_PSIZE(num_channels);

+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
struct gpr_pkt *pkt __free(kfree) =
- audioreach_alloc_apm_cmd_pkt(payload_size, APM_CMD_SET_CFG, 0);
+ audioreach_alloc_apm_cmd_pkt(payload_size, APM_CMD_SET_CFG, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -1172,9 +1208,11 @@ static int audioreach_shmem_set_media_format(struct q6apm_graph *graph,

payload_size = APM_SHMEM_FMT_CFG_PSIZE(num_channels) + APM_MODULE_PARAM_DATA_SIZE;

+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
struct gpr_pkt *pkt __free(kfree) =
audioreach_alloc_cmd_pkt(payload_size, APM_CMD_SET_CFG, 0,
- graph->port->id, module->instance_id);
+ graph->port->id, module->instance_id,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -1219,7 +1257,10 @@ int audioreach_gain_set_vol_ctrl(struct q6apm *apm,
struct apm_module_param_data *param_data;
int size = sizeof(*cfg) + APM_MODULE_PARAM_DATA_SIZE;
void *p;
- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0);
+ u16 dest_domain = audioreach_gpr_dest_domain(apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -1244,7 +1285,10 @@ static int audioreach_gain_set(struct q6apm_graph *graph,
struct apm_module_param_data *param_data;
struct apm_gain_module_cfg *cfg;
int size = APM_GAIN_CFG_PSIZE;
- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(size, APM_CMD_SET_CFG, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -1280,6 +1324,7 @@ static int audioreach_speaker_protection_vi(struct q6apm_graph *graph,
int op_sz, cm_sz, ex_sz;
struct apm_module_param_data *param_data;
int rc, i, payload_size;
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
struct gpr_pkt *pkt;
void *p;

@@ -1295,7 +1340,8 @@ static int audioreach_speaker_protection_vi(struct q6apm_graph *graph,

payload_size = op_sz + cm_sz + ex_sz;

- pkt = audioreach_alloc_apm_cmd_pkt(payload_size, APM_CMD_SET_CFG, 0);
+ pkt = audioreach_alloc_apm_cmd_pkt(payload_size, APM_CMD_SET_CFG, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -1480,8 +1526,12 @@ int audioreach_shared_memory_send_eos(struct q6apm_graph *graph)
{
struct data_cmd_wr_sh_mem_ep_eos *eos;
int iid = graph->shm_iid;
- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_cmd_pkt(sizeof(*eos),
- DATA_CMD_WR_SH_MEM_EP_EOS, 0, graph->port->id, iid);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_cmd_pkt(sizeof(*eos),
+ DATA_CMD_WR_SH_MEM_EP_EOS, 0,
+ graph->port->id, iid,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

diff --git a/sound/soc/qcom/qdsp6/audioreach.h b/sound/soc/qcom/qdsp6/audioreach.h
index 62a2fd79bbcb..d07fcd3a8fa7 100644
--- a/sound/soc/qcom/qdsp6/audioreach.h
+++ b/sound/soc/qcom/qdsp6/audioreach.h
@@ -912,17 +912,20 @@ struct audioreach_module_config {
};

/* Packet Allocation routines */
-void *audioreach_alloc_apm_cmd_pkt(int pkt_size, uint32_t opcode, uint32_t
- token);
+static inline u16 audioreach_gpr_dest_domain(gpr_device_t *gdev)
+{
+ return gdev && gdev->domain_id ? gdev->domain_id : GPR_DOMAIN_ID_ADSP;
+}
+
+void *audioreach_alloc_apm_cmd_pkt(int pkt_size, u32 opcode, u32 token,
+ u16 dest_domain);
void audioreach_set_default_channel_mapping(u8 *ch_map, int num_channels);
-void *audioreach_alloc_cmd_pkt(int payload_size, uint32_t opcode,
- uint32_t token, uint32_t src_port,
- uint32_t dest_port);
-void *audioreach_alloc_apm_pkt(int pkt_size, uint32_t opcode, uint32_t token,
- uint32_t src_port);
-void *audioreach_alloc_pkt(int payload_size, uint32_t opcode,
- uint32_t token, uint32_t src_port,
- uint32_t dest_port);
+void *audioreach_alloc_cmd_pkt(int payload_size, u32 opcode, u32 token,
+ u32 src_port, u32 dest_port, u16 dest_domain);
+void *audioreach_alloc_apm_pkt(int pkt_size, u32 opcode, u32 token,
+ u32 src_port, u16 dest_domain);
+void *audioreach_alloc_pkt(int payload_size, u32 opcode, u32 token,
+ u32 src_port, u32 dest_port, u16 dest_domain);
void *audioreach_alloc_graph_pkt(struct q6apm *apm,
const struct audioreach_graph_info *info);
/* Topology specific */
diff --git a/sound/soc/qcom/qdsp6/q6apm.c b/sound/soc/qcom/qdsp6/q6apm.c
index 2e5b25b8d00f..12ca9fd0fbe8 100644
--- a/sound/soc/qcom/qdsp6/q6apm.c
+++ b/sound/soc/qcom/qdsp6/q6apm.c
@@ -102,7 +102,10 @@ static int audioreach_graph_mgmt_cmd(struct audioreach_graph *graph, uint32_t op
struct q6apm *apm = graph->apm;
int i = 0, payload_size = APM_GRAPH_MGMT_PSIZE(mgmt_cmd, num_sub_graphs);

- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(payload_size, opcode, 0);
+ u16 dest_domain = audioreach_gpr_dest_domain(apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(payload_size, opcode, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -142,8 +145,10 @@ static void q6apm_put_audioreach_graph(struct kref *ref)

static int q6apm_get_apm_state(struct q6apm *apm)
{
- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(0,
- APM_CMD_GET_SPF_STATE, 0);
+ u16 dest_domain = audioreach_gpr_dest_domain(apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(0, APM_CMD_GET_SPF_STATE, 0,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -216,9 +221,11 @@ static int __q6apm_map_memory_fixed_region(struct device *dev, unsigned int grap
uint32_t buf_sz;
void *p;
uint32_t pos_mask = is_pos_buf ? APM_MMAP_TOKEN_MAP_TYPE_POS_BUF : 0;
- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(payload_size,
- APM_CMD_SHARED_MEM_MAP_REGIONS, (graph_id | pos_mask));
-
+ u16 dest_domain = audioreach_gpr_dest_domain(apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(payload_size,
+ APM_CMD_SHARED_MEM_MAP_REGIONS,
+ graph_id | pos_mask, dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -326,8 +333,11 @@ static int __q6apm_unmap_memory_fixed_region(struct device *dev, unsigned int gr
struct q6apm *apm = dev_get_drvdata(dev->parent);
struct audioreach_graph_info *info;
uint32_t mem_map_handle;
- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_apm_cmd_pkt(sizeof(*cmd),
- APM_CMD_SHARED_MEM_UNMAP_REGIONS, graph_id);
+ u16 dest_domain = audioreach_gpr_dest_domain(apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_apm_cmd_pkt(sizeof(*cmd),
+ APM_CMD_SHARED_MEM_UNMAP_REGIONS, graph_id,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -475,10 +485,14 @@ int q6apm_write_async(struct q6apm_graph *graph, uint32_t len, uint32_t msw_ts,
struct apm_data_cmd_wr_sh_mem_ep_data_buffer_v2 *write_buffer;
struct audio_buffer *ab;

- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_pkt(sizeof(*write_buffer),
- DATA_CMD_WR_SH_MEM_EP_DATA_BUFFER_V2,
- graph->rx_data.dsp_buf | (len << APM_WRITE_TOKEN_LEN_SHIFT),
- graph->port->id, graph->shm_iid);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_pkt(sizeof(*write_buffer),
+ DATA_CMD_WR_SH_MEM_EP_DATA_BUFFER_V2,
+ graph->rx_data.dsp_buf |
+ (len << APM_WRITE_TOKEN_LEN_SHIFT),
+ graph->port->id, graph->shm_iid,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -512,9 +526,13 @@ int q6apm_read(struct q6apm_graph *graph)
struct audioreach_graph_data *port;
struct audio_buffer *ab;

- struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_pkt(sizeof(*read_buffer),
- DATA_CMD_RD_SH_MEM_EP_DATA_BUFFER_V2,
- graph->tx_data.dsp_buf, graph->port->id, graph->shm_iid);
+ u16 dest_domain = audioreach_gpr_dest_domain(graph->apm->gdev);
+ struct gpr_pkt *pkt __free(kfree) =
+ audioreach_alloc_pkt(sizeof(*read_buffer),
+ DATA_CMD_RD_SH_MEM_EP_DATA_BUFFER_V2,
+ graph->tx_data.dsp_buf,
+ graph->port->id, graph->shm_iid,
+ dest_domain);
if (IS_ERR(pkt))
return PTR_ERR(pkt);

diff --git a/sound/soc/qcom/qdsp6/q6prm.c b/sound/soc/qcom/qdsp6/q6prm.c
index 04892fb4423f..15ca51ce33b8 100644
--- a/sound/soc/qcom/qdsp6/q6prm.c
+++ b/sound/soc/qcom/qdsp6/q6prm.c
@@ -71,8 +71,9 @@ static int q6prm_set_hw_core_req(struct device *dev, uint32_t hw_block_id, bool
rsp_opcode = PRM_CMD_RSP_RELEASE_HW_RSC;
}

- struct gpr_pkt *pkt __free(kfree) =
- audioreach_alloc_cmd_pkt(sizeof(*req), opcode, 0, gdev->svc.id, GPR_PRM_MODULE_IID);
+ struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_cmd_pkt(sizeof(*req),
+ opcode, 0, gdev->svc.id, GPR_PRM_MODULE_IID,
+ audioreach_gpr_dest_domain(gdev));
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -112,9 +113,10 @@ static int q6prm_request_lpass_clock(struct device *dev, int clk_id, int clk_att
struct prm_cmd_request_rsc *req;
gpr_device_t *gdev = prm->gdev;

- struct gpr_pkt *pkt __free(kfree) =
- audioreach_alloc_cmd_pkt(sizeof(*req), PRM_CMD_REQUEST_HW_RSC, 0,
- gdev->svc.id, GPR_PRM_MODULE_IID);
+ struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_cmd_pkt(sizeof(*req),
+ PRM_CMD_REQUEST_HW_RSC, 0, gdev->svc.id,
+ GPR_PRM_MODULE_IID,
+ audioreach_gpr_dest_domain(gdev));
if (IS_ERR(pkt))
return PTR_ERR(pkt);

@@ -144,9 +146,10 @@ static int q6prm_release_lpass_clock(struct device *dev, int clk_id, int clk_att
struct prm_cmd_release_rsc *rel;
gpr_device_t *gdev = prm->gdev;

- struct gpr_pkt *pkt __free(kfree) =
- audioreach_alloc_cmd_pkt(sizeof(*rel), PRM_CMD_RELEASE_HW_RSC, 0,
- gdev->svc.id, GPR_PRM_MODULE_IID);
+ struct gpr_pkt *pkt __free(kfree) = audioreach_alloc_cmd_pkt(sizeof(*rel),
+ PRM_CMD_RELEASE_HW_RSC, 0, gdev->svc.id,
+ GPR_PRM_MODULE_IID,
+ audioreach_gpr_dest_domain(gdev));
if (IS_ERR(pkt))
return PTR_ERR(pkt);

--
2.34.1