Re: [PATCH] soc: ti: knav_qmss_queue: free resources in remove callback

Nishanth Menon
2025-11-10T12:27:20Z

On 00:17-20251109, Md Shofiqul Islam wrote:
> Implement the TODO in knav_queue_remove() by stopping PDSPs and
> freeing queue regions and queue ranges before disabling runtime PM,
> mirroring the allocations performed in the probe path.
>
> This ensures resources are released on driver unbind and avoids
> leaking queue/region state.
>
> Signed-off-by: Md Shofiqul Islam <shofiqtest@gmail.com>
> ---
> drivers/soc/ti/knav_qmss_queue.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/soc/ti/knav_qmss_queue.c b/drivers/soc/ti/knav_qmss_queue.c
> index 6e56e7609ccd..1e5f3e9faa99 100644
> --- a/drivers/soc/ti/knav_qmss_queue.c
> +++ b/drivers/soc/ti/knav_qmss_queue.c
> @@ -1884,9 +1884,14 @@ static int knav_queue_probe(struct platform_device *pdev)
>
> static void knav_queue_remove(struct platform_device *pdev)
> {
> - /* TODO: Free resources */
> - pm_runtime_put_sync(&pdev->dev);
> - pm_runtime_disable(&pdev->dev);
> + struct knav_device *kdev = platform_get_drvdata(pdev);
> +
> + knav_queue_stop_pdsps(kdev);
> + knav_queue_free_regions(kdev);
> + knav_free_queue_ranges(kdev);
> +
> + pm_runtime_put_sync(&pdev->dev);
> + pm_runtime_disable(&pdev->dev);
> }
>
> static struct platform_driver keystone_qmss_driver = {
> --
> 2.51.1
>

Did you happen to send the same patch as previous? it has the exact same
formatting issues that i flagged.

--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D