diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-09-08 05:43:49 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-09-08 05:43:49 -0400 |
commit | 1d6ae775d7a948c9575658eb41184fd2e506c0df (patch) | |
tree | 8128a28e89d82f13bb8e3a2160382240c66e2816 /arch/sparc | |
parent | 739cdbf1d8f0739b80035b80d69d871e33749b86 (diff) | |
parent | caf39e87cc1182f7dae84eefc43ca14d54c78ef9 (diff) |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/Kconfig | 4 | ||||
-rw-r--r-- | arch/sparc/kernel/pcic.c | 5 | ||||
-rw-r--r-- | arch/sparc/kernel/sparc_ksyms.c | 1 | ||||
-rw-r--r-- | arch/sparc/kernel/time.c | 7 | ||||
-rw-r--r-- | arch/sparc/mm/generic.c | 57 |
5 files changed, 7 insertions, 67 deletions
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index aca028aa29bf..aba05394d30a 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig | |||
@@ -211,6 +211,10 @@ config GENERIC_CALIBRATE_DELAY | |||
211 | bool | 211 | bool |
212 | default y | 212 | default y |
213 | 213 | ||
214 | config ARCH_MAY_HAVE_PC_FDC | ||
215 | bool | ||
216 | default y | ||
217 | |||
214 | config SUN_PM | 218 | config SUN_PM |
215 | bool | 219 | bool |
216 | default y | 220 | default y |
diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c index 597d3ff6ad68..36a40697b8d6 100644 --- a/arch/sparc/kernel/pcic.c +++ b/arch/sparc/kernel/pcic.c | |||
@@ -840,10 +840,7 @@ static int pci_do_settimeofday(struct timespec *tv) | |||
840 | 840 | ||
841 | xtime.tv_sec = tv->tv_sec; | 841 | xtime.tv_sec = tv->tv_sec; |
842 | xtime.tv_nsec = tv->tv_nsec; | 842 | xtime.tv_nsec = tv->tv_nsec; |
843 | time_adjust = 0; /* stop active adjtime() */ | 843 | ntp_clear(); |
844 | time_status |= STA_UNSYNC; | ||
845 | time_maxerror = NTP_PHASE_LIMIT; | ||
846 | time_esterror = NTP_PHASE_LIMIT; | ||
847 | return 0; | 844 | return 0; |
848 | } | 845 | } |
849 | 846 | ||
diff --git a/arch/sparc/kernel/sparc_ksyms.c b/arch/sparc/kernel/sparc_ksyms.c index 8faa8dc4de43..5d974a2b735a 100644 --- a/arch/sparc/kernel/sparc_ksyms.c +++ b/arch/sparc/kernel/sparc_ksyms.c | |||
@@ -175,7 +175,6 @@ EXPORT_SYMBOL(set_auxio); | |||
175 | EXPORT_SYMBOL(get_auxio); | 175 | EXPORT_SYMBOL(get_auxio); |
176 | #endif | 176 | #endif |
177 | EXPORT_SYMBOL(request_fast_irq); | 177 | EXPORT_SYMBOL(request_fast_irq); |
178 | EXPORT_SYMBOL(io_remap_page_range); | ||
179 | EXPORT_SYMBOL(io_remap_pfn_range); | 178 | EXPORT_SYMBOL(io_remap_pfn_range); |
180 | /* P3: iounit_xxx may be needed, sun4d users */ | 179 | /* P3: iounit_xxx may be needed, sun4d users */ |
181 | /* EXPORT_SYMBOL(iounit_map_dma_init); */ | 180 | /* EXPORT_SYMBOL(iounit_map_dma_init); */ |
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c index 3b759aefc170..bc015e980341 100644 --- a/arch/sparc/kernel/time.c +++ b/arch/sparc/kernel/time.c | |||
@@ -139,7 +139,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs * regs) | |||
139 | 139 | ||
140 | 140 | ||
141 | /* Determine when to update the Mostek clock. */ | 141 | /* Determine when to update the Mostek clock. */ |
142 | if ((time_status & STA_UNSYNC) == 0 && | 142 | if (ntp_synced() && |
143 | xtime.tv_sec > last_rtc_update + 660 && | 143 | xtime.tv_sec > last_rtc_update + 660 && |
144 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && | 144 | (xtime.tv_nsec / 1000) >= 500000 - ((unsigned) TICK_SIZE) / 2 && |
145 | (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) { | 145 | (xtime.tv_nsec / 1000) <= 500000 + ((unsigned) TICK_SIZE) / 2) { |
@@ -554,10 +554,7 @@ static int sbus_do_settimeofday(struct timespec *tv) | |||
554 | set_normalized_timespec(&xtime, sec, nsec); | 554 | set_normalized_timespec(&xtime, sec, nsec); |
555 | set_normalized_timespec(&wall_to_monotonic, wtm_sec, wtm_nsec); | 555 | set_normalized_timespec(&wall_to_monotonic, wtm_sec, wtm_nsec); |
556 | 556 | ||
557 | time_adjust = 0; /* stop active adjtime() */ | 557 | ntp_clear(); |
558 | time_status |= STA_UNSYNC; | ||
559 | time_maxerror = NTP_PHASE_LIMIT; | ||
560 | time_esterror = NTP_PHASE_LIMIT; | ||
561 | return 0; | 558 | return 0; |
562 | } | 559 | } |
563 | 560 | ||
diff --git a/arch/sparc/mm/generic.c b/arch/sparc/mm/generic.c index db27eee3bda1..20ccb957fb77 100644 --- a/arch/sparc/mm/generic.c +++ b/arch/sparc/mm/generic.c | |||
@@ -16,31 +16,6 @@ | |||
16 | #include <asm/cacheflush.h> | 16 | #include <asm/cacheflush.h> |
17 | #include <asm/tlbflush.h> | 17 | #include <asm/tlbflush.h> |
18 | 18 | ||
19 | static inline void forget_pte(pte_t page) | ||
20 | { | ||
21 | #if 0 /* old 2.4 code */ | ||
22 | if (pte_none(page)) | ||
23 | return; | ||
24 | if (pte_present(page)) { | ||
25 | unsigned long pfn = pte_pfn(page); | ||
26 | struct page *ptpage; | ||
27 | if (!pfn_valid(pfn)) | ||
28 | return; | ||
29 | ptpage = pfn_to_page(pfn); | ||
30 | if (PageReserved(ptpage)) | ||
31 | return; | ||
32 | page_cache_release(ptpage); | ||
33 | return; | ||
34 | } | ||
35 | swap_free(pte_to_swp_entry(page)); | ||
36 | #else | ||
37 | if (!pte_none(page)) { | ||
38 | printk("forget_pte: old mapping existed!\n"); | ||
39 | BUG(); | ||
40 | } | ||
41 | #endif | ||
42 | } | ||
43 | |||
44 | /* Remap IO memory, the same way as remap_pfn_range(), but use | 19 | /* Remap IO memory, the same way as remap_pfn_range(), but use |
45 | * the obio memory space. | 20 | * the obio memory space. |
46 | * | 21 | * |
@@ -60,7 +35,6 @@ static inline void io_remap_pte_range(struct mm_struct *mm, pte_t * pte, unsigne | |||
60 | pte_t oldpage = *pte; | 35 | pte_t oldpage = *pte; |
61 | pte_clear(mm, address, pte); | 36 | pte_clear(mm, address, pte); |
62 | set_pte(pte, mk_pte_io(offset, prot, space)); | 37 | set_pte(pte, mk_pte_io(offset, prot, space)); |
63 | forget_pte(oldpage); | ||
64 | address += PAGE_SIZE; | 38 | address += PAGE_SIZE; |
65 | offset += PAGE_SIZE; | 39 | offset += PAGE_SIZE; |
66 | pte++; | 40 | pte++; |
@@ -88,37 +62,6 @@ static inline int io_remap_pmd_range(struct mm_struct *mm, pmd_t * pmd, unsigned | |||
88 | return 0; | 62 | return 0; |
89 | } | 63 | } |
90 | 64 | ||
91 | int io_remap_page_range(struct vm_area_struct *vma, unsigned long from, unsigned long offset, unsigned long size, pgprot_t prot, int space) | ||
92 | { | ||
93 | int error = 0; | ||
94 | pgd_t * dir; | ||
95 | unsigned long beg = from; | ||
96 | unsigned long end = from + size; | ||
97 | struct mm_struct *mm = vma->vm_mm; | ||
98 | |||
99 | prot = __pgprot(pg_iobits); | ||
100 | offset -= from; | ||
101 | dir = pgd_offset(mm, from); | ||
102 | flush_cache_range(vma, beg, end); | ||
103 | |||
104 | spin_lock(&mm->page_table_lock); | ||
105 | while (from < end) { | ||
106 | pmd_t *pmd = pmd_alloc(current->mm, dir, from); | ||
107 | error = -ENOMEM; | ||
108 | if (!pmd) | ||
109 | break; | ||
110 | error = io_remap_pmd_range(mm, pmd, from, end - from, offset + from, prot, space); | ||
111 | if (error) | ||
112 | break; | ||
113 | from = (from + PGDIR_SIZE) & PGDIR_MASK; | ||
114 | dir++; | ||
115 | } | ||
116 | spin_unlock(&mm->page_table_lock); | ||
117 | |||
118 | flush_tlb_range(vma, beg, end); | ||
119 | return error; | ||
120 | } | ||
121 | |||
122 | int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long from, | 65 | int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long from, |
123 | unsigned long pfn, unsigned long size, pgprot_t prot) | 66 | unsigned long pfn, unsigned long size, pgprot_t prot) |
124 | { | 67 | { |