Patchwork rtc: rtc-s3c: fix prototype for s3c_rtc_setaie()

login
register
mail settings
Submitter Axel Lin
Date Feb. 11, 2011, 9:22 a.m.
Message ID <1297416172.14816.2.camel@mola>
Download mbox | patch
Permalink /patch/82724/
State New
Headers show

Comments

Axel Lin - Feb. 11, 2011, 9:22 a.m.
Fix s3c_rtc_setaie() prototype to eliminate below compile warning.
drivers/rtc/rtc-s3c.c:383: warning: initialization from incompatible pointer type

Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
 drivers/rtc/rtc-s3c.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)
Andrew Morton - Feb. 28, 2011, 10:25 p.m.
On Fri, 11 Feb 2011 17:22:52 +0800
Axel Lin <axel.lin@gmail.com> wrote:

> Fix s3c_rtc_setaie() prototype to eliminate below compile warning.
> drivers/rtc/rtc-s3c.c:383: warning: initialization from incompatible pointer type
> 
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
> ---
>  drivers/rtc/rtc-s3c.c |   12 +++++++-----
>  1 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
> index cf953ec..b80fa28 100644
> --- a/drivers/rtc/rtc-s3c.c
> +++ b/drivers/rtc/rtc-s3c.c
> @@ -77,18 +77,20 @@ static irqreturn_t s3c_rtc_tickirq(int irq, void *id)
>  }
>  
>  /* Update control registers */
> -static void s3c_rtc_setaie(int to)
> +static int s3c_rtc_setaie(struct device *dev, unsigned int enabled)
>  {
>  	unsigned int tmp;
>  
> -	pr_debug("%s: aie=%d\n", __func__, to);
> +	pr_debug("%s: aie=%d\n", __func__, enabled);
>  
>  	tmp = readb(s3c_rtc_base + S3C2410_RTCALM) & ~S3C2410_RTCALM_ALMEN;
>  
> -	if (to)
> +	if (enabled)
>  		tmp |= S3C2410_RTCALM_ALMEN;
>  
>  	writeb(tmp, s3c_rtc_base + S3C2410_RTCALM);
> +
> +	return 0;
>  }
>  
>  static int s3c_rtc_setpie(struct device *dev, int enabled)
> @@ -308,7 +310,7 @@ static int s3c_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
>  
>  	writeb(alrm_en, base + S3C2410_RTCALM);
>  
> -	s3c_rtc_setaie(alrm->enabled);
> +	s3c_rtc_setaie(dev, alrm->enabled);
>  
>  	return 0;
>  }
> @@ -440,7 +442,7 @@ static int __devexit s3c_rtc_remove(struct platform_device *dev)
>  	rtc_device_unregister(rtc);
>  
>  	s3c_rtc_setpie(&dev->dev, 0);
> -	s3c_rtc_setaie(0);
> +	s3c_rtc_setaie(&dev->dev, 0);
>  
>  	clk_disable(rtc_clk);
>  	clk_put(rtc_clk);

This does more than fix a warning!  The rtc_class_ops.alarm_irq_enable()
handler was being passed two arguments where it expected one and it
wouldn't have functioned correctly.

Patch

diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
index cf953ec..b80fa28 100644
--- a/drivers/rtc/rtc-s3c.c
+++ b/drivers/rtc/rtc-s3c.c
@@ -77,18 +77,20 @@  static irqreturn_t s3c_rtc_tickirq(int irq, void *id)
 }
 
 /* Update control registers */
-static void s3c_rtc_setaie(int to)
+static int s3c_rtc_setaie(struct device *dev, unsigned int enabled)
 {
 	unsigned int tmp;
 
-	pr_debug("%s: aie=%d\n", __func__, to);
+	pr_debug("%s: aie=%d\n", __func__, enabled);
 
 	tmp = readb(s3c_rtc_base + S3C2410_RTCALM) & ~S3C2410_RTCALM_ALMEN;
 
-	if (to)
+	if (enabled)
 		tmp |= S3C2410_RTCALM_ALMEN;
 
 	writeb(tmp, s3c_rtc_base + S3C2410_RTCALM);
+
+	return 0;
 }
 
 static int s3c_rtc_setpie(struct device *dev, int enabled)
@@ -308,7 +310,7 @@  static int s3c_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
 
 	writeb(alrm_en, base + S3C2410_RTCALM);
 
-	s3c_rtc_setaie(alrm->enabled);
+	s3c_rtc_setaie(dev, alrm->enabled);
 
 	return 0;
 }
@@ -440,7 +442,7 @@  static int __devexit s3c_rtc_remove(struct platform_device *dev)
 	rtc_device_unregister(rtc);
 
 	s3c_rtc_setpie(&dev->dev, 0);
-	s3c_rtc_setaie(0);
+	s3c_rtc_setaie(&dev->dev, 0);
 
 	clk_disable(rtc_clk);
 	clk_put(rtc_clk);