rtc: avoid legacy drivers with generic framework
authorDavid Brownell <david-b@pacbell.net>
Mon, 28 Apr 2008 09:11:52 +0000 (02:11 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 28 Apr 2008 15:58:16 +0000 (08:58 -0700)
Kconfig tweaks to help reduce RTC configuration bugs, by avoiding
legacy RTC drivers when the generic RTC framework is enabled:

 - If rtc-cmos is selected, disable the legacy rtc driver;

 - When using generic RTC on x86, enable rtc-cmos by default;

 - In the old "chardev RTC" section of Kconfig, add a comment
   warning people off these (seven) legacy RTC drivers when
   the generic framework is in use.

People can still use the legacy drivers if they want (or need) to.

This doesn't fix the broken dependencies for the legacy "CMOS" RTC driver.
Ideally it would be a full list of platforms where it works, not a partial
list of ones where it won't.  Or better yet, it would depend on a
"HAVE_CMOS_RTC" flag defined by various platforms ...  surely there's a
Kconfig style guideline lurking there.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/char/Kconfig
drivers/rtc/Kconfig

index 2906ee7bd298f5e87f2cfea5ea10e113d0abfb08..929d4fa73fd97239457313d5be14cf462168a4b0 100644 (file)
@@ -732,9 +732,16 @@ config NVRAM
          To compile this driver as a module, choose M here: the
          module will be called nvram.
 
+#
+# These legacy RTC drivers just cause too many conflicts with the generic
+# RTC framework ... let's not even try to coexist any more.
+#
+if RTC_LIB=n
+
 config RTC
        tristate "Enhanced Real Time Clock Support"
-       depends on !PPC && !PARISC && !IA64 && !M68K && !SPARC && !FRV && !ARM && !SUPERH && !S390 && !AVR32
+       depends on !PPC && !PARISC && !IA64 && !M68K && !SPARC && !FRV \
+                       && !ARM && !SUPERH && !S390 && !AVR32
        ---help---
          If you say Y here and create a character special file /dev/rtc with
          major number 10 and minor number 135 using mknod ("man mknod"), you
@@ -840,6 +847,8 @@ config DS1302
          will get access to the real time clock (or hardware clock) built
          into your computer.
 
+endif # RTC_LIB
+
 config COBALT_LCD
        bool "Support for Cobalt LCD"
        depends on MIPS_COBALT
index 02a4c8cf2b2d8c5d240e2349d190b0ef620ad9f7..6cc2c0330230fefc372193e275b7748aee32c112 100644 (file)
@@ -20,10 +20,6 @@ menuconfig RTC_CLASS
 
 if RTC_CLASS
 
-if GEN_RTC || RTC
-comment "Conflicting RTC option has been selected, check GEN_RTC and RTC"
-endif
-
 config RTC_HCTOSYS
        bool "Set system time from RTC on startup and resume"
        depends on RTC_CLASS = y
@@ -304,6 +300,7 @@ comment "Platform RTC drivers"
 config RTC_DRV_CMOS
        tristate "PC-style 'CMOS'"
        depends on X86 || ALPHA || ARM || M32R || ATARI || PPC || MIPS
+       default y if X86
        help
          Say "yes" here to get direct support for the real time clock
          found in every PC or ACPI-based system, and some other boards.