Author: titmuss
Date: Sun Jan 27 02:47:26 2008
New Revision: 1635

URL: http://svn.slimdevices.com?rev=1635&root=Jive&view=rev
Log:
 [EMAIL PROTECTED] (orig r1630):  titmuss | 2008-01-25 18:15:14 +0000
 Bug 6580
 Description:
 Fixed rtc driver to allow suspend until a specified wakeup time.
 

Modified:
    trunk/   (props changed)
    trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/plat-s3c24xx/pm.c
    trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/rtc/rtc-s3c.c

Propchange: trunk/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Sun Jan 27 02:47:26 2008
@@ -1,3 +1,3 @@
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/7.0:1627
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/7.0:1630
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/SN:1083
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/scrolling:1378

Modified: 
trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/plat-s3c24xx/pm.c
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/plat-s3c24xx/pm.c?rev=1635&root=Jive&r1=1634&r2=1635&view=diff
==============================================================================
--- trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/plat-s3c24xx/pm.c 
(original)
+++ trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/arch/arm/plat-s3c24xx/pm.c 
Sun Jan 27 02:47:26 2008
@@ -377,7 +377,7 @@
 {
        for (; count > 0; count--, ptr++) {
                ptr->val = __raw_readl(ptr->reg);
-               DBG("saved %p value %08lx\n", ptr->reg, ptr->val);
+               //DBG("saved %p value %08lx\n", ptr->reg, ptr->val);
        }
 }
 
@@ -392,8 +392,8 @@
 void s3c2410_pm_do_restore(struct sleep_save *ptr, int count)
 {
        for (; count > 0; count--, ptr++) {
-               printk(KERN_DEBUG "restore %p (restore %08lx, was %08x)\n",
-                      ptr->reg, ptr->val, __raw_readl(ptr->reg));
+               //printk(KERN_DEBUG "restore %p (restore %08lx, was %08x)\n",
+               //       ptr->reg, ptr->val, __raw_readl(ptr->reg));
 
                __raw_writel(ptr->val, ptr->reg);
        }

Modified: trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/rtc/rtc-s3c.c
URL: 
http://svn.slimdevices.com/trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/rtc/rtc-s3c.c?rev=1635&root=Jive&r1=1634&r2=1635&view=diff
==============================================================================
--- trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/rtc/rtc-s3c.c 
(original)
+++ trunk/squeezeboxJive/src/kernel-P7/linux-2.6.22/drivers/rtc/rtc-s3c.c Sun 
Jan 27 02:47:26 2008
@@ -266,16 +266,29 @@
                writeb(BIN2BCD(tm->tm_hour), base + S3C2410_ALMHOUR);
        }
 
+       if (tm->tm_mday < 31 && tm->tm_mday >= 0) {
+               alrm_en |= S3C2410_RTCALM_DAYEN;
+               writeb(BIN2BCD(tm->tm_mday), base + S3C2410_ALMDATE);
+       }
+
+       if (tm->tm_mon < 12 && tm->tm_mon >= 0) {
+               alrm_en |= S3C2410_RTCALM_MONEN;
+               writeb(BIN2BCD(tm->tm_mon + 1), base + S3C2410_ALMMON);
+       }
+
+       if (tm->tm_year >= 0 && tm->tm_year < 0xffff) {
+               alrm_en |= S3C2410_RTCALM_YEAREN;
+               writeb(BIN2BCD(tm->tm_year - 100), base + S3C2410_ALMYEAR);
+       }
+
+       if (alrm->enabled)
+               alrm_en |= S3C2410_RTCALM_ALMEN;
+       else
+               alrm_en &= ~S3C2410_RTCALM_ALMEN;
+
        pr_debug("setting S3C2410_RTCALM to %08x\n", alrm_en);
 
-       writeb(alrm_en, base + S3C2410_RTCALM);
-
-       if (0) {
-               alrm_en = readb(base + S3C2410_RTCALM);
-               alrm_en &= ~S3C2410_RTCALM_ALMEN;
-               writeb(alrm_en, base + S3C2410_RTCALM);
-               disable_irq_wake(s3c_rtc_alarmno);
-       }
+       writeb(alrm_en, base + S3C2410_RTCALM);
 
        if (alrm->enabled)
                enable_irq_wake(s3c_rtc_alarmno);
@@ -511,6 +524,8 @@
 
        s3c_rtc_setfreq(s3c_rtc_freq);
 
+       device_init_wakeup(&pdev->dev, 1);
+
        /* register RTC and exit */
 
        rtc = rtc_device_register("s3c", &pdev->dev, &s3c_rtcops,

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins

Reply via email to