* [PATCH v2 2/2] rtc: s3c: Add s3c_rtc_{enable/disable}_clk in s3c_rtc_setfreq() [not found] <1467712733-15800-1-git-send-email-alim.akhtar@samsung.com> @ 2016-07-05 9:58 ` Alim Akhtar 2016-07-19 15:50 ` Alexandre Belloni 0 siblings, 1 reply; 2+ messages in thread From: Alim Akhtar @ 2016-07-05 9:58 UTC (permalink / raw) To: rtc-linux, linux-kernel Cc: alexandre.belloni, k.kozlowski, javier, pankaj.dubey, alim.akhtar, stable As per code flow s3c_rtc_setfreq() will get called with rtc clock disabled and in set_freq we perform h/w registers read/write, which results in a kernel crash on exynos7 platform while probing rtc driver. Below is code flow: s3c_rtc_probe() clk_prepare_enable(info->rtc_clk) // rtc clock enabled s3c_rtc_gettime() // will enable clk if not done, and disable it upon exit s3c_rtc_setfreq() //then this will be called with clk disabled This patch take cares of such issue by adding s3c_rtc_{enable/disable}_clk in s3c_rtc_setfreq(). Fixes: 24e1455493da ("drivers/rtc/rtc-s3c.c: delete duplicate clock control") Cc: <stable@vger.kernel.org> Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Reviewed-by: Pankaj Dubey <pankaj.dubey@samsung.com> Tested-by: Pankaj Dubey <pankaj.dubey@samsung.com> --- drivers/rtc/rtc-s3c.c | 2 ++ 1 file changed, 2 insertions(+) * Changes from v1 -updated commit message as suggested by Krzysztof. -updated reviewed-by, tested-by tags diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c index b083840..1168814 100644 --- a/drivers/rtc/rtc-s3c.c +++ b/drivers/rtc/rtc-s3c.c @@ -149,12 +149,14 @@ static int s3c_rtc_setfreq(struct s3c_rtc *info, int freq) if (!is_power_of_2(freq)) return -EINVAL; + s3c_rtc_enable_clk(info); spin_lock_irq(&info->pie_lock); if (info->data->set_freq) info->data->set_freq(info, freq); spin_unlock_irq(&info->pie_lock); + s3c_rtc_disable_clk(info); return 0; } -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2 2/2] rtc: s3c: Add s3c_rtc_{enable/disable}_clk in s3c_rtc_setfreq() 2016-07-05 9:58 ` [PATCH v2 2/2] rtc: s3c: Add s3c_rtc_{enable/disable}_clk in s3c_rtc_setfreq() Alim Akhtar @ 2016-07-19 15:50 ` Alexandre Belloni 0 siblings, 0 replies; 2+ messages in thread From: Alexandre Belloni @ 2016-07-19 15:50 UTC (permalink / raw) To: Alim Akhtar Cc: rtc-linux, linux-kernel, k.kozlowski, javier, pankaj.dubey, stable On 05/07/2016 at 15:28:53 +0530, Alim Akhtar wrote : > As per code flow s3c_rtc_setfreq() will get called with rtc clock disabled > and in set_freq we perform h/w registers read/write, which results in a > kernel crash on exynos7 platform while probing rtc driver. > Below is code flow: > s3c_rtc_probe() > clk_prepare_enable(info->rtc_clk) // rtc clock enabled > s3c_rtc_gettime() // will enable clk if not done, and disable it upon exit > s3c_rtc_setfreq() //then this will be called with clk disabled > > This patch take cares of such issue by adding s3c_rtc_{enable/disable}_clk in > s3c_rtc_setfreq(). > > Fixes: 24e1455493da ("drivers/rtc/rtc-s3c.c: delete duplicate clock control") > > Cc: <stable@vger.kernel.org> > Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com> > Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> > Reviewed-by: Pankaj Dubey <pankaj.dubey@samsung.com> > Tested-by: Pankaj Dubey <pankaj.dubey@samsung.com> > --- > drivers/rtc/rtc-s3c.c | 2 ++ > 1 file changed, 2 insertions(+) > Applied, thanks. -- Alexandre Belloni, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-07-19 15:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1467712733-15800-1-git-send-email-alim.akhtar@samsung.com>
2016-07-05 9:58 ` [PATCH v2 2/2] rtc: s3c: Add s3c_rtc_{enable/disable}_clk in s3c_rtc_setfreq() Alim Akhtar
2016-07-19 15:50 ` Alexandre Belloni
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).