summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLily Zhang <r58066@freescale.com>2011-01-06 13:57:21 +0800
committerLily Zhang <r58066@freescale.com>2011-01-07 11:12:05 +0800
commit85a1005b1fcc03477695005ab9d55da33c30bbd9 (patch)
tree3b9cbca8f9f9b6d7ac0f5dc38eba2673926a5de4 /drivers
parent8d0796f9e15cfa16dbc5be4392a13117d6972472 (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.c15
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: