diff options
| author | David Carlier <devnexen@gmail.com> | 2026-03-28 15:14:51 +0000 |
|---|---|---|
| committer | Hans Verkuil <hverkuil+cisco@kernel.org> | 2026-05-19 09:01:49 +0200 |
| commit | 2c9b9bcc2569f52e366ec71ca012542e161f1f8d (patch) | |
| tree | 7fdd53fa26fd7a128ffbab9c5bceb3c4a4f49a36 | |
| parent | 38e3509dd98d7e970db87e13f8ec7412852a6967 (diff) | |
media: mali-c55: Power-off the peripheral in remove()
The Mali C55 driver doesn't depend on PM. For this reason, if pm_runtime
is not compiled in it is required to manually power-off the peripheral
during the driver's remove() handler.
Also pm_runtime_enable() is called during probe but mali_c55_remove()
never calls pm_runtime_disable(), leaving the device's runtime PM state
enabled after the driver is unbound.
Manually power-off the peripheral in remove() if the peripheral has not
been suspended using runtime_pm and disable runtime pm.
Cc: stable@vger.kernel.org
Fixes: d5f281f3dd29 ("media: mali-c55: Add Mali-C55 ISP driver")
Signed-off-by: David Carlier <devnexen@gmail.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
| -rw-r--r-- | drivers/media/platform/arm/mali-c55/mali-c55-core.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/media/platform/arm/mali-c55/mali-c55-core.c b/drivers/media/platform/arm/mali-c55/mali-c55-core.c index 305b8cbb9d1c..00aed62c63d9 100644 --- a/drivers/media/platform/arm/mali-c55/mali-c55-core.c +++ b/drivers/media/platform/arm/mali-c55/mali-c55-core.c @@ -858,6 +858,11 @@ static void mali_c55_remove(struct platform_device *pdev) struct mali_c55 *mali_c55 = platform_get_drvdata(pdev); mali_c55_media_frameworks_deinit(mali_c55); + if (!pm_runtime_suspended(&pdev->dev)) { + __mali_c55_power_off(mali_c55); + pm_runtime_set_suspended(&pdev->dev); + } + pm_runtime_disable(&pdev->dev); kfree(mali_c55->context.registers); of_reserved_mem_device_release(&pdev->dev); } |
