On Tue, Sep 7, 2010 at 2:29 PM, Kukjin Kim <kgene.kim@xxxxxxxxxxx> wrote: > From: Changhwan Youn <chaos.youn@xxxxxxxxxxx> > > This patch changes RTC initialization method on probe() as > per Wan ZongShun's suggestion. The 'rtc_valid_tm(tm)' can > check whether RTC BCD is valid or not. > > And should be changed the method of check because previous > method cannot validate RTC BCD registers properly. > > Signed-off-by: Changhwan Youn <chaos.youn@xxxxxxxxxxx> > Signed-off-by: Kukjin Kim <kgene.kim@xxxxxxxxxxx> > Cc: Ben Dooks <ben-linux@xxxxxxxxx> > Cc: Wan ZongShun <mcuos.com@xxxxxxxxx> > --- > drivers/rtc/rtc-s3c.c | 16 +++++++++++----- > 1 files changed, 11 insertions(+), 5 deletions(-) > > diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c > index c078548..7f15073 100644 > --- a/drivers/rtc/rtc-s3c.c > +++ b/drivers/rtc/rtc-s3c.c > @@ -458,8 +458,8 @@ static int __devexit s3c_rtc_remove(struct platform_device *dev) > static int __devinit s3c_rtc_probe(struct platform_device *pdev) > { > struct rtc_device *rtc; > + struct rtc_time rtc_tm; > struct resource *res; > - unsigned int tmp, i; > int ret; > > pr_debug("%s: probe=%p\n", __func__, pdev); > @@ -540,11 +540,17 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev) > > /* Check RTC Time */ > > - for (i = S3C2410_RTCSEC; i <= S3C2410_RTCYEAR; i += 0x4) { > - tmp = readb(s3c_rtc_base + i); > + s3c_rtc_gettime(NULL, &rtc_tm); > > - if ((tmp & 0xf) > 0x9 || ((tmp >> 4) & 0xf) > 0x9) > - writeb(0, s3c_rtc_base + i); > + if (rtc_valid_tm(&rtc_tm)) { instead of !rtc_valid_tm(&rtc_tm) ??? > + rtc_tm.tm_year = 100; > + rtc_tm.tm_mon = 0; > + rtc_tm.tm_mday = 1; > + rtc_tm.tm_hour = 0; > + rtc_tm.tm_min = 0; > + rtc_tm.tm_sec = 0; > + > + s3c_rtc_settime(NULL, &rtc_tm); > } > > if (s3c_rtc_cpu_type == TYPE_S3C64XX) > -- > 1.6.2.5 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html