summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYang Yingliang <yangyingliang@huawei.com>2022-11-10 15:05:59 +0000
committerMauro Carvalho Chehab <mchehab@kernel.org>2022-11-25 07:37:18 +0000
commitba7c0d344658eb3552c183ef8298c98e0e4ac5b7 (patch)
tree714b1b577b65a5acaf66ebb136a3d969e6d3ee24
parentdef4d25856b2fa41c1c1390f1e8d1b027166f5e9 (diff)
downloadlinux-ba7c0d344658eb3552c183ef8298c98e0e4ac5b7.tar.bz2
media: mtk-jpegdec: add missing destroy_workqueue()
destroy_workqueue() needs be called to when driver is unloading, fix it by using devm_add_action_or_reset() to make workqueuedevice-managed. Fixes: dedc21500334 ("media: mtk-jpegdec: add jpeg decode worker interface") Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
-rw-r--r--drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c
index d98f4cdfeea9..8c07fa02fd9a 100644
--- a/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c
+++ b/drivers/media/platform/mediatek/jpeg/mtk_jpeg_dec_hw.c
@@ -580,6 +580,11 @@ static int mtk_jpegdec_hw_init_irq(struct mtk_jpegdec_comp_dev *dev)
return 0;
}
+static void mtk_jpegdec_destroy_workqueue(void *data)
+{
+ destroy_workqueue(data);
+}
+
static int mtk_jpegdec_hw_probe(struct platform_device *pdev)
{
struct mtk_jpegdec_clk *jpegdec_clk;
@@ -614,6 +619,11 @@ static int mtk_jpegdec_hw_probe(struct platform_device *pdev)
| WQ_FREEZABLE);
if (!master_dev->workqueue)
return -EINVAL;
+
+ ret = devm_add_action_or_reset(&pdev->dev, mtk_jpegdec_destroy_workqueue,
+ master_dev->workqueue);
+ if (ret)
+ return ret;
}
atomic_set(&master_dev->dechw_rdy, MTK_JPEGDEC_HW_MAX);