rtc: Allow RTC_DRV_CMOS to be used on SPARC.
authorDavid S. Miller <davem@davemloft.net>
Fri, 29 Aug 2008 02:54:17 +0000 (19:54 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 29 Aug 2008 21:16:45 +0000 (14:16 -0700)
Add Sparc to the Kconfig depends list.

Add __sparc___ to address_sparc = 128 ifdef.

Finally, don't be concerned about 24-hour BCD mode support if the RTC
doesn't have a valid IRQ.  We won't even use the alarm code in this
case and the Sparc RTCs have this limitation.

Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/rtc/Kconfig
drivers/rtc/rtc-cmos.c

index 9a9755c92fada3268f03f69ee7270964bf322818..8cb158d7744dc6c22e029f006127141bab96a4df 100644 (file)
@@ -329,7 +329,7 @@ comment "Platform RTC drivers"
 
 config RTC_DRV_CMOS
        tristate "PC-style 'CMOS'"
-       depends on X86 || ALPHA || ARM || M32R || ATARI || PPC || MIPS
+       depends on X86 || ALPHA || ARM || M32R || ATARI || PPC || MIPS || SPARC
        default y if X86
        help
          Say "yes" here to get direct support for the real time clock
index 6ea349aba3ba1fa81f159bcbb18235073cf80164..04ecfd2e7c880a1215ca040161860b567aaabdf8 100644 (file)
@@ -636,7 +636,7 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
         */
 #if    defined(CONFIG_ATARI)
        address_space = 64;
-#elif defined(__i386__) || defined(__x86_64__) || defined(__arm__)
+#elif defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__sparc__)
        address_space = 128;
 #else
 #warning Assuming 128 bytes of RTC+NVRAM address space, not 64 bytes.
@@ -699,7 +699,8 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
        /* FIXME teach the alarm code how to handle binary mode;
         * <asm-generic/rtc.h> doesn't know 12-hour mode either.
         */
-       if (!(rtc_control & RTC_24H) || (rtc_control & (RTC_DM_BINARY))) {
+       if (is_valid_irq(rtc_irq) &&
+           (!(rtc_control & RTC_24H) || (rtc_control & (RTC_DM_BINARY)))) {
                dev_dbg(dev, "only 24-hr BCD mode supported\n");
                retval = -ENXIO;
                goto cleanup1;