rtc: s3c: initialize driver data before using it
authorMaurus Cuelenaere <mcuelenaere@gmail.com>
Fri, 4 Jun 2010 21:14:44 +0000 (14:14 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 4 Jun 2010 22:21:44 +0000 (15:21 -0700)
s3c_rtc_setfreq() uses the platform driver data to derive struct rtc_device,
so make sure drvdata is set _before_ s3c_rtc_setfreq() is called.

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Cc: Paul Gortmaker <p_gortmaker@yahoo.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Maurus Cuelenaere <mcuelenaere@gmail.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-s3c.c

index e5972b2c17b7be04be983a4460ca5aec5c7063d2..6adebf31ea69b27bf20d78b777125bff771ad169 100644 (file)
@@ -495,8 +495,6 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev)
        pr_debug("s3c2410_rtc: RTCCON=%02x\n",
                 readb(s3c_rtc_base + S3C2410_RTCCON));
 
-       s3c_rtc_setfreq(&pdev->dev, 1);
-
        device_init_wakeup(&pdev->dev, 1);
 
        /* register RTC and exit */
@@ -518,6 +516,9 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev)
        s3c_rtc_cpu_type = platform_get_device_id(pdev)->driver_data;
 
        platform_set_drvdata(pdev, rtc);
+
+       s3c_rtc_setfreq(&pdev->dev, 1);
+
        return 0;
 
  err_nortc: