mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00
remoteproc: k3: Refactor release_tsp() functions into common driver
The release_tsp() implementations in the TI K3 R5, DSP and M4 remoteproc drivers release the TI-SCI processor control of a remote processor, which is auto triggered upon device removal. Refactor these functions into ti_k3_common.c driver as k3_release_tsp() and use this common function throughout in R5, DSP and M4 drivers. Signed-off-by: Beleswar Padhi <b-padhi@ti.com> Tested-by: Judith Mendez <jm@ti.com> Reviewed-by: Andrew Davis <afd@ti.com> Link: https://lore.kernel.org/r/20250513054510.3439842-37-b-padhi@ti.com Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
This commit is contained in:
parent
c52d5f1d2a
commit
5779f6f9a6
@ -539,5 +539,13 @@ int k3_reserved_mem_init(struct k3_rproc *kproc)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(k3_reserved_mem_init);
|
||||
|
||||
void k3_release_tsp(void *data)
|
||||
{
|
||||
struct ti_sci_proc *tsp = data;
|
||||
|
||||
ti_sci_proc_release(tsp);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(k3_release_tsp);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION("TI K3 common Remoteproc code");
|
||||
|
@ -114,4 +114,5 @@ int k3_rproc_of_get_memories(struct platform_device *pdev,
|
||||
struct k3_rproc *kproc);
|
||||
void k3_mem_release(void *data);
|
||||
int k3_reserved_mem_init(struct k3_rproc *kproc);
|
||||
void k3_release_tsp(void *data);
|
||||
#endif /* REMOTEPROC_TI_K3_COMMON_H */
|
||||
|
@ -66,13 +66,6 @@ static const struct rproc_ops k3_dsp_rproc_ops = {
|
||||
.get_loaded_rsc_table = k3_get_loaded_rsc_table,
|
||||
};
|
||||
|
||||
static void k3_dsp_release_tsp(void *data)
|
||||
{
|
||||
struct ti_sci_proc *tsp = data;
|
||||
|
||||
ti_sci_proc_release(tsp);
|
||||
}
|
||||
|
||||
static int k3_dsp_rproc_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
@ -136,7 +129,7 @@ static int k3_dsp_rproc_probe(struct platform_device *pdev)
|
||||
dev_err_probe(dev, ret, "ti_sci_proc_request failed\n");
|
||||
return ret;
|
||||
}
|
||||
ret = devm_add_action_or_reset(dev, k3_dsp_release_tsp, kproc->tsp);
|
||||
ret = devm_add_action_or_reset(dev, k3_release_tsp, kproc->tsp);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -21,13 +21,6 @@
|
||||
#include "ti_sci_proc.h"
|
||||
#include "ti_k3_common.h"
|
||||
|
||||
static void k3_m4_release_tsp(void *data)
|
||||
{
|
||||
struct ti_sci_proc *tsp = data;
|
||||
|
||||
ti_sci_proc_release(tsp);
|
||||
}
|
||||
|
||||
static const struct rproc_ops k3_m4_rproc_ops = {
|
||||
.prepare = k3_rproc_prepare,
|
||||
.unprepare = k3_rproc_unprepare,
|
||||
@ -93,7 +86,7 @@ static int k3_m4_rproc_probe(struct platform_device *pdev)
|
||||
ret = ti_sci_proc_request(kproc->tsp);
|
||||
if (ret < 0)
|
||||
return dev_err_probe(dev, ret, "ti_sci_proc_request failed\n");
|
||||
ret = devm_add_action_or_reset(dev, k3_m4_release_tsp, kproc->tsp);
|
||||
ret = devm_add_action_or_reset(dev, k3_release_tsp, kproc->tsp);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -1017,13 +1017,6 @@ static int k3_r5_core_of_get_sram_memories(struct platform_device *pdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void k3_r5_release_tsp(void *data)
|
||||
{
|
||||
struct ti_sci_proc *tsp = data;
|
||||
|
||||
ti_sci_proc_release(tsp);
|
||||
}
|
||||
|
||||
static int k3_r5_cluster_rproc_init(struct platform_device *pdev)
|
||||
{
|
||||
struct k3_r5_cluster *cluster = platform_get_drvdata(pdev);
|
||||
@ -1109,7 +1102,7 @@ static int k3_r5_cluster_rproc_init(struct platform_device *pdev)
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = devm_add_action_or_reset(cdev, k3_r5_release_tsp, kproc->tsp);
|
||||
ret = devm_add_action_or_reset(cdev, k3_release_tsp, kproc->tsp);
|
||||
if (ret)
|
||||
goto out;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user