From: Greg Kroah-Hartman Date: Tue, 12 Mar 2013 23:15:00 +0000 (-0700) Subject: remove queue-3.4/rtc-rtc-mv-add-support-for-clk-to-avoid-lockups.patch X-Git-Tag: v3.8.3~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=490122a87723b2ba36447514716ed5d948148efb;p=thirdparty%2Fkernel%2Fstable-queue.git remove queue-3.4/rtc-rtc-mv-add-support-for-clk-to-avoid-lockups.patch --- diff --git a/queue-3.4/rtc-rtc-mv-add-support-for-clk-to-avoid-lockups.patch b/queue-3.4/rtc-rtc-mv-add-support-for-clk-to-avoid-lockups.patch deleted file mode 100644 index 1c2f4b726c8..00000000000 --- a/queue-3.4/rtc-rtc-mv-add-support-for-clk-to-avoid-lockups.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 89c58c198b252f2bc20657fdd72a2aea788c435c Mon Sep 17 00:00:00 2001 -From: Andrew Lunn -Date: Sun, 3 Feb 2013 12:32:06 +0100 -Subject: rtc: rtc-mv: Add support for clk to avoid lockups - -From: Andrew Lunn - -commit 89c58c198b252f2bc20657fdd72a2aea788c435c upstream. - -The Marvell RTC on Kirkwood makes use of the runit clock. Ensure the -driver clk_prepare_enable() this clock, otherwise there is a danger -the SoC will lockup when accessing RTC registers with the clock -disabled. - -Reported-by: Simon Baatz -Signed-off-by: Andrew Lunn -Tested-by: Simon Baatz -Signed-off-by: Jason Cooper -Signed-off-by: Greg Kroah-Hartman - ---- - arch/arm/boot/dts/kirkwood.dtsi | 1 + - drivers/rtc/rtc-mv.c | 28 ++++++++++++++++++++++++---- - 2 files changed, 25 insertions(+), 4 deletions(-) - ---- a/arch/arm/boot/dts/kirkwood.dtsi -+++ b/arch/arm/boot/dts/kirkwood.dtsi -@@ -31,6 +31,7 @@ - compatible = "mrvl,kirkwood-rtc", "mrvl,orion-rtc"; - reg = <0x10300 0x20>; - interrupts = <53>; -+ clocks = <&gate_clk 7>; - }; - }; - }; ---- a/drivers/rtc/rtc-mv.c -+++ b/drivers/rtc/rtc-mv.c -@@ -14,6 +14,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -41,6 +42,7 @@ struct rtc_plat_data { - struct rtc_device *rtc; - void __iomem *ioaddr; - int irq; -+ struct clk *clk; - }; - - static int mv_rtc_set_time(struct device *dev, struct rtc_time *tm) -@@ -221,6 +223,7 @@ static int __devinit mv_rtc_probe(struct - struct rtc_plat_data *pdata; - resource_size_t size; - u32 rtc_time; -+ int ret = 0; - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) -@@ -239,11 +242,17 @@ static int __devinit mv_rtc_probe(struct - if (!pdata->ioaddr) - return -ENOMEM; - -+ pdata->clk = devm_clk_get(&pdev->dev, NULL); -+ /* Not all SoCs require a clock.*/ -+ if (!IS_ERR(pdata->clk)) -+ clk_prepare_enable(pdata->clk); -+ - /* make sure the 24 hours mode is enabled */ - rtc_time = readl(pdata->ioaddr + RTC_TIME_REG_OFFS); - if (rtc_time & RTC_HOURS_12H_MODE) { - dev_err(&pdev->dev, "24 Hours mode not supported.\n"); -- return -EINVAL; -+ ret = -EINVAL; -+ goto out; - } - - /* make sure it is actually functional */ -@@ -252,7 +261,8 @@ static int __devinit mv_rtc_probe(struct - rtc_time = readl(pdata->ioaddr + RTC_TIME_REG_OFFS); - if (rtc_time == 0x01000000) { - dev_err(&pdev->dev, "internal RTC not ticking\n"); -- return -ENODEV; -+ ret = -ENODEV; -+ goto out; - } - } - -@@ -268,8 +278,10 @@ static int __devinit mv_rtc_probe(struct - } else - pdata->rtc = rtc_device_register(pdev->name, &pdev->dev, - &mv_rtc_ops, THIS_MODULE); -- if (IS_ERR(pdata->rtc)) -- return PTR_ERR(pdata->rtc); -+ if (IS_ERR(pdata->rtc)) { -+ ret = PTR_ERR(pdata->rtc); -+ goto out; -+ } - - if (pdata->irq >= 0) { - writel(0, pdata->ioaddr + RTC_ALARM_INTERRUPT_MASK_REG_OFFS); -@@ -282,6 +294,11 @@ static int __devinit mv_rtc_probe(struct - } - - return 0; -+out: -+ if (!IS_ERR(pdata->clk)) -+ clk_disable_unprepare(pdata->clk); -+ -+ return ret; - } - - static int __exit mv_rtc_remove(struct platform_device *pdev) -@@ -292,6 +309,9 @@ static int __exit mv_rtc_remove(struct p - device_init_wakeup(&pdev->dev, 0); - - rtc_device_unregister(pdata->rtc); -+ if (!IS_ERR(pdata->clk)) -+ clk_disable_unprepare(pdata->clk); -+ - return 0; - } - diff --git a/queue-3.4/series b/queue-3.4/series index bfa7372a539..59b43987f48 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -30,7 +30,6 @@ crypto-user-fix-info-leaks-in-report-api.patch keys-fix-race-with-concurrent-install_user_keyrings.patch fix-compat_rw_copy_check_uvector-misuse-in-aio-readv-writev-and-security-keys.patch vfs-fix-pipe-counter-breakage.patch -rtc-rtc-mv-add-support-for-clk-to-avoid-lockups.patch fix-memory-leak-in-cpufreq-stats.patch ftrace-update-the-kconfig-for-dynamic_ftrace.patch dmi_scan-fix-missing-check-for-_dmi_-signature-in-smbios_present.patch