Skip to content

Commit 5779f6f

Browse files
3V3RYONEmathieupoirier
authored andcommitted
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 <[email protected]> Tested-by: Judith Mendez <[email protected]> Reviewed-by: Andrew Davis <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mathieu Poirier <[email protected]>
1 parent c52d5f1 commit 5779f6f

File tree

5 files changed

+12
-24
lines changed

5 files changed

+12
-24
lines changed

drivers/remoteproc/ti_k3_common.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,5 +539,13 @@ int k3_reserved_mem_init(struct k3_rproc *kproc)
539539
}
540540
EXPORT_SYMBOL_GPL(k3_reserved_mem_init);
541541

542+
void k3_release_tsp(void *data)
543+
{
544+
struct ti_sci_proc *tsp = data;
545+
546+
ti_sci_proc_release(tsp);
547+
}
548+
EXPORT_SYMBOL_GPL(k3_release_tsp);
549+
542550
MODULE_LICENSE("GPL");
543551
MODULE_DESCRIPTION("TI K3 common Remoteproc code");

drivers/remoteproc/ti_k3_common.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,5 @@ int k3_rproc_of_get_memories(struct platform_device *pdev,
114114
struct k3_rproc *kproc);
115115
void k3_mem_release(void *data);
116116
int k3_reserved_mem_init(struct k3_rproc *kproc);
117+
void k3_release_tsp(void *data);
117118
#endif /* REMOTEPROC_TI_K3_COMMON_H */

drivers/remoteproc/ti_k3_dsp_remoteproc.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,6 @@ static const struct rproc_ops k3_dsp_rproc_ops = {
6666
.get_loaded_rsc_table = k3_get_loaded_rsc_table,
6767
};
6868

69-
static void k3_dsp_release_tsp(void *data)
70-
{
71-
struct ti_sci_proc *tsp = data;
72-
73-
ti_sci_proc_release(tsp);
74-
}
75-
7669
static int k3_dsp_rproc_probe(struct platform_device *pdev)
7770
{
7871
struct device *dev = &pdev->dev;
@@ -136,7 +129,7 @@ static int k3_dsp_rproc_probe(struct platform_device *pdev)
136129
dev_err_probe(dev, ret, "ti_sci_proc_request failed\n");
137130
return ret;
138131
}
139-
ret = devm_add_action_or_reset(dev, k3_dsp_release_tsp, kproc->tsp);
132+
ret = devm_add_action_or_reset(dev, k3_release_tsp, kproc->tsp);
140133
if (ret)
141134
return ret;
142135

drivers/remoteproc/ti_k3_m4_remoteproc.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,6 @@
2121
#include "ti_sci_proc.h"
2222
#include "ti_k3_common.h"
2323

24-
static void k3_m4_release_tsp(void *data)
25-
{
26-
struct ti_sci_proc *tsp = data;
27-
28-
ti_sci_proc_release(tsp);
29-
}
30-
3124
static const struct rproc_ops k3_m4_rproc_ops = {
3225
.prepare = k3_rproc_prepare,
3326
.unprepare = k3_rproc_unprepare,
@@ -93,7 +86,7 @@ static int k3_m4_rproc_probe(struct platform_device *pdev)
9386
ret = ti_sci_proc_request(kproc->tsp);
9487
if (ret < 0)
9588
return dev_err_probe(dev, ret, "ti_sci_proc_request failed\n");
96-
ret = devm_add_action_or_reset(dev, k3_m4_release_tsp, kproc->tsp);
89+
ret = devm_add_action_or_reset(dev, k3_release_tsp, kproc->tsp);
9790
if (ret)
9891
return ret;
9992

drivers/remoteproc/ti_k3_r5_remoteproc.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,13 +1017,6 @@ static int k3_r5_core_of_get_sram_memories(struct platform_device *pdev,
10171017
return 0;
10181018
}
10191019

1020-
static void k3_r5_release_tsp(void *data)
1021-
{
1022-
struct ti_sci_proc *tsp = data;
1023-
1024-
ti_sci_proc_release(tsp);
1025-
}
1026-
10271020
static int k3_r5_cluster_rproc_init(struct platform_device *pdev)
10281021
{
10291022
struct k3_r5_cluster *cluster = platform_get_drvdata(pdev);
@@ -1109,7 +1102,7 @@ static int k3_r5_cluster_rproc_init(struct platform_device *pdev)
11091102
goto out;
11101103
}
11111104

1112-
ret = devm_add_action_or_reset(cdev, k3_r5_release_tsp, kproc->tsp);
1105+
ret = devm_add_action_or_reset(cdev, k3_release_tsp, kproc->tsp);
11131106
if (ret)
11141107
goto out;
11151108
}

0 commit comments

Comments
 (0)