diff options
author | Lily Zhang <r58066@freescale.com> | 2011-01-06 13:57:21 +0800 |
---|---|---|
committer | Lily Zhang <r58066@freescale.com> | 2011-01-07 11:12:05 +0800 |
commit | 85a1005b1fcc03477695005ab9d55da33c30bbd9 (patch) | |
tree | 3b9cbca8f9f9b6d7ac0f5dc38eba2673926a5de4 /drivers | |
parent | 8d0796f9e15cfa16dbc5be4392a13117d6972472 (diff) |
ENGR00137654 SRTC: keep clock always on
This patch is to remove clk operations from interrupt
handler and keep SRTC clock on.
Signed-off-by: Lily Zhang <r58066@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/rtc/rtc-mxc_v2.c | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/drivers/rtc/rtc-mxc_v2.c b/drivers/rtc/rtc-mxc_v2.c index 67faf5bb6025..4e019d0064b7 100644 --- a/drivers/rtc/rtc-mxc_v2.c +++ b/drivers/rtc/rtc-mxc_v2.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2010 Freescale Semiconductor, Inc. All Rights Reserved. + * Copyright (C) 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved. */ /* @@ -248,7 +248,6 @@ static irqreturn_t mxc_rtc_interrupt(int irq, void *dev_id) u32 lp_status, lp_cr; u32 events = 0; - clk_enable(pdata->clk); lp_status = __raw_readl(ioaddr + SRTC_LPSR); lp_cr = __raw_readl(ioaddr + SRTC_LPCR); @@ -272,7 +271,6 @@ static irqreturn_t mxc_rtc_interrupt(int irq, void *dev_id) /* clear interrupt status */ __raw_writel(lp_status, ioaddr + SRTC_LPSR); - clk_disable(pdata->clk); rtc_update_irq(pdata->rtc, 1, events); return IRQ_HANDLED; @@ -285,9 +283,6 @@ static irqreturn_t mxc_rtc_interrupt(int irq, void *dev_id) */ static int mxc_rtc_open(struct device *dev) { - struct rtc_drv_data *pdata = dev_get_drvdata(dev); - clk_enable(pdata->clk); - if (test_and_set_bit(1, &rtc_status)) return -EBUSY; return 0; @@ -298,10 +293,6 @@ static int mxc_rtc_open(struct device *dev) */ static void mxc_rtc_release(struct device *dev) { - struct rtc_drv_data *pdata = dev_get_drvdata(dev); - - clk_disable(pdata->clk); - rtc_status = 0; } @@ -534,11 +525,9 @@ static int mxc_rtc_proc(struct device *dev, struct seq_file *seq) struct rtc_drv_data *pdata = dev_get_drvdata(dev); void __iomem *ioaddr = pdata->ioaddr; - clk_enable(pdata->clk); seq_printf(seq, "alarm_IRQ\t: %s\n", (((__raw_readl(ioaddr + SRTC_LPCR)) & SRTC_LPCR_ALP) != 0) ? "yes" : "no"); - clk_disable(pdata->clk); return 0; } @@ -654,8 +643,6 @@ static int mxc_rtc_probe(struct platform_device *pdev) /* So srtc is set as "should wakeup" as it can */ device_init_wakeup(&pdev->dev, 1); - clk_disable(pdata->clk); - return ret; err_out: |