• Bernhard Walle's avatar
    x86, rtc: make CONFIG_HPET_EMULATE_RTC usable from modules · 1bdbdaac
    Bernhard Walle authored
    enabled, then interrupts don't work for the rtc-cmos driver which results in
    RTC_AIE*, RTC_PIE* and RTC_ALM being unusable.  This affects hwclock from
    util-linux-ng at least on i386 since that uses RTC_PIE_ON.  (For x86-64, a
    polling method is used for unknown reasons.)
    
    This patch series now
    
      1. export the functions from arch/x86/kernel/hpet.c that the old char/rtc
         driver uses to work around that problem,
    
      2. makes it possible to compile the old rtc driver as module, while still
         having CONFIG_HPET_EMULATE_RTC enabled and
    
      3. makes use of the exported functions in (1) in the new rtc-cmos driver.
    
    This patch:
    
    This patch makes the RTC emulation functions in arch/x86/kernel/hpet.c usable
    for kernel modules. It
    
      - exports the functions (EXPORT_SYMBOL_GPL()),
      - adds an interface to register the interrupt callback function
        instead of using only a fixed callback function and
      - replaces the rtc_get_rtc_time() function which depends on
        CONFIG_RTC with a call to get_rtc_time() which is defined in
        include/asm-generic/rtc.h.
    
    The only dependency to CONFIG_RTC is the call to rtc_interrupt() which is
    removed by the next patch. After this, there's no (code) dependency of
    this functions to CONFIG_RTC=y any more.
    Signed-off-by: default avatarBernhard Walle <bwalle@suse.de>
    Cc: Alessandro Zummo <a.zummo@towertech.it>
    Cc: David Brownell <david-b@pacbell.net>
    Cc: Andi Kleen <ak@suse.de>
    Cc: john stultz <johnstul@us.ibm.com>
    Cc: Robert Picco <Robert.Picco@hp.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    1bdbdaac
hpet.c 15.7 KB