From: Greg Kroah-Hartman Date: Tue, 7 Sep 2021 13:12:48 +0000 (+0200) Subject: 4.19-stable patches X-Git-Tag: v5.10.63~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1bc2f728be1a8d93dc774f3ac094d1c2263dc2ee;p=thirdparty%2Fkernel%2Fstable-queue.git 4.19-stable patches added patches: arm-imx-add-missing-clk_disable_unprepare.patch arm-imx-fix-missing-3rd-argument-in-macro-imx_mmdc_perf_init.patch --- diff --git a/queue-4.19/arm-imx-add-missing-clk_disable_unprepare.patch b/queue-4.19/arm-imx-add-missing-clk_disable_unprepare.patch new file mode 100644 index 00000000000..2dce8eb584f --- /dev/null +++ b/queue-4.19/arm-imx-add-missing-clk_disable_unprepare.patch @@ -0,0 +1,71 @@ +From f07ec85365807b3939f32d0094a6dd5ce065d1b9 Mon Sep 17 00:00:00 2001 +From: Yang Yingliang +Date: Tue, 15 Jun 2021 20:52:39 +0800 +Subject: ARM: imx: add missing clk_disable_unprepare() + +From: Yang Yingliang + +commit f07ec85365807b3939f32d0094a6dd5ce065d1b9 upstream. + +clock source is prepared and enabled by clk_prepare_enable() +in probe function, but no disable or unprepare in remove and +error path. + +Fixes: 9454a0caff6a ("ARM: imx: add mmdc ipg clock operation for mmdc") +Reported-by: Hulk Robot +Signed-off-by: Yang Yingliang +Reviewed-by: Dong Aisheng +Signed-off-by: Shawn Guo +Signed-off-by: Nobuhiro Iwamatsu (CIP) +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm/mach-imx/mmdc.c | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +--- a/arch/arm/mach-imx/mmdc.c ++++ b/arch/arm/mach-imx/mmdc.c +@@ -109,6 +109,7 @@ struct mmdc_pmu { + struct perf_event *mmdc_events[MMDC_NUM_COUNTERS]; + struct hlist_node node; + struct fsl_mmdc_devtype_data *devtype_data; ++ struct clk *mmdc_ipg_clk; + }; + + /* +@@ -474,11 +475,13 @@ static int imx_mmdc_remove(struct platfo + cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node); + perf_pmu_unregister(&pmu_mmdc->pmu); + iounmap(pmu_mmdc->mmdc_base); ++ clk_disable_unprepare(pmu_mmdc->mmdc_ipg_clk); + kfree(pmu_mmdc); + return 0; + } + +-static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_base) ++static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_base, ++ struct clk *mmdc_ipg_clk) + { + struct mmdc_pmu *pmu_mmdc; + char *name; +@@ -506,6 +509,7 @@ static int imx_mmdc_perf_init(struct pla + } + + mmdc_num = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev); ++ pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk; + if (mmdc_num == 0) + name = "mmdc"; + else +@@ -579,9 +583,11 @@ static int imx_mmdc_probe(struct platfor + val &= ~(1 << BP_MMDC_MAPSR_PSD); + writel_relaxed(val, reg); + +- err = imx_mmdc_perf_init(pdev, mmdc_base); +- if (err) ++ err = imx_mmdc_perf_init(pdev, mmdc_base, mmdc_ipg_clk); ++ if (err) { + iounmap(mmdc_base); ++ clk_disable_unprepare(mmdc_ipg_clk); ++ } + + return err; + } diff --git a/queue-4.19/arm-imx-fix-missing-3rd-argument-in-macro-imx_mmdc_perf_init.patch b/queue-4.19/arm-imx-fix-missing-3rd-argument-in-macro-imx_mmdc_perf_init.patch new file mode 100644 index 00000000000..12b40349e42 --- /dev/null +++ b/queue-4.19/arm-imx-fix-missing-3rd-argument-in-macro-imx_mmdc_perf_init.patch @@ -0,0 +1,34 @@ +From 20fb73911fec01f06592de1cdbca00b66602ebd7 Mon Sep 17 00:00:00 2001 +From: Colin Ian King +Date: Thu, 15 Jul 2021 14:23:21 +0100 +Subject: ARM: imx: fix missing 3rd argument in macro imx_mmdc_perf_init + +From: Colin Ian King + +commit 20fb73911fec01f06592de1cdbca00b66602ebd7 upstream. + +The function imx_mmdc_perf_init recently had a 3rd argument added to +it but the equivalent macro was not updated and is still the older +2 argument version. Fix this by adding in the missing 3rd argumement +mmdc_ipg_clk. + +Fixes: f07ec8536580 ("ARM: imx: add missing clk_disable_unprepare()") +Signed-off-by: Colin Ian King +Signed-off-by: Shawn Guo +Signed-off-by: Nobuhiro Iwamatsu (CIP) +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm/mach-imx/mmdc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/arm/mach-imx/mmdc.c ++++ b/arch/arm/mach-imx/mmdc.c +@@ -545,7 +545,7 @@ pmu_free: + + #else + #define imx_mmdc_remove NULL +-#define imx_mmdc_perf_init(pdev, mmdc_base) 0 ++#define imx_mmdc_perf_init(pdev, mmdc_base, mmdc_ipg_clk) 0 + #endif + + static int imx_mmdc_probe(struct platform_device *pdev) diff --git a/queue-4.19/series b/queue-4.19/series index e5edf99dac4..c1e571f3bab 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -11,3 +11,5 @@ arm-8918-2-only-build-return_address-if-needed.patch alsa-pcm-fix-divide-error-in-snd_pcm_lib_ioctl.patch clk-fix-build-warning-for-orphan_list.patch media-stkwebcam-fix-memory-leak-in-stk_camera_probe.patch +arm-imx-add-missing-clk_disable_unprepare.patch +arm-imx-fix-missing-3rd-argument-in-macro-imx_mmdc_perf_init.patch