mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
remoteproc: k3-r5: Add devm action to release tsp
Use a device lifecycle managed action to release tsp ti_sci_proc handle. This helps prevent mistakes like releasing out of order in cleanup functions and forgetting to release on error paths. Signed-off-by: Beleswar Padhi <b-padhi@ti.com> Reviewed-by: Andrew Davis <afd@ti.com> Link: https://lore.kernel.org/r/20241219110545.1898883-6-b-padhi@ti.com Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
This commit is contained in:
committed by
Mathieu Poirier
parent
de182d2f5c
commit
8c8df9bd38
@@ -1487,6 +1487,13 @@ 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_core_of_init(struct platform_device *pdev)
|
||||
{
|
||||
struct device *dev = &pdev->dev;
|
||||
@@ -1580,6 +1587,10 @@ static int k3_r5_core_of_init(struct platform_device *pdev)
|
||||
goto err;
|
||||
}
|
||||
|
||||
ret = devm_add_action_or_reset(dev, k3_r5_release_tsp, core->tsp);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
platform_set_drvdata(pdev, core);
|
||||
devres_close_group(dev, k3_r5_core_of_init);
|
||||
|
||||
@@ -1596,13 +1607,7 @@ err:
|
||||
*/
|
||||
static void k3_r5_core_of_exit(struct platform_device *pdev)
|
||||
{
|
||||
struct k3_r5_core *core = platform_get_drvdata(pdev);
|
||||
struct device *dev = &pdev->dev;
|
||||
int ret;
|
||||
|
||||
ret = ti_sci_proc_release(core->tsp);
|
||||
if (ret)
|
||||
dev_err(dev, "failed to release proc, ret = %d\n", ret);
|
||||
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
devres_release_group(dev, k3_r5_core_of_init);
|
||||
|
||||
Reference in New Issue
Block a user