Commit af7ed7eb authored by Srinivas Kandagatla's avatar Srinivas Kandagatla Committed by Mark Brown

ASoC: qdsp6: audioreach: topology use idr_alloc_u32

SubGraph and Module Instance ids take 32 bits, so use idr_alloc_u32
instead of idr_alloc to able to accommodate valid ranges.
Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20221027102710.21407-2-srinivas.kandagatla@linaro.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 9abf2313
...@@ -44,7 +44,7 @@ static struct audioreach_graph_info *audioreach_tplg_alloc_graph_info(struct q6a ...@@ -44,7 +44,7 @@ static struct audioreach_graph_info *audioreach_tplg_alloc_graph_info(struct q6a
INIT_LIST_HEAD(&info->sg_list); INIT_LIST_HEAD(&info->sg_list);
mutex_lock(&apm->lock); mutex_lock(&apm->lock);
ret = idr_alloc(&apm->graph_info_idr, info, graph_id, graph_id + 1, GFP_KERNEL); ret = idr_alloc_u32(&apm->graph_info_idr, info, &graph_id, graph_id, GFP_KERNEL);
mutex_unlock(&apm->lock); mutex_unlock(&apm->lock);
if (ret < 0) { if (ret < 0) {
...@@ -53,7 +53,7 @@ static struct audioreach_graph_info *audioreach_tplg_alloc_graph_info(struct q6a ...@@ -53,7 +53,7 @@ static struct audioreach_graph_info *audioreach_tplg_alloc_graph_info(struct q6a
return ERR_PTR(ret); return ERR_PTR(ret);
} }
info->id = ret; info->id = graph_id;
return info; return info;
} }
...@@ -94,7 +94,7 @@ static struct audioreach_sub_graph *audioreach_tplg_alloc_sub_graph(struct q6apm ...@@ -94,7 +94,7 @@ static struct audioreach_sub_graph *audioreach_tplg_alloc_sub_graph(struct q6apm
INIT_LIST_HEAD(&sg->container_list); INIT_LIST_HEAD(&sg->container_list);
mutex_lock(&apm->lock); mutex_lock(&apm->lock);
ret = idr_alloc(&apm->sub_graphs_idr, sg, sub_graph_id, sub_graph_id + 1, GFP_KERNEL); ret = idr_alloc_u32(&apm->sub_graphs_idr, sg, &sub_graph_id, sub_graph_id, GFP_KERNEL);
mutex_unlock(&apm->lock); mutex_unlock(&apm->lock);
if (ret < 0) { if (ret < 0) {
...@@ -103,7 +103,7 @@ static struct audioreach_sub_graph *audioreach_tplg_alloc_sub_graph(struct q6apm ...@@ -103,7 +103,7 @@ static struct audioreach_sub_graph *audioreach_tplg_alloc_sub_graph(struct q6apm
return ERR_PTR(ret); return ERR_PTR(ret);
} }
sg->sub_graph_id = ret; sg->sub_graph_id = sub_graph_id;
return sg; return sg;
} }
...@@ -136,7 +136,7 @@ static struct audioreach_container *audioreach_tplg_alloc_container(struct q6apm ...@@ -136,7 +136,7 @@ static struct audioreach_container *audioreach_tplg_alloc_container(struct q6apm
INIT_LIST_HEAD(&cont->modules_list); INIT_LIST_HEAD(&cont->modules_list);
mutex_lock(&apm->lock); mutex_lock(&apm->lock);
ret = idr_alloc(&apm->containers_idr, cont, container_id, container_id + 1, GFP_KERNEL); ret = idr_alloc_u32(&apm->containers_idr, cont, &container_id, container_id, GFP_KERNEL);
mutex_unlock(&apm->lock); mutex_unlock(&apm->lock);
if (ret < 0) { if (ret < 0) {
...@@ -145,7 +145,7 @@ static struct audioreach_container *audioreach_tplg_alloc_container(struct q6apm ...@@ -145,7 +145,7 @@ static struct audioreach_container *audioreach_tplg_alloc_container(struct q6apm
return ERR_PTR(ret); return ERR_PTR(ret);
} }
cont->container_id = ret; cont->container_id = container_id;
cont->sub_graph = sg; cont->sub_graph = sg;
/* add to container list */ /* add to container list */
list_add_tail(&cont->node, &sg->container_list); list_add_tail(&cont->node, &sg->container_list);
...@@ -181,7 +181,7 @@ static struct audioreach_module *audioreach_tplg_alloc_module(struct q6apm *apm, ...@@ -181,7 +181,7 @@ static struct audioreach_module *audioreach_tplg_alloc_module(struct q6apm *apm,
AR_MODULE_DYNAMIC_INSTANCE_ID_START, AR_MODULE_DYNAMIC_INSTANCE_ID_START,
AR_MODULE_DYNAMIC_INSTANCE_ID_END, GFP_KERNEL); AR_MODULE_DYNAMIC_INSTANCE_ID_END, GFP_KERNEL);
} else { } else {
ret = idr_alloc(&apm->modules_idr, mod, module_id, module_id + 1, GFP_KERNEL); ret = idr_alloc_u32(&apm->modules_idr, mod, &module_id, module_id, GFP_KERNEL);
} }
mutex_unlock(&apm->lock); mutex_unlock(&apm->lock);
...@@ -191,7 +191,7 @@ static struct audioreach_module *audioreach_tplg_alloc_module(struct q6apm *apm, ...@@ -191,7 +191,7 @@ static struct audioreach_module *audioreach_tplg_alloc_module(struct q6apm *apm,
return ERR_PTR(ret); return ERR_PTR(ret);
} }
mod->instance_id = ret; mod->instance_id = module_id;
/* add to module list */ /* add to module list */
list_add_tail(&mod->node, &cont->modules_list); list_add_tail(&mod->node, &cont->modules_list);
mod->container = cont; mod->container = cont;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment