diff options
| author | Mathias Nyman <mathias.nyman@linux.intel.com> | 2011-11-15 17:46:52 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2011-12-05 11:09:21 -0500 |
| commit | 35d476996288af6a4aaa8b172bcd31decd233de7 (patch) | |
| tree | 36aecf25db4c224627e4fe1a96c7e2ca44f59602 | |
| parent | a7a280493fb63f8e9fbfc8feec5810bf50e1e54f (diff) | |
x86/rtc, mrst: Don't register a platform RTC device for for Intel MID platforms
Intel MID x86 platforms have a memory mapped virtual RTC
instead. No MID platform have the default ports (and
accessing them may do weird stuff).
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: feng.tang@intel.com
Cc: Feng Tang <feng.tang@intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
| -rw-r--r-- | arch/x86/include/asm/mrst.h | 9 | ||||
| -rw-r--r-- | arch/x86/kernel/rtc.c | 5 |
2 files changed, 14 insertions, 0 deletions
diff --git a/arch/x86/include/asm/mrst.h b/arch/x86/include/asm/mrst.h index e6283129c82..93f79094c22 100644 --- a/arch/x86/include/asm/mrst.h +++ b/arch/x86/include/asm/mrst.h | |||
| @@ -31,11 +31,20 @@ enum mrst_cpu_type { | |||
| 31 | }; | 31 | }; |
| 32 | 32 | ||
| 33 | extern enum mrst_cpu_type __mrst_cpu_chip; | 33 | extern enum mrst_cpu_type __mrst_cpu_chip; |
| 34 | |||
| 35 | #ifdef CONFIG_X86_INTEL_MID | ||
| 36 | |||
| 34 | static inline enum mrst_cpu_type mrst_identify_cpu(void) | 37 | static inline enum mrst_cpu_type mrst_identify_cpu(void) |
| 35 | { | 38 | { |
| 36 | return __mrst_cpu_chip; | 39 | return __mrst_cpu_chip; |
| 37 | } | 40 | } |
| 38 | 41 | ||
| 42 | #else /* !CONFIG_X86_INTEL_MID */ | ||
| 43 | |||
| 44 | #define mrst_identify_cpu() (0) | ||
| 45 | |||
| 46 | #endif /* !CONFIG_X86_INTEL_MID */ | ||
| 47 | |||
| 39 | enum mrst_timer_options { | 48 | enum mrst_timer_options { |
| 40 | MRST_TIMER_DEFAULT, | 49 | MRST_TIMER_DEFAULT, |
| 41 | MRST_TIMER_APBT_ONLY, | 50 | MRST_TIMER_APBT_ONLY, |
diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c index 348ce016a83..af6db6ec5b2 100644 --- a/arch/x86/kernel/rtc.c +++ b/arch/x86/kernel/rtc.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include <asm/vsyscall.h> | 12 | #include <asm/vsyscall.h> |
| 13 | #include <asm/x86_init.h> | 13 | #include <asm/x86_init.h> |
| 14 | #include <asm/time.h> | 14 | #include <asm/time.h> |
| 15 | #include <asm/mrst.h> | ||
| 15 | 16 | ||
| 16 | #ifdef CONFIG_X86_32 | 17 | #ifdef CONFIG_X86_32 |
| 17 | /* | 18 | /* |
| @@ -242,6 +243,10 @@ static __init int add_rtc_cmos(void) | |||
| 242 | if (of_have_populated_dt()) | 243 | if (of_have_populated_dt()) |
| 243 | return 0; | 244 | return 0; |
| 244 | 245 | ||
| 246 | /* Intel MID platforms don't have ioport rtc */ | ||
| 247 | if (mrst_identify_cpu()) | ||
| 248 | return -ENODEV; | ||
| 249 | |||
| 245 | platform_device_register(&rtc_device); | 250 | platform_device_register(&rtc_device); |
| 246 | dev_info(&rtc_device.dev, | 251 | dev_info(&rtc_device.dev, |
| 247 | "registered platform RTC device (no PNP device found)\n"); | 252 | "registered platform RTC device (no PNP device found)\n"); |
