diff options
author | Paul Mackerras <paulus@samba.org> | 2006-03-28 21:24:50 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-03-28 21:24:50 -0500 |
commit | bac30d1a78d0f11c613968fc8b351a91ed465386 (patch) | |
tree | e52f3c876522a2f6047a6ec1c27df2e8a79486b8 /arch/mips | |
parent | e8222502ee6157e2713da9e0792c21f4ad458d50 (diff) | |
parent | ca9ba4471c1203bb6e759b76e83167fec54fe590 (diff) |
Merge ../linux-2.6
Diffstat (limited to 'arch/mips')
28 files changed, 85 insertions, 143 deletions
diff --git a/arch/mips/au1000/common/setup.c b/arch/mips/au1000/common/setup.c index 1080558c8100..307e98c29ddc 100644 --- a/arch/mips/au1000/common/setup.c +++ b/arch/mips/au1000/common/setup.c | |||
@@ -94,7 +94,7 @@ void __init plat_setup(void) | |||
94 | 94 | ||
95 | argptr = prom_getcmdline(); | 95 | argptr = prom_getcmdline(); |
96 | 96 | ||
97 | #if defined(CONFIG_SERIAL_AU1X00_CONSOLE) || defined(CONFIG_SERIAL_8250_CONSOLE) | 97 | #ifdef CONFIG_SERIAL_8250_CONSOLE |
98 | if ((argptr = strstr(argptr, "console=")) == NULL) { | 98 | if ((argptr = strstr(argptr, "console=")) == NULL) { |
99 | argptr = prom_getcmdline(); | 99 | argptr = prom_getcmdline(); |
100 | strcat(argptr, " console=ttyS0,115200"); | 100 | strcat(argptr, " console=ttyS0,115200"); |
diff --git a/arch/mips/ddb5xxx/common/rtc_ds1386.c b/arch/mips/ddb5xxx/common/rtc_ds1386.c index 995896ac0e39..5dc34daa7150 100644 --- a/arch/mips/ddb5xxx/common/rtc_ds1386.c +++ b/arch/mips/ddb5xxx/common/rtc_ds1386.c | |||
@@ -165,6 +165,6 @@ rtc_ds1386_init(unsigned long base) | |||
165 | WRITE_RTC(0xB, byte); | 165 | WRITE_RTC(0xB, byte); |
166 | 166 | ||
167 | /* set the function pointers */ | 167 | /* set the function pointers */ |
168 | rtc_get_time = rtc_ds1386_get_time; | 168 | rtc_mips_get_time = rtc_ds1386_get_time; |
169 | rtc_set_time = rtc_ds1386_set_time; | 169 | rtc_mips_set_time = rtc_ds1386_set_time; |
170 | } | 170 | } |
diff --git a/arch/mips/dec/time.c b/arch/mips/dec/time.c index 174822344131..74cb055d4bf6 100644 --- a/arch/mips/dec/time.c +++ b/arch/mips/dec/time.c | |||
@@ -36,41 +36,13 @@ | |||
36 | #include <asm/dec/ioasic_addrs.h> | 36 | #include <asm/dec/ioasic_addrs.h> |
37 | #include <asm/dec/machtype.h> | 37 | #include <asm/dec/machtype.h> |
38 | 38 | ||
39 | |||
40 | /* | ||
41 | * Returns true if a clock update is in progress | ||
42 | */ | ||
43 | static inline unsigned char dec_rtc_is_updating(void) | ||
44 | { | ||
45 | unsigned char uip; | ||
46 | unsigned long flags; | ||
47 | |||
48 | spin_lock_irqsave(&rtc_lock, flags); | ||
49 | uip = (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP); | ||
50 | spin_unlock_irqrestore(&rtc_lock, flags); | ||
51 | return uip; | ||
52 | } | ||
53 | |||
54 | static unsigned long dec_rtc_get_time(void) | 39 | static unsigned long dec_rtc_get_time(void) |
55 | { | 40 | { |
56 | unsigned int year, mon, day, hour, min, sec, real_year; | 41 | unsigned int year, mon, day, hour, min, sec, real_year; |
57 | int i; | ||
58 | unsigned long flags; | 42 | unsigned long flags; |
59 | 43 | ||
60 | /* The Linux interpretation of the DS1287 clock register contents: | ||
61 | * When the Update-In-Progress (UIP) flag goes from 1 to 0, the | ||
62 | * RTC registers show the second which has precisely just started. | ||
63 | * Let's hope other operating systems interpret the RTC the same way. | ||
64 | */ | ||
65 | /* read RTC exactly on falling edge of update flag */ | ||
66 | for (i = 0; i < 1000000; i++) /* may take up to 1 second... */ | ||
67 | if (dec_rtc_is_updating()) | ||
68 | break; | ||
69 | for (i = 0; i < 1000000; i++) /* must try at least 2.228 ms */ | ||
70 | if (!dec_rtc_is_updating()) | ||
71 | break; | ||
72 | spin_lock_irqsave(&rtc_lock, flags); | 44 | spin_lock_irqsave(&rtc_lock, flags); |
73 | /* Isn't this overkill? UIP above should guarantee consistency */ | 45 | |
74 | do { | 46 | do { |
75 | sec = CMOS_READ(RTC_SECONDS); | 47 | sec = CMOS_READ(RTC_SECONDS); |
76 | min = CMOS_READ(RTC_MINUTES); | 48 | min = CMOS_READ(RTC_MINUTES); |
@@ -78,7 +50,16 @@ static unsigned long dec_rtc_get_time(void) | |||
78 | day = CMOS_READ(RTC_DAY_OF_MONTH); | 50 | day = CMOS_READ(RTC_DAY_OF_MONTH); |
79 | mon = CMOS_READ(RTC_MONTH); | 51 | mon = CMOS_READ(RTC_MONTH); |
80 | year = CMOS_READ(RTC_YEAR); | 52 | year = CMOS_READ(RTC_YEAR); |
53 | /* | ||
54 | * The PROM will reset the year to either '72 or '73. | ||
55 | * Therefore we store the real year separately, in one | ||
56 | * of unused BBU RAM locations. | ||
57 | */ | ||
58 | real_year = CMOS_READ(RTC_DEC_YEAR); | ||
81 | } while (sec != CMOS_READ(RTC_SECONDS)); | 59 | } while (sec != CMOS_READ(RTC_SECONDS)); |
60 | |||
61 | spin_unlock_irqrestore(&rtc_lock, flags); | ||
62 | |||
82 | if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { | 63 | if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { |
83 | sec = BCD2BIN(sec); | 64 | sec = BCD2BIN(sec); |
84 | min = BCD2BIN(min); | 65 | min = BCD2BIN(min); |
@@ -87,13 +68,7 @@ static unsigned long dec_rtc_get_time(void) | |||
87 | mon = BCD2BIN(mon); | 68 | mon = BCD2BIN(mon); |
88 | year = BCD2BIN(year); | 69 | year = BCD2BIN(year); |
89 | } | 70 | } |
90 | /* | 71 | |
91 | * The PROM will reset the year to either '72 or '73. | ||
92 | * Therefore we store the real year separately, in one | ||
93 | * of unused BBU RAM locations. | ||
94 | */ | ||
95 | real_year = CMOS_READ(RTC_DEC_YEAR); | ||
96 | spin_unlock_irqrestore(&rtc_lock, flags); | ||
97 | year += real_year - 72 + 2000; | 72 | year += real_year - 72 + 2000; |
98 | 73 | ||
99 | return mktime(year, mon, day, hour, min, sec); | 74 | return mktime(year, mon, day, hour, min, sec); |
@@ -193,8 +168,8 @@ static void dec_ioasic_hpt_init(unsigned int count) | |||
193 | 168 | ||
194 | void __init dec_time_init(void) | 169 | void __init dec_time_init(void) |
195 | { | 170 | { |
196 | rtc_get_time = dec_rtc_get_time; | 171 | rtc_mips_get_time = dec_rtc_get_time; |
197 | rtc_set_mmss = dec_rtc_set_mmss; | 172 | rtc_mips_set_mmss = dec_rtc_set_mmss; |
198 | 173 | ||
199 | mips_timer_state = dec_timer_state; | 174 | mips_timer_state = dec_timer_state; |
200 | mips_timer_ack = dec_timer_ack; | 175 | mips_timer_ack = dec_timer_ack; |
diff --git a/arch/mips/ite-boards/generic/time.c b/arch/mips/ite-boards/generic/time.c index f5d67ee21ac6..b79817bb6cce 100644 --- a/arch/mips/ite-boards/generic/time.c +++ b/arch/mips/ite-boards/generic/time.c | |||
@@ -227,8 +227,8 @@ void __init it8172_time_init(void) | |||
227 | 227 | ||
228 | local_irq_restore(flags); | 228 | local_irq_restore(flags); |
229 | 229 | ||
230 | rtc_get_time = it8172_rtc_get_time; | 230 | rtc_mips_get_time = it8172_rtc_get_time; |
231 | rtc_set_time = it8172_rtc_set_time; | 231 | rtc_mips_set_time = it8172_rtc_set_time; |
232 | } | 232 | } |
233 | 233 | ||
234 | #define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5) | 234 | #define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5) |
diff --git a/arch/mips/ite-boards/ivr/init.c b/arch/mips/ite-boards/ivr/init.c index ea4e1935fec5..b774db035b31 100644 --- a/arch/mips/ite-boards/ivr/init.c +++ b/arch/mips/ite-boards/ivr/init.c | |||
@@ -45,9 +45,6 @@ extern void __init prom_init_cmdline(void); | |||
45 | extern unsigned long __init prom_get_memsize(void); | 45 | extern unsigned long __init prom_get_memsize(void); |
46 | extern void __init it8172_init_ram_resource(unsigned long memsize); | 46 | extern void __init it8172_init_ram_resource(unsigned long memsize); |
47 | 47 | ||
48 | #define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT) | ||
49 | #define PFN_ALIGN(x) (((unsigned long)(x) + (PAGE_SIZE - 1)) & PAGE_MASK) | ||
50 | |||
51 | const char *get_system_type(void) | 48 | const char *get_system_type(void) |
52 | { | 49 | { |
53 | return "Globespan IVR"; | 50 | return "Globespan IVR"; |
diff --git a/arch/mips/ite-boards/qed-4n-s01b/init.c b/arch/mips/ite-boards/qed-4n-s01b/init.c index 56dca7e0c21d..e8ec8be66a80 100644 --- a/arch/mips/ite-boards/qed-4n-s01b/init.c +++ b/arch/mips/ite-boards/qed-4n-s01b/init.c | |||
@@ -45,9 +45,6 @@ extern void __init prom_init_cmdline(void); | |||
45 | extern unsigned long __init prom_get_memsize(void); | 45 | extern unsigned long __init prom_get_memsize(void); |
46 | extern void __init it8172_init_ram_resource(unsigned long memsize); | 46 | extern void __init it8172_init_ram_resource(unsigned long memsize); |
47 | 47 | ||
48 | #define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT) | ||
49 | #define PFN_ALIGN(x) (((unsigned long)(x) + (PAGE_SIZE - 1)) & PAGE_MASK) | ||
50 | |||
51 | const char *get_system_type(void) | 48 | const char *get_system_type(void) |
52 | { | 49 | { |
53 | return "ITE QED-4N-S01B"; | 50 | return "ITE QED-4N-S01B"; |
diff --git a/arch/mips/jmr3927/common/rtc_ds1742.c b/arch/mips/jmr3927/common/rtc_ds1742.c index 9a8bff153d80..a6bd3f4d3049 100644 --- a/arch/mips/jmr3927/common/rtc_ds1742.c +++ b/arch/mips/jmr3927/common/rtc_ds1742.c | |||
@@ -159,8 +159,8 @@ rtc_ds1742_init(unsigned long base) | |||
159 | db_assert((rtc_base & 0xe0000000) == KSEG1); | 159 | db_assert((rtc_base & 0xe0000000) == KSEG1); |
160 | 160 | ||
161 | /* set the function pointers */ | 161 | /* set the function pointers */ |
162 | rtc_get_time = rtc_ds1742_get_time; | 162 | rtc_mips_get_time = rtc_ds1742_get_time; |
163 | rtc_set_time = rtc_ds1742_set_time; | 163 | rtc_mips_set_time = rtc_ds1742_set_time; |
164 | 164 | ||
165 | /* clear oscillator stop bit */ | 165 | /* clear oscillator stop bit */ |
166 | CMOS_WRITE(RTC_READ, RTC_CONTROL); | 166 | CMOS_WRITE(RTC_READ, RTC_CONTROL); |
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index 0cb3b6097e0e..dcbfd27071f0 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c | |||
@@ -34,6 +34,7 @@ | |||
34 | #include <linux/highmem.h> | 34 | #include <linux/highmem.h> |
35 | #include <linux/console.h> | 35 | #include <linux/console.h> |
36 | #include <linux/mmzone.h> | 36 | #include <linux/mmzone.h> |
37 | #include <linux/pfn.h> | ||
37 | 38 | ||
38 | #include <asm/addrspace.h> | 39 | #include <asm/addrspace.h> |
39 | #include <asm/bootinfo.h> | 40 | #include <asm/bootinfo.h> |
@@ -257,10 +258,6 @@ static inline int parse_rd_cmdline(unsigned long* rd_start, unsigned long* rd_en | |||
257 | return 0; | 258 | return 0; |
258 | } | 259 | } |
259 | 260 | ||
260 | #define PFN_UP(x) (((x) + PAGE_SIZE - 1) >> PAGE_SHIFT) | ||
261 | #define PFN_DOWN(x) ((x) >> PAGE_SHIFT) | ||
262 | #define PFN_PHYS(x) ((x) << PAGE_SHIFT) | ||
263 | |||
264 | #define MAXMEM HIGHMEM_START | 261 | #define MAXMEM HIGHMEM_START |
265 | #define MAXMEM_PFN PFN_DOWN(MAXMEM) | 262 | #define MAXMEM_PFN PFN_DOWN(MAXMEM) |
266 | 263 | ||
@@ -493,10 +490,6 @@ static inline void resource_init(void) | |||
493 | } | 490 | } |
494 | } | 491 | } |
495 | 492 | ||
496 | #undef PFN_UP | ||
497 | #undef PFN_DOWN | ||
498 | #undef PFN_PHYS | ||
499 | |||
500 | #undef MAXMEM | 493 | #undef MAXMEM |
501 | #undef MAXMEM_PFN | 494 | #undef MAXMEM_PFN |
502 | 495 | ||
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c index 51273b7297a7..5e51a2d8f3f0 100644 --- a/arch/mips/kernel/time.c +++ b/arch/mips/kernel/time.c | |||
@@ -65,9 +65,9 @@ static int null_rtc_set_time(unsigned long sec) | |||
65 | return 0; | 65 | return 0; |
66 | } | 66 | } |
67 | 67 | ||
68 | unsigned long (*rtc_get_time)(void) = null_rtc_get_time; | 68 | unsigned long (*rtc_mips_get_time)(void) = null_rtc_get_time; |
69 | int (*rtc_set_time)(unsigned long) = null_rtc_set_time; | 69 | int (*rtc_mips_set_time)(unsigned long) = null_rtc_set_time; |
70 | int (*rtc_set_mmss)(unsigned long); | 70 | int (*rtc_mips_set_mmss)(unsigned long); |
71 | 71 | ||
72 | 72 | ||
73 | /* usecs per counter cycle, shifted to left by 32 bits */ | 73 | /* usecs per counter cycle, shifted to left by 32 bits */ |
@@ -440,14 +440,14 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
440 | 440 | ||
441 | /* | 441 | /* |
442 | * If we have an externally synchronized Linux clock, then update | 442 | * If we have an externally synchronized Linux clock, then update |
443 | * CMOS clock accordingly every ~11 minutes. rtc_set_time() has to be | 443 | * CMOS clock accordingly every ~11 minutes. rtc_mips_set_time() has to be |
444 | * called as close as possible to 500 ms before the new second starts. | 444 | * called as close as possible to 500 ms before the new second starts. |
445 | */ | 445 | */ |
446 | if (ntp_synced() && | 446 | if (ntp_synced() && |
447 | xtime.tv_sec > last_rtc_update + 660 && | 447 | xtime.tv_sec > last_rtc_update + 660 && |
448 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && | 448 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && |
449 | (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) { | 449 | (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) { |
450 | if (rtc_set_mmss(xtime.tv_sec) == 0) { | 450 | if (rtc_mips_set_mmss(xtime.tv_sec) == 0) { |
451 | last_rtc_update = xtime.tv_sec; | 451 | last_rtc_update = xtime.tv_sec; |
452 | } else { | 452 | } else { |
453 | /* do it again in 60 s */ | 453 | /* do it again in 60 s */ |
@@ -565,7 +565,7 @@ asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs) | |||
565 | * b) (optional) calibrate and set the mips_hpt_frequency | 565 | * b) (optional) calibrate and set the mips_hpt_frequency |
566 | * (only needed if you intended to use fixed_rate_gettimeoffset | 566 | * (only needed if you intended to use fixed_rate_gettimeoffset |
567 | * or use cpu counter as timer interrupt source) | 567 | * or use cpu counter as timer interrupt source) |
568 | * 2) setup xtime based on rtc_get_time(). | 568 | * 2) setup xtime based on rtc_mips_get_time(). |
569 | * 3) choose a appropriate gettimeoffset routine. | 569 | * 3) choose a appropriate gettimeoffset routine. |
570 | * 4) calculate a couple of cached variables for later usage | 570 | * 4) calculate a couple of cached variables for later usage |
571 | * 5) board_timer_setup() - | 571 | * 5) board_timer_setup() - |
@@ -633,10 +633,10 @@ void __init time_init(void) | |||
633 | if (board_time_init) | 633 | if (board_time_init) |
634 | board_time_init(); | 634 | board_time_init(); |
635 | 635 | ||
636 | if (!rtc_set_mmss) | 636 | if (!rtc_mips_set_mmss) |
637 | rtc_set_mmss = rtc_set_time; | 637 | rtc_mips_set_mmss = rtc_mips_set_time; |
638 | 638 | ||
639 | xtime.tv_sec = rtc_get_time(); | 639 | xtime.tv_sec = rtc_mips_get_time(); |
640 | xtime.tv_nsec = 0; | 640 | xtime.tv_nsec = 0; |
641 | 641 | ||
642 | set_normalized_timespec(&wall_to_monotonic, | 642 | set_normalized_timespec(&wall_to_monotonic, |
@@ -772,8 +772,8 @@ void to_tm(unsigned long tim, struct rtc_time *tm) | |||
772 | 772 | ||
773 | EXPORT_SYMBOL(rtc_lock); | 773 | EXPORT_SYMBOL(rtc_lock); |
774 | EXPORT_SYMBOL(to_tm); | 774 | EXPORT_SYMBOL(to_tm); |
775 | EXPORT_SYMBOL(rtc_set_time); | 775 | EXPORT_SYMBOL(rtc_mips_set_time); |
776 | EXPORT_SYMBOL(rtc_get_time); | 776 | EXPORT_SYMBOL(rtc_mips_get_time); |
777 | 777 | ||
778 | unsigned long long sched_clock(void) | 778 | unsigned long long sched_clock(void) |
779 | { | 779 | { |
diff --git a/arch/mips/lasat/setup.c b/arch/mips/lasat/setup.c index 83eb08b7a072..bb70a8240e61 100644 --- a/arch/mips/lasat/setup.c +++ b/arch/mips/lasat/setup.c | |||
@@ -165,7 +165,8 @@ void __init plat_setup(void) | |||
165 | 165 | ||
166 | /* Set up panic notifier */ | 166 | /* Set up panic notifier */ |
167 | for (i = 0; i < sizeof(lasat_panic_block) / sizeof(struct notifier_block); i++) | 167 | for (i = 0; i < sizeof(lasat_panic_block) / sizeof(struct notifier_block); i++) |
168 | notifier_chain_register(&panic_notifier_list, &lasat_panic_block[i]); | 168 | atomic_notifier_chain_register(&panic_notifier_list, |
169 | &lasat_panic_block[i]); | ||
169 | 170 | ||
170 | lasat_reboot_setup(); | 171 | lasat_reboot_setup(); |
171 | 172 | ||
@@ -174,8 +175,8 @@ void __init plat_setup(void) | |||
174 | 175 | ||
175 | #ifdef CONFIG_DS1603 | 176 | #ifdef CONFIG_DS1603 |
176 | ds1603 = &ds_defs[mips_machtype]; | 177 | ds1603 = &ds_defs[mips_machtype]; |
177 | rtc_get_time = ds1603_read; | 178 | rtc_mips_get_time = ds1603_read; |
178 | rtc_set_time = ds1603_set; | 179 | rtc_mips_set_time = ds1603_set; |
179 | #endif | 180 | #endif |
180 | 181 | ||
181 | #ifdef DYNAMIC_SERIAL_INIT | 182 | #ifdef DYNAMIC_SERIAL_INIT |
diff --git a/arch/mips/mips-boards/atlas/atlas_setup.c b/arch/mips/mips-boards/atlas/atlas_setup.c index 873cf3141a31..c20d401ecf80 100644 --- a/arch/mips/mips-boards/atlas/atlas_setup.c +++ b/arch/mips/mips-boards/atlas/atlas_setup.c | |||
@@ -65,7 +65,7 @@ void __init plat_setup(void) | |||
65 | 65 | ||
66 | board_time_init = mips_time_init; | 66 | board_time_init = mips_time_init; |
67 | board_timer_setup = mips_timer_setup; | 67 | board_timer_setup = mips_timer_setup; |
68 | rtc_get_time = mips_rtc_get_time; | 68 | rtc_mips_get_time = mips_rtc_get_time; |
69 | } | 69 | } |
70 | 70 | ||
71 | static void __init serial_init(void) | 71 | static void __init serial_init(void) |
diff --git a/arch/mips/mips-boards/generic/memory.c b/arch/mips/mips-boards/generic/memory.c index ee5e70c95cf3..32c9210373ac 100644 --- a/arch/mips/mips-boards/generic/memory.c +++ b/arch/mips/mips-boards/generic/memory.c | |||
@@ -49,9 +49,6 @@ static char *mtypes[3] = { | |||
49 | /* References to section boundaries */ | 49 | /* References to section boundaries */ |
50 | extern char _end; | 50 | extern char _end; |
51 | 51 | ||
52 | #define PFN_ALIGN(x) (((unsigned long)(x) + (PAGE_SIZE - 1)) & PAGE_MASK) | ||
53 | |||
54 | |||
55 | struct prom_pmemblock * __init prom_getmdesc(void) | 52 | struct prom_pmemblock * __init prom_getmdesc(void) |
56 | { | 53 | { |
57 | char *memsize_str; | 54 | char *memsize_str; |
@@ -109,10 +106,10 @@ struct prom_pmemblock * __init prom_getmdesc(void) | |||
109 | 106 | ||
110 | mdesc[3].type = yamon_dontuse; | 107 | mdesc[3].type = yamon_dontuse; |
111 | mdesc[3].base = 0x00100000; | 108 | mdesc[3].base = 0x00100000; |
112 | mdesc[3].size = CPHYSADDR(PFN_ALIGN(&_end)) - mdesc[3].base; | 109 | mdesc[3].size = CPHYSADDR(PAGE_ALIGN(&_end)) - mdesc[3].base; |
113 | 110 | ||
114 | mdesc[4].type = yamon_free; | 111 | mdesc[4].type = yamon_free; |
115 | mdesc[4].base = CPHYSADDR(PFN_ALIGN(&_end)); | 112 | mdesc[4].base = CPHYSADDR(PAGE_ALIGN(&_end)); |
116 | mdesc[4].size = memsize - mdesc[4].base; | 113 | mdesc[4].size = memsize - mdesc[4].base; |
117 | 114 | ||
118 | return &mdesc[0]; | 115 | return &mdesc[0]; |
diff --git a/arch/mips/mips-boards/malta/malta_setup.c b/arch/mips/mips-boards/malta/malta_setup.c index 2209e8a9de34..b8488aab6df1 100644 --- a/arch/mips/mips-boards/malta/malta_setup.c +++ b/arch/mips/mips-boards/malta/malta_setup.c | |||
@@ -225,5 +225,5 @@ void __init plat_setup(void) | |||
225 | 225 | ||
226 | board_time_init = mips_time_init; | 226 | board_time_init = mips_time_init; |
227 | board_timer_setup = mips_timer_setup; | 227 | board_timer_setup = mips_timer_setup; |
228 | rtc_get_time = mips_rtc_get_time; | 228 | rtc_mips_get_time = mips_rtc_get_time; |
229 | } | 229 | } |
diff --git a/arch/mips/mips-boards/sim/sim_mem.c b/arch/mips/mips-boards/sim/sim_mem.c index 1ec4e75656bd..e57f737bab10 100644 --- a/arch/mips/mips-boards/sim/sim_mem.c +++ b/arch/mips/mips-boards/sim/sim_mem.c | |||
@@ -42,9 +42,6 @@ static char *mtypes[3] = { | |||
42 | /* References to section boundaries */ | 42 | /* References to section boundaries */ |
43 | extern char _end; | 43 | extern char _end; |
44 | 44 | ||
45 | #define PFN_ALIGN(x) (((unsigned long)(x) + (PAGE_SIZE - 1)) & PAGE_MASK) | ||
46 | |||
47 | |||
48 | struct prom_pmemblock * __init prom_getmdesc(void) | 45 | struct prom_pmemblock * __init prom_getmdesc(void) |
49 | { | 46 | { |
50 | unsigned int memsize; | 47 | unsigned int memsize; |
@@ -64,10 +61,10 @@ struct prom_pmemblock * __init prom_getmdesc(void) | |||
64 | 61 | ||
65 | mdesc[2].type = simmem_reserved; | 62 | mdesc[2].type = simmem_reserved; |
66 | mdesc[2].base = 0x00100000; | 63 | mdesc[2].base = 0x00100000; |
67 | mdesc[2].size = CPHYSADDR(PFN_ALIGN(&_end)) - mdesc[2].base; | 64 | mdesc[2].size = CPHYSADDR(PAGE_ALIGN(&_end)) - mdesc[2].base; |
68 | 65 | ||
69 | mdesc[3].type = simmem_free; | 66 | mdesc[3].type = simmem_free; |
70 | mdesc[3].base = CPHYSADDR(PFN_ALIGN(&_end)); | 67 | mdesc[3].base = CPHYSADDR(PAGE_ALIGN(&_end)); |
71 | mdesc[3].size = memsize - mdesc[3].base; | 68 | mdesc[3].size = memsize - mdesc[3].base; |
72 | 69 | ||
73 | return &mdesc[0]; | 70 | return &mdesc[0]; |
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index 52f7d59fe612..ad89c442f299 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/highmem.h> | 25 | #include <linux/highmem.h> |
26 | #include <linux/swap.h> | 26 | #include <linux/swap.h> |
27 | #include <linux/proc_fs.h> | 27 | #include <linux/proc_fs.h> |
28 | #include <linux/pfn.h> | ||
28 | 29 | ||
29 | #include <asm/bootinfo.h> | 30 | #include <asm/bootinfo.h> |
30 | #include <asm/cachectl.h> | 31 | #include <asm/cachectl.h> |
@@ -177,9 +178,6 @@ void __init paging_init(void) | |||
177 | free_area_init(zones_size); | 178 | free_area_init(zones_size); |
178 | } | 179 | } |
179 | 180 | ||
180 | #define PFN_UP(x) (((x) + PAGE_SIZE - 1) >> PAGE_SHIFT) | ||
181 | #define PFN_DOWN(x) ((x) >> PAGE_SHIFT) | ||
182 | |||
183 | static inline int page_is_ram(unsigned long pagenr) | 181 | static inline int page_is_ram(unsigned long pagenr) |
184 | { | 182 | { |
185 | int i; | 183 | int i; |
diff --git a/arch/mips/momentum/jaguar_atx/setup.c b/arch/mips/momentum/jaguar_atx/setup.c index 3784c898db1a..91d9637143d7 100644 --- a/arch/mips/momentum/jaguar_atx/setup.c +++ b/arch/mips/momentum/jaguar_atx/setup.c | |||
@@ -229,8 +229,8 @@ void momenco_time_init(void) | |||
229 | mips_hpt_frequency = cpu_clock / 2; | 229 | mips_hpt_frequency = cpu_clock / 2; |
230 | board_timer_setup = momenco_timer_setup; | 230 | board_timer_setup = momenco_timer_setup; |
231 | 231 | ||
232 | rtc_get_time = m48t37y_get_time; | 232 | rtc_mips_get_time = m48t37y_get_time; |
233 | rtc_set_time = m48t37y_set_time; | 233 | rtc_mips_set_time = m48t37y_set_time; |
234 | } | 234 | } |
235 | 235 | ||
236 | static struct resource mv_pci_io_mem0_resource = { | 236 | static struct resource mv_pci_io_mem0_resource = { |
diff --git a/arch/mips/momentum/ocelot_3/setup.c b/arch/mips/momentum/ocelot_3/setup.c index f95677f4f06f..370e75d0e75c 100644 --- a/arch/mips/momentum/ocelot_3/setup.c +++ b/arch/mips/momentum/ocelot_3/setup.c | |||
@@ -58,6 +58,7 @@ | |||
58 | #include <linux/bootmem.h> | 58 | #include <linux/bootmem.h> |
59 | #include <linux/mv643xx.h> | 59 | #include <linux/mv643xx.h> |
60 | #include <linux/pm.h> | 60 | #include <linux/pm.h> |
61 | #include <linux/bcd.h> | ||
61 | 62 | ||
62 | #include <asm/time.h> | 63 | #include <asm/time.h> |
63 | #include <asm/page.h> | 64 | #include <asm/page.h> |
@@ -131,9 +132,6 @@ void setup_wired_tlb_entries(void) | |||
131 | add_wired_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfd000000), (signed)0xfc000000, PM_16M); | 132 | add_wired_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfd000000), (signed)0xfc000000, PM_16M); |
132 | } | 133 | } |
133 | 134 | ||
134 | #define CONV_BCD_TO_BIN(val) (((val) & 0xf) + (((val) >> 4) * 10)) | ||
135 | #define CONV_BIN_TO_BCD(val) (((val) % 10) + (((val) / 10) << 4)) | ||
136 | |||
137 | unsigned long m48t37y_get_time(void) | 135 | unsigned long m48t37y_get_time(void) |
138 | { | 136 | { |
139 | unsigned int year, month, day, hour, min, sec; | 137 | unsigned int year, month, day, hour, min, sec; |
@@ -143,16 +141,16 @@ unsigned long m48t37y_get_time(void) | |||
143 | /* stop the update */ | 141 | /* stop the update */ |
144 | rtc_base[0x7ff8] = 0x40; | 142 | rtc_base[0x7ff8] = 0x40; |
145 | 143 | ||
146 | year = CONV_BCD_TO_BIN(rtc_base[0x7fff]); | 144 | year = BCD2BIN(rtc_base[0x7fff]); |
147 | year += CONV_BCD_TO_BIN(rtc_base[0x7ff1]) * 100; | 145 | year += BCD2BIN(rtc_base[0x7ff1]) * 100; |
148 | 146 | ||
149 | month = CONV_BCD_TO_BIN(rtc_base[0x7ffe]); | 147 | month = BCD2BIN(rtc_base[0x7ffe]); |
150 | 148 | ||
151 | day = CONV_BCD_TO_BIN(rtc_base[0x7ffd]); | 149 | day = BCD2BIN(rtc_base[0x7ffd]); |
152 | 150 | ||
153 | hour = CONV_BCD_TO_BIN(rtc_base[0x7ffb]); | 151 | hour = BCD2BIN(rtc_base[0x7ffb]); |
154 | min = CONV_BCD_TO_BIN(rtc_base[0x7ffa]); | 152 | min = BCD2BIN(rtc_base[0x7ffa]); |
155 | sec = CONV_BCD_TO_BIN(rtc_base[0x7ff9]); | 153 | sec = BCD2BIN(rtc_base[0x7ff9]); |
156 | 154 | ||
157 | /* start the update */ | 155 | /* start the update */ |
158 | rtc_base[0x7ff8] = 0x00; | 156 | rtc_base[0x7ff8] = 0x00; |
@@ -175,22 +173,22 @@ int m48t37y_set_time(unsigned long sec) | |||
175 | rtc_base[0x7ff8] = 0x80; | 173 | rtc_base[0x7ff8] = 0x80; |
176 | 174 | ||
177 | /* year */ | 175 | /* year */ |
178 | rtc_base[0x7fff] = CONV_BIN_TO_BCD(tm.tm_year % 100); | 176 | rtc_base[0x7fff] = BIN2BCD(tm.tm_year % 100); |
179 | rtc_base[0x7ff1] = CONV_BIN_TO_BCD(tm.tm_year / 100); | 177 | rtc_base[0x7ff1] = BIN2BCD(tm.tm_year / 100); |
180 | 178 | ||
181 | /* month */ | 179 | /* month */ |
182 | rtc_base[0x7ffe] = CONV_BIN_TO_BCD(tm.tm_mon); | 180 | rtc_base[0x7ffe] = BIN2BCD(tm.tm_mon); |
183 | 181 | ||
184 | /* day */ | 182 | /* day */ |
185 | rtc_base[0x7ffd] = CONV_BIN_TO_BCD(tm.tm_mday); | 183 | rtc_base[0x7ffd] = BIN2BCD(tm.tm_mday); |
186 | 184 | ||
187 | /* hour/min/sec */ | 185 | /* hour/min/sec */ |
188 | rtc_base[0x7ffb] = CONV_BIN_TO_BCD(tm.tm_hour); | 186 | rtc_base[0x7ffb] = BIN2BCD(tm.tm_hour); |
189 | rtc_base[0x7ffa] = CONV_BIN_TO_BCD(tm.tm_min); | 187 | rtc_base[0x7ffa] = BIN2BCD(tm.tm_min); |
190 | rtc_base[0x7ff9] = CONV_BIN_TO_BCD(tm.tm_sec); | 188 | rtc_base[0x7ff9] = BIN2BCD(tm.tm_sec); |
191 | 189 | ||
192 | /* day of week -- not really used, but let's keep it up-to-date */ | 190 | /* day of week -- not really used, but let's keep it up-to-date */ |
193 | rtc_base[0x7ffc] = CONV_BIN_TO_BCD(tm.tm_wday + 1); | 191 | rtc_base[0x7ffc] = BIN2BCD(tm.tm_wday + 1); |
194 | 192 | ||
195 | /* disable writing */ | 193 | /* disable writing */ |
196 | rtc_base[0x7ff8] = 0x00; | 194 | rtc_base[0x7ff8] = 0x00; |
@@ -215,8 +213,8 @@ void momenco_time_init(void) | |||
215 | mips_hpt_frequency = cpu_clock / 2; | 213 | mips_hpt_frequency = cpu_clock / 2; |
216 | board_timer_setup = momenco_timer_setup; | 214 | board_timer_setup = momenco_timer_setup; |
217 | 215 | ||
218 | rtc_get_time = m48t37y_get_time; | 216 | rtc_mips_get_time = m48t37y_get_time; |
219 | rtc_set_time = m48t37y_set_time; | 217 | rtc_mips_set_time = m48t37y_set_time; |
220 | } | 218 | } |
221 | 219 | ||
222 | /* | 220 | /* |
diff --git a/arch/mips/momentum/ocelot_c/setup.c b/arch/mips/momentum/ocelot_c/setup.c index bd02e60d037a..a3e6f5575592 100644 --- a/arch/mips/momentum/ocelot_c/setup.c +++ b/arch/mips/momentum/ocelot_c/setup.c | |||
@@ -227,8 +227,8 @@ void momenco_time_init(void) | |||
227 | printk("momenco_time_init cpu_clock=%d\n", cpu_clock); | 227 | printk("momenco_time_init cpu_clock=%d\n", cpu_clock); |
228 | board_timer_setup = momenco_timer_setup; | 228 | board_timer_setup = momenco_timer_setup; |
229 | 229 | ||
230 | rtc_get_time = m48t37y_get_time; | 230 | rtc_mips_get_time = m48t37y_get_time; |
231 | rtc_set_time = m48t37y_set_time; | 231 | rtc_mips_set_time = m48t37y_set_time; |
232 | } | 232 | } |
233 | 233 | ||
234 | void __init plat_setup(void) | 234 | void __init plat_setup(void) |
diff --git a/arch/mips/pmc-sierra/yosemite/setup.c b/arch/mips/pmc-sierra/yosemite/setup.c index 8bce711575de..3f724d661bdb 100644 --- a/arch/mips/pmc-sierra/yosemite/setup.c +++ b/arch/mips/pmc-sierra/yosemite/setup.c | |||
@@ -198,8 +198,8 @@ static void __init py_rtc_setup(void) | |||
198 | if (!m48t37_base) | 198 | if (!m48t37_base) |
199 | printk(KERN_ERR "Mapping the RTC failed\n"); | 199 | printk(KERN_ERR "Mapping the RTC failed\n"); |
200 | 200 | ||
201 | rtc_get_time = m48t37y_get_time; | 201 | rtc_mips_get_time = m48t37y_get_time; |
202 | rtc_set_time = m48t37y_set_time; | 202 | rtc_mips_set_time = m48t37y_set_time; |
203 | 203 | ||
204 | write_seqlock(&xtime_lock); | 204 | write_seqlock(&xtime_lock); |
205 | xtime.tv_sec = m48t37y_get_time(); | 205 | xtime.tv_sec = m48t37y_get_time(); |
diff --git a/arch/mips/sgi-ip22/ip22-reset.c b/arch/mips/sgi-ip22/ip22-reset.c index 92a3b3c15ed3..a9c58e067b53 100644 --- a/arch/mips/sgi-ip22/ip22-reset.c +++ b/arch/mips/sgi-ip22/ip22-reset.c | |||
@@ -238,7 +238,7 @@ static int __init reboot_setup(void) | |||
238 | request_irq(SGI_PANEL_IRQ, panel_int, 0, "Front Panel", NULL); | 238 | request_irq(SGI_PANEL_IRQ, panel_int, 0, "Front Panel", NULL); |
239 | init_timer(&blink_timer); | 239 | init_timer(&blink_timer); |
240 | blink_timer.function = blink_timeout; | 240 | blink_timer.function = blink_timeout; |
241 | notifier_chain_register(&panic_notifier_list, &panic_block); | 241 | atomic_notifier_chain_register(&panic_notifier_list, &panic_block); |
242 | 242 | ||
243 | return 0; | 243 | return 0; |
244 | } | 244 | } |
diff --git a/arch/mips/sgi-ip22/ip22-time.c b/arch/mips/sgi-ip22/ip22-time.c index b7300cc5c5ad..cca688ad64ad 100644 --- a/arch/mips/sgi-ip22/ip22-time.c +++ b/arch/mips/sgi-ip22/ip22-time.c | |||
@@ -212,8 +212,8 @@ static void indy_timer_setup(struct irqaction *irq) | |||
212 | void __init ip22_time_init(void) | 212 | void __init ip22_time_init(void) |
213 | { | 213 | { |
214 | /* setup hookup functions */ | 214 | /* setup hookup functions */ |
215 | rtc_get_time = indy_rtc_get_time; | 215 | rtc_mips_get_time = indy_rtc_get_time; |
216 | rtc_set_time = indy_rtc_set_time; | 216 | rtc_mips_set_time = indy_rtc_set_time; |
217 | 217 | ||
218 | board_time_init = indy_time_init; | 218 | board_time_init = indy_time_init; |
219 | board_timer_setup = indy_timer_setup; | 219 | board_timer_setup = indy_timer_setup; |
diff --git a/arch/mips/sgi-ip27/ip27-memory.c b/arch/mips/sgi-ip27/ip27-memory.c index e0d095daa5ed..6c00dce9f73f 100644 --- a/arch/mips/sgi-ip27/ip27-memory.c +++ b/arch/mips/sgi-ip27/ip27-memory.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/nodemask.h> | 19 | #include <linux/nodemask.h> |
20 | #include <linux/swap.h> | 20 | #include <linux/swap.h> |
21 | #include <linux/bootmem.h> | 21 | #include <linux/bootmem.h> |
22 | #include <linux/pfn.h> | ||
22 | #include <asm/page.h> | 23 | #include <asm/page.h> |
23 | #include <asm/sections.h> | 24 | #include <asm/sections.h> |
24 | 25 | ||
@@ -28,8 +29,6 @@ | |||
28 | #include <asm/sn/sn_private.h> | 29 | #include <asm/sn/sn_private.h> |
29 | 30 | ||
30 | 31 | ||
31 | #define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT) | ||
32 | |||
33 | #define SLOT_PFNSHIFT (SLOT_SHIFT - PAGE_SHIFT) | 32 | #define SLOT_PFNSHIFT (SLOT_SHIFT - PAGE_SHIFT) |
34 | #define PFN_NASIDSHFT (NASID_SHFT - PAGE_SHIFT) | 33 | #define PFN_NASIDSHFT (NASID_SHFT - PAGE_SHIFT) |
35 | 34 | ||
diff --git a/arch/mips/sgi-ip32/ip32-reset.c b/arch/mips/sgi-ip32/ip32-reset.c index 0c948008b023..ab9d9cef089e 100644 --- a/arch/mips/sgi-ip32/ip32-reset.c +++ b/arch/mips/sgi-ip32/ip32-reset.c | |||
@@ -193,7 +193,7 @@ static __init int ip32_reboot_setup(void) | |||
193 | 193 | ||
194 | init_timer(&blink_timer); | 194 | init_timer(&blink_timer); |
195 | blink_timer.function = blink_timeout; | 195 | blink_timer.function = blink_timeout; |
196 | notifier_chain_register(&panic_notifier_list, &panic_block); | 196 | atomic_notifier_chain_register(&panic_notifier_list, &panic_block); |
197 | 197 | ||
198 | request_irq(MACEISA_RTC_IRQ, ip32_rtc_int, 0, "rtc", NULL); | 198 | request_irq(MACEISA_RTC_IRQ, ip32_rtc_int, 0, "rtc", NULL); |
199 | 199 | ||
diff --git a/arch/mips/sgi-ip32/ip32-setup.c b/arch/mips/sgi-ip32/ip32-setup.c index 2f50c79b7887..a2dd8ae1ea8f 100644 --- a/arch/mips/sgi-ip32/ip32-setup.c +++ b/arch/mips/sgi-ip32/ip32-setup.c | |||
@@ -91,8 +91,8 @@ void __init plat_setup(void) | |||
91 | { | 91 | { |
92 | board_be_init = ip32_be_init; | 92 | board_be_init = ip32_be_init; |
93 | 93 | ||
94 | rtc_get_time = mc146818_get_cmos_time; | 94 | rtc_mips_get_time = mc146818_get_cmos_time; |
95 | rtc_set_mmss = mc146818_set_rtc_mmss; | 95 | rtc_mips_set_mmss = mc146818_set_rtc_mmss; |
96 | 96 | ||
97 | board_time_init = ip32_time_init; | 97 | board_time_init = ip32_time_init; |
98 | board_timer_setup = ip32_timer_setup; | 98 | board_timer_setup = ip32_timer_setup; |
diff --git a/arch/mips/sibyte/swarm/setup.c b/arch/mips/sibyte/swarm/setup.c index b661d2425a36..4b5f74ff3edd 100644 --- a/arch/mips/sibyte/swarm/setup.c +++ b/arch/mips/sibyte/swarm/setup.c | |||
@@ -121,14 +121,14 @@ void __init plat_setup(void) | |||
121 | 121 | ||
122 | if (xicor_probe()) { | 122 | if (xicor_probe()) { |
123 | printk("swarm setup: Xicor 1241 RTC detected.\n"); | 123 | printk("swarm setup: Xicor 1241 RTC detected.\n"); |
124 | rtc_get_time = xicor_get_time; | 124 | rtc_mips_get_time = xicor_get_time; |
125 | rtc_set_time = xicor_set_time; | 125 | rtc_mips_set_time = xicor_set_time; |
126 | } | 126 | } |
127 | 127 | ||
128 | if (m41t81_probe()) { | 128 | if (m41t81_probe()) { |
129 | printk("swarm setup: M41T81 RTC detected.\n"); | 129 | printk("swarm setup: M41T81 RTC detected.\n"); |
130 | rtc_get_time = m41t81_get_time; | 130 | rtc_mips_get_time = m41t81_get_time; |
131 | rtc_set_time = m41t81_set_time; | 131 | rtc_mips_set_time = m41t81_set_time; |
132 | } | 132 | } |
133 | 133 | ||
134 | printk("This kernel optimized for " | 134 | printk("This kernel optimized for " |
diff --git a/arch/mips/sni/setup.c b/arch/mips/sni/setup.c index 1141fcd13a59..01ba6c581e3d 100644 --- a/arch/mips/sni/setup.c +++ b/arch/mips/sni/setup.c | |||
@@ -164,8 +164,8 @@ static struct pci_controller sni_controller = { | |||
164 | 164 | ||
165 | static inline void sni_pcimt_time_init(void) | 165 | static inline void sni_pcimt_time_init(void) |
166 | { | 166 | { |
167 | rtc_get_time = mc146818_get_cmos_time; | 167 | rtc_mips_get_time = mc146818_get_cmos_time; |
168 | rtc_set_time = mc146818_set_rtc_mmss; | 168 | rtc_mips_set_time = mc146818_set_rtc_mmss; |
169 | } | 169 | } |
170 | 170 | ||
171 | void __init plat_setup(void) | 171 | void __init plat_setup(void) |
diff --git a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c index 2ad6401d2af4..6dcf077f61a0 100644 --- a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c +++ b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c | |||
@@ -1036,8 +1036,8 @@ toshiba_rbtx4927_time_init(void) | |||
1036 | 1036 | ||
1037 | #ifdef CONFIG_RTC_DS1742 | 1037 | #ifdef CONFIG_RTC_DS1742 |
1038 | 1038 | ||
1039 | rtc_get_time = rtc_ds1742_get_time; | 1039 | rtc_mips_get_time = rtc_ds1742_get_time; |
1040 | rtc_set_time = rtc_ds1742_set_time; | 1040 | rtc_mips_set_time = rtc_ds1742_set_time; |
1041 | 1041 | ||
1042 | TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_TIME_INIT, | 1042 | TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_TIME_INIT, |
1043 | ":rtc_ds1742_init()-\n"); | 1043 | ":rtc_ds1742_init()-\n"); |
diff --git a/arch/mips/tx4938/common/rtc_rx5c348.c b/arch/mips/tx4938/common/rtc_rx5c348.c index d249edbb6af4..07f782fc0725 100644 --- a/arch/mips/tx4938/common/rtc_rx5c348.c +++ b/arch/mips/tx4938/common/rtc_rx5c348.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/string.h> | 14 | #include <linux/string.h> |
15 | #include <linux/rtc.h> | 15 | #include <linux/rtc.h> |
16 | #include <linux/time.h> | 16 | #include <linux/time.h> |
17 | #include <linux/bcd.h> | ||
17 | #include <asm/time.h> | 18 | #include <asm/time.h> |
18 | #include <asm/tx4938/spi.h> | 19 | #include <asm/tx4938/spi.h> |
19 | 20 | ||
@@ -77,17 +78,6 @@ spi_rtc_io(unsigned char *inbuf, unsigned char *outbuf, unsigned int count) | |||
77 | inbufs, incounts, outbufs, outcounts, 0); | 78 | inbufs, incounts, outbufs, outcounts, 0); |
78 | } | 79 | } |
79 | 80 | ||
80 | /* | ||
81 | * Conversion between binary and BCD. | ||
82 | */ | ||
83 | #ifndef BCD_TO_BIN | ||
84 | #define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10) | ||
85 | #endif | ||
86 | |||
87 | #ifndef BIN_TO_BCD | ||
88 | #define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10) | ||
89 | #endif | ||
90 | |||
91 | /* RTC-dependent code for time.c */ | 81 | /* RTC-dependent code for time.c */ |
92 | 82 | ||
93 | static int | 83 | static int |
@@ -197,6 +187,6 @@ rtc_rx5c348_init(int chipid) | |||
197 | srtc_24h = 1; | 187 | srtc_24h = 1; |
198 | 188 | ||
199 | /* set the function pointers */ | 189 | /* set the function pointers */ |
200 | rtc_get_time = rtc_rx5c348_get_time; | 190 | rtc_mips_get_time = rtc_rx5c348_get_time; |
201 | rtc_set_time = rtc_rx5c348_set_time; | 191 | rtc_mips_set_time = rtc_rx5c348_set_time; |
202 | } | 192 | } |