]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Sep 2021 13:12:48 +0000 (15:12 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Sep 2021 13:12:48 +0000 (15:12 +0200)
added patches:
arm-imx-add-missing-clk_disable_unprepare.patch
arm-imx-fix-missing-3rd-argument-in-macro-imx_mmdc_perf_init.patch

queue-4.19/arm-imx-add-missing-clk_disable_unprepare.patch [new file with mode: 0644]
queue-4.19/arm-imx-fix-missing-3rd-argument-in-macro-imx_mmdc_perf_init.patch [new file with mode: 0644]
queue-4.19/series

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 (file)
index 0000000..2dce8eb
--- /dev/null
@@ -0,0 +1,71 @@
+From f07ec85365807b3939f32d0094a6dd5ce065d1b9 Mon Sep 17 00:00:00 2001
+From: Yang Yingliang <yangyingliang@huawei.com>
+Date: Tue, 15 Jun 2021 20:52:39 +0800
+Subject: ARM: imx: add missing clk_disable_unprepare()
+
+From: Yang Yingliang <yangyingliang@huawei.com>
+
+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 <hulkci@huawei.com>
+Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
+Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Nobuhiro Iwamatsu (CIP) <nobuhiro1.iwamatsu@toshiba.co.jp>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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 (file)
index 0000000..12b4034
--- /dev/null
@@ -0,0 +1,34 @@
+From 20fb73911fec01f06592de1cdbca00b66602ebd7 Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.king@canonical.com>
+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 <colin.king@canonical.com>
+
+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 <colin.king@canonical.com>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+Signed-off-by: Nobuhiro Iwamatsu (CIP) <nobuhiro1.iwamatsu@toshiba.co.jp>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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)
index e5edf99dac4d020a9916852ced6d73814b3ff367..c1e571f3babcef3af3b05302abf9799547d3365a 100644 (file)
@@ -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