rtc: ia64: allow other architectures to use EFI RTC
Currently, the rtc-efi driver is restricted to ia64 only. Newer architectures with EFI support may want to also use that driver. This patch moves the platform device setup from ia64 into drivers/rtc and allow any architecture with CONFIG_EFI=y to use the rtc-efi driver. Signed-off-by: Mark Salter <msalter@redhat.com> Cc: Alessandro Zummo <a.zummo@towertech.it> Cc: Tony Luck <tony.luck@intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
ca6dc2dab9
commit
da167ad763
@ -384,21 +384,6 @@ static struct irqaction timer_irqaction = {
|
|||||||
.name = "timer"
|
.name = "timer"
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct platform_device rtc_efi_dev = {
|
|
||||||
.name = "rtc-efi",
|
|
||||||
.id = -1,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int __init rtc_init(void)
|
|
||||||
{
|
|
||||||
if (platform_device_register(&rtc_efi_dev) < 0)
|
|
||||||
printk(KERN_ERR "unable to register rtc device...\n");
|
|
||||||
|
|
||||||
/* not necessarily an error */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
module_init(rtc_init);
|
|
||||||
|
|
||||||
void read_persistent_clock(struct timespec *ts)
|
void read_persistent_clock(struct timespec *ts)
|
||||||
{
|
{
|
||||||
efi_gettimeofday(ts);
|
efi_gettimeofday(ts);
|
||||||
|
@ -798,7 +798,7 @@ config RTC_DRV_DA9063
|
|||||||
|
|
||||||
config RTC_DRV_EFI
|
config RTC_DRV_EFI
|
||||||
tristate "EFI RTC"
|
tristate "EFI RTC"
|
||||||
depends on IA64
|
depends on EFI
|
||||||
help
|
help
|
||||||
If you say yes here you will get support for the EFI
|
If you say yes here you will get support for the EFI
|
||||||
Real Time Clock.
|
Real Time Clock.
|
||||||
|
@ -10,6 +10,10 @@ obj-$(CONFIG_RTC_SYSTOHC) += systohc.o
|
|||||||
obj-$(CONFIG_RTC_CLASS) += rtc-core.o
|
obj-$(CONFIG_RTC_CLASS) += rtc-core.o
|
||||||
rtc-core-y := class.o interface.o
|
rtc-core-y := class.o interface.o
|
||||||
|
|
||||||
|
ifdef CONFIG_RTC_DRV_EFI
|
||||||
|
rtc-core-y += rtc-efi-platform.o
|
||||||
|
endif
|
||||||
|
|
||||||
rtc-core-$(CONFIG_RTC_INTF_DEV) += rtc-dev.o
|
rtc-core-$(CONFIG_RTC_INTF_DEV) += rtc-dev.o
|
||||||
rtc-core-$(CONFIG_RTC_INTF_PROC) += rtc-proc.o
|
rtc-core-$(CONFIG_RTC_INTF_PROC) += rtc-proc.o
|
||||||
rtc-core-$(CONFIG_RTC_INTF_SYSFS) += rtc-sysfs.o
|
rtc-core-$(CONFIG_RTC_INTF_SYSFS) += rtc-sysfs.o
|
||||||
|
31
drivers/rtc/rtc-efi-platform.c
Normal file
31
drivers/rtc/rtc-efi-platform.c
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* Moved from arch/ia64/kernel/time.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 1998-2003 Hewlett-Packard Co
|
||||||
|
* Stephane Eranian <eranian@hpl.hp.com>
|
||||||
|
* David Mosberger <davidm@hpl.hp.com>
|
||||||
|
* Copyright (C) 1999 Don Dugger <don.dugger@intel.com>
|
||||||
|
* Copyright (C) 1999-2000 VA Linux Systems
|
||||||
|
* Copyright (C) 1999-2000 Walt Drummond <drummond@valinux.com>
|
||||||
|
*/
|
||||||
|
#include <linux/init.h>
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
#include <linux/module.h>
|
||||||
|
#include <linux/efi.h>
|
||||||
|
#include <linux/platform_device.h>
|
||||||
|
|
||||||
|
static struct platform_device rtc_efi_dev = {
|
||||||
|
.name = "rtc-efi",
|
||||||
|
.id = -1,
|
||||||
|
};
|
||||||
|
|
||||||
|
static int __init rtc_init(void)
|
||||||
|
{
|
||||||
|
if (efi_enabled(EFI_RUNTIME_SERVICES))
|
||||||
|
if (platform_device_register(&rtc_efi_dev) < 0)
|
||||||
|
pr_err("unable to register rtc device...\n");
|
||||||
|
|
||||||
|
/* not necessarily an error */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
module_init(rtc_init);
|
Loading…
Reference in New Issue
Block a user