Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit da167ad7 authored by Mark Salter's avatar Mark Salter Committed by Linus Torvalds
Browse files

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: default avatarMark 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ca6dc2da
Loading
Loading
Loading
Loading
+0 −15
Original line number Original line Diff line number Diff line
@@ -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);
+1 −1
Original line number Original line Diff line number Diff line
@@ -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.
+4 −0
Original line number Original line Diff line number Diff line
@@ -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 −0
Original line number Original line Diff line number Diff line
/*
 * 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);