tm->tm_yday = rtc_year_days(tm->tm_mday, tm->tm_mon, tm->tm_year);
        tm->tm_year = at91_alarm_year - 1900;
 
+       alrm->enabled = (at91_sys_read(AT91_RTC_IMR) & AT91_RTC_ALARM)
+                       ? 1 : 0;
+
        pr_debug("%s(): %4d-%02d-%02d %02d:%02d:%02d\n", __FUNCTION__,
                1900 + tm->tm_year, tm->tm_mon, tm->tm_mday,
                tm->tm_hour, tm->tm_min, tm->tm_sec);
 {
        unsigned long imr = at91_sys_read(AT91_RTC_IMR);
 
-       seq_printf(seq, "alarm_IRQ\t: %s\n",
-                       (imr & AT91_RTC_ALARM) ? "yes" : "no");
        seq_printf(seq, "update_IRQ\t: %s\n",
                        (imr & AT91_RTC_ACKUPD) ? "yes" : "no");
        seq_printf(seq, "periodic_IRQ\t: %s\n",
 
        local_irq_enable();
 
        bcd2tm(&alm->time);
-       alm->pending = !!(rtc_read(OMAP_RTC_INTERRUPTS_REG)
+       alm->enabled = !!(rtc_read(OMAP_RTC_INTERRUPTS_REG)
                        & OMAP_RTC_INTERRUPTS_IT_ALARM);
-       alm->enabled = alm->pending && device_may_wakeup(dev);
 
        return 0;
 }
 
                        seq_printf(seq, "%02d\n", alrm.time.tm_mday);
                else
                        seq_printf(seq, "**\n");
-               seq_printf(seq, "alrm_wakeup\t: %s\n",
+               seq_printf(seq, "alarm_IRQ\t: %s\n",
                                alrm.enabled ? "yes" : "no");
                seq_printf(seq, "alrm_pending\t: %s\n",
                                alrm.pending ? "yes" : "no");
 
 
        alm_en = readb(base + S3C2410_RTCALM);
 
+       alrm->enabled = (alm_en & S3C2410_RTCALM_ALMEN) ? 1 : 0;
+
        pr_debug("read alarm %02x %02x.%02x.%02x %02x/%02x/%02x\n",
                 alm_en,
                 alm_tm->tm_year, alm_tm->tm_mon, alm_tm->tm_mday,
 
 static int s3c_rtc_proc(struct device *dev, struct seq_file *seq)
 {
-       unsigned int rtcalm = readb(s3c_rtc_base + S3C2410_RTCALM);
        unsigned int ticnt = readb(s3c_rtc_base + S3C2410_TICNT);
 
-       seq_printf(seq, "alarm_IRQ\t: %s\n",
-                  (rtcalm & S3C2410_RTCALM_ALMEN) ? "yes" : "no" );
-
        seq_printf(seq, "periodic_IRQ\t: %s\n",
                     (ticnt & S3C2410_TICNT_ENABLE) ? "yes" : "no" );
 
 
 
 static int sa1100_rtc_proc(struct device *dev, struct seq_file *seq)
 {
-       seq_printf(seq, "trim/divider\t: 0x%08lx\n", RTTR);
-       seq_printf(seq, "alarm_IRQ\t: %s\n",
-                       (RTSR & RTSR_ALE) ? "yes" : "no" );
+       seq_printf(seq, "trim/divider\t: 0x%08x\n", (u32) RTTR);
        seq_printf(seq, "update_IRQ\t: %s\n",
                        (RTSR & RTSR_HZE) ? "yes" : "no");
        seq_printf(seq, "periodic_IRQ\t: %s\n",