| From eda532096c344e65999a5268b7fd17bae3d1b666 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 29 Nov 2021 19:26:25 +0100 |
| Subject: media: hantro: Fix probe func error path |
| |
| From: Jernej Skrabec <jernej.skrabec@gmail.com> |
| |
| [ Upstream commit 37af43b250fda6162005d47bf7c959c70d52b107 ] |
| |
| If clocks for some reason couldn't be enabled, probe function returns |
| immediately, without disabling PM. This obviously leaves PM ref counters |
| unbalanced. |
| |
| Fix that by jumping to appropriate error path, so effects of PM functions |
| are reversed. |
| |
| Fixes: 775fec69008d ("media: add Rockchip VPU JPEG encoder driver") |
| Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> |
| Acked-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> |
| Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> |
| Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/staging/media/hantro/hantro_drv.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c |
| index 20e5081588719..281aa585e3375 100644 |
| --- a/drivers/staging/media/hantro/hantro_drv.c |
| +++ b/drivers/staging/media/hantro/hantro_drv.c |
| @@ -958,7 +958,7 @@ static int hantro_probe(struct platform_device *pdev) |
| ret = clk_bulk_prepare(vpu->variant->num_clocks, vpu->clocks); |
| if (ret) { |
| dev_err(&pdev->dev, "Failed to prepare clocks\n"); |
| - return ret; |
| + goto err_pm_disable; |
| } |
| |
| ret = v4l2_device_register(&pdev->dev, &vpu->v4l2_dev); |
| @@ -1014,6 +1014,7 @@ err_v4l2_unreg: |
| v4l2_device_unregister(&vpu->v4l2_dev); |
| err_clk_unprepare: |
| clk_bulk_unprepare(vpu->variant->num_clocks, vpu->clocks); |
| +err_pm_disable: |
| pm_runtime_dont_use_autosuspend(vpu->dev); |
| pm_runtime_disable(vpu->dev); |
| return ret; |
| -- |
| 2.34.1 |
| |