diff options
Diffstat (limited to 'arch/arm/include')
-rw-r--r-- | arch/arm/include/asm/bitops.h | 86 | ||||
-rw-r--r-- | arch/arm/include/asm/localtimer.h | 8 | ||||
-rw-r--r-- | arch/arm/include/asm/outercache.h | 14 | ||||
-rw-r--r-- | arch/arm/include/asm/pgtable.h | 3 | ||||
-rw-r--r-- | arch/arm/include/asm/setup.h | 2 | ||||
-rw-r--r-- | arch/arm/include/asm/types.h | 6 |
6 files changed, 72 insertions, 47 deletions
diff --git a/arch/arm/include/asm/bitops.h b/arch/arm/include/asm/bitops.h index af54ed102f5f..6b7403fd8f54 100644 --- a/arch/arm/include/asm/bitops.h +++ b/arch/arm/include/asm/bitops.h | |||
@@ -287,41 +287,63 @@ static inline int fls(int x) | |||
287 | #include <asm-generic/bitops/hweight.h> | 287 | #include <asm-generic/bitops/hweight.h> |
288 | #include <asm-generic/bitops/lock.h> | 288 | #include <asm-generic/bitops/lock.h> |
289 | 289 | ||
290 | /* | 290 | static inline void __set_bit_le(int nr, void *addr) |
291 | * Ext2 is defined to use little-endian byte ordering. | 291 | { |
292 | * These do not need to be atomic. | 292 | __set_bit(WORD_BITOFF_TO_LE(nr), addr); |
293 | */ | 293 | } |
294 | #define ext2_set_bit(nr,p) \ | 294 | |
295 | __test_and_set_bit(WORD_BITOFF_TO_LE(nr), (unsigned long *)(p)) | 295 | static inline void __clear_bit_le(int nr, void *addr) |
296 | #define ext2_set_bit_atomic(lock,nr,p) \ | 296 | { |
297 | test_and_set_bit(WORD_BITOFF_TO_LE(nr), (unsigned long *)(p)) | 297 | __clear_bit(WORD_BITOFF_TO_LE(nr), addr); |
298 | #define ext2_clear_bit(nr,p) \ | 298 | } |
299 | __test_and_clear_bit(WORD_BITOFF_TO_LE(nr), (unsigned long *)(p)) | 299 | |
300 | #define ext2_clear_bit_atomic(lock,nr,p) \ | 300 | static inline int __test_and_set_bit_le(int nr, void *addr) |
301 | test_and_clear_bit(WORD_BITOFF_TO_LE(nr), (unsigned long *)(p)) | 301 | { |
302 | #define ext2_test_bit(nr,p) \ | 302 | return __test_and_set_bit(WORD_BITOFF_TO_LE(nr), addr); |
303 | test_bit(WORD_BITOFF_TO_LE(nr), (unsigned long *)(p)) | 303 | } |
304 | #define ext2_find_first_zero_bit(p,sz) \ | 304 | |
305 | _find_first_zero_bit_le(p,sz) | 305 | static inline int test_and_set_bit_le(int nr, void *addr) |
306 | #define ext2_find_next_zero_bit(p,sz,off) \ | 306 | { |
307 | _find_next_zero_bit_le(p,sz,off) | 307 | return test_and_set_bit(WORD_BITOFF_TO_LE(nr), addr); |
308 | #define ext2_find_next_bit(p, sz, off) \ | 308 | } |
309 | _find_next_bit_le(p, sz, off) | 309 | |
310 | static inline int __test_and_clear_bit_le(int nr, void *addr) | ||
311 | { | ||
312 | return __test_and_clear_bit(WORD_BITOFF_TO_LE(nr), addr); | ||
313 | } | ||
314 | |||
315 | static inline int test_and_clear_bit_le(int nr, void *addr) | ||
316 | { | ||
317 | return test_and_clear_bit(WORD_BITOFF_TO_LE(nr), addr); | ||
318 | } | ||
319 | |||
320 | static inline int test_bit_le(int nr, const void *addr) | ||
321 | { | ||
322 | return test_bit(WORD_BITOFF_TO_LE(nr), addr); | ||
323 | } | ||
324 | |||
325 | static inline int find_first_zero_bit_le(const void *p, unsigned size) | ||
326 | { | ||
327 | return _find_first_zero_bit_le(p, size); | ||
328 | } | ||
329 | |||
330 | static inline int find_next_zero_bit_le(const void *p, int size, int offset) | ||
331 | { | ||
332 | return _find_next_zero_bit_le(p, size, offset); | ||
333 | } | ||
334 | |||
335 | static inline int find_next_bit_le(const void *p, int size, int offset) | ||
336 | { | ||
337 | return _find_next_bit_le(p, size, offset); | ||
338 | } | ||
310 | 339 | ||
311 | /* | 340 | /* |
312 | * Minix is defined to use little-endian byte ordering. | 341 | * Ext2 is defined to use little-endian byte ordering. |
313 | * These do not need to be atomic. | ||
314 | */ | 342 | */ |
315 | #define minix_set_bit(nr,p) \ | 343 | #define ext2_set_bit_atomic(lock, nr, p) \ |
316 | __set_bit(WORD_BITOFF_TO_LE(nr), (unsigned long *)(p)) | 344 | test_and_set_bit_le(nr, p) |
317 | #define minix_test_bit(nr,p) \ | 345 | #define ext2_clear_bit_atomic(lock, nr, p) \ |
318 | test_bit(WORD_BITOFF_TO_LE(nr), (unsigned long *)(p)) | 346 | test_and_clear_bit_le(nr, p) |
319 | #define minix_test_and_set_bit(nr,p) \ | ||
320 | __test_and_set_bit(WORD_BITOFF_TO_LE(nr), (unsigned long *)(p)) | ||
321 | #define minix_test_and_clear_bit(nr,p) \ | ||
322 | __test_and_clear_bit(WORD_BITOFF_TO_LE(nr), (unsigned long *)(p)) | ||
323 | #define minix_find_first_zero_bit(p,sz) \ | ||
324 | _find_first_zero_bit_le(p,sz) | ||
325 | 347 | ||
326 | #endif /* __KERNEL__ */ | 348 | #endif /* __KERNEL__ */ |
327 | 349 | ||
diff --git a/arch/arm/include/asm/localtimer.h b/arch/arm/include/asm/localtimer.h index 6bc63ab498ce..080d74f8128d 100644 --- a/arch/arm/include/asm/localtimer.h +++ b/arch/arm/include/asm/localtimer.h | |||
@@ -44,8 +44,14 @@ int local_timer_ack(void); | |||
44 | /* | 44 | /* |
45 | * Setup a local timer interrupt for a CPU. | 45 | * Setup a local timer interrupt for a CPU. |
46 | */ | 46 | */ |
47 | void local_timer_setup(struct clock_event_device *); | 47 | int local_timer_setup(struct clock_event_device *); |
48 | 48 | ||
49 | #else | ||
50 | |||
51 | static inline int local_timer_setup(struct clock_event_device *evt) | ||
52 | { | ||
53 | return -ENXIO; | ||
54 | } | ||
49 | #endif | 55 | #endif |
50 | 56 | ||
51 | #endif | 57 | #endif |
diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h index 348d513afa92..d8387437ec5a 100644 --- a/arch/arm/include/asm/outercache.h +++ b/arch/arm/include/asm/outercache.h | |||
@@ -21,6 +21,8 @@ | |||
21 | #ifndef __ASM_OUTERCACHE_H | 21 | #ifndef __ASM_OUTERCACHE_H |
22 | #define __ASM_OUTERCACHE_H | 22 | #define __ASM_OUTERCACHE_H |
23 | 23 | ||
24 | #include <linux/types.h> | ||
25 | |||
24 | struct outer_cache_fns { | 26 | struct outer_cache_fns { |
25 | void (*inv_range)(unsigned long, unsigned long); | 27 | void (*inv_range)(unsigned long, unsigned long); |
26 | void (*clean_range)(unsigned long, unsigned long); | 28 | void (*clean_range)(unsigned long, unsigned long); |
@@ -38,17 +40,17 @@ struct outer_cache_fns { | |||
38 | 40 | ||
39 | extern struct outer_cache_fns outer_cache; | 41 | extern struct outer_cache_fns outer_cache; |
40 | 42 | ||
41 | static inline void outer_inv_range(unsigned long start, unsigned long end) | 43 | static inline void outer_inv_range(phys_addr_t start, phys_addr_t end) |
42 | { | 44 | { |
43 | if (outer_cache.inv_range) | 45 | if (outer_cache.inv_range) |
44 | outer_cache.inv_range(start, end); | 46 | outer_cache.inv_range(start, end); |
45 | } | 47 | } |
46 | static inline void outer_clean_range(unsigned long start, unsigned long end) | 48 | static inline void outer_clean_range(phys_addr_t start, phys_addr_t end) |
47 | { | 49 | { |
48 | if (outer_cache.clean_range) | 50 | if (outer_cache.clean_range) |
49 | outer_cache.clean_range(start, end); | 51 | outer_cache.clean_range(start, end); |
50 | } | 52 | } |
51 | static inline void outer_flush_range(unsigned long start, unsigned long end) | 53 | static inline void outer_flush_range(phys_addr_t start, phys_addr_t end) |
52 | { | 54 | { |
53 | if (outer_cache.flush_range) | 55 | if (outer_cache.flush_range) |
54 | outer_cache.flush_range(start, end); | 56 | outer_cache.flush_range(start, end); |
@@ -74,11 +76,11 @@ static inline void outer_disable(void) | |||
74 | 76 | ||
75 | #else | 77 | #else |
76 | 78 | ||
77 | static inline void outer_inv_range(unsigned long start, unsigned long end) | 79 | static inline void outer_inv_range(phys_addr_t start, phys_addr_t end) |
78 | { } | 80 | { } |
79 | static inline void outer_clean_range(unsigned long start, unsigned long end) | 81 | static inline void outer_clean_range(phys_addr_t start, phys_addr_t end) |
80 | { } | 82 | { } |
81 | static inline void outer_flush_range(unsigned long start, unsigned long end) | 83 | static inline void outer_flush_range(phys_addr_t start, phys_addr_t end) |
82 | { } | 84 | { } |
83 | static inline void outer_flush_all(void) { } | 85 | static inline void outer_flush_all(void) { } |
84 | static inline void outer_inv_all(void) { } | 86 | static inline void outer_inv_all(void) { } |
diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h index ebcb6432f45f..5750704e0271 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h | |||
@@ -301,6 +301,7 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; | |||
301 | #define pgd_present(pgd) (1) | 301 | #define pgd_present(pgd) (1) |
302 | #define pgd_clear(pgdp) do { } while (0) | 302 | #define pgd_clear(pgdp) do { } while (0) |
303 | #define set_pgd(pgd,pgdp) do { } while (0) | 303 | #define set_pgd(pgd,pgdp) do { } while (0) |
304 | #define set_pud(pud,pudp) do { } while (0) | ||
304 | 305 | ||
305 | 306 | ||
306 | /* Find an entry in the second-level page table.. */ | 307 | /* Find an entry in the second-level page table.. */ |
@@ -351,7 +352,7 @@ static inline pte_t *pmd_page_vaddr(pmd_t pmd) | |||
351 | #define pte_unmap(pte) __pte_unmap(pte) | 352 | #define pte_unmap(pte) __pte_unmap(pte) |
352 | 353 | ||
353 | #define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT) | 354 | #define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT) |
354 | #define pfn_pte(pfn,prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)) | 355 | #define pfn_pte(pfn,prot) __pte(__pfn_to_phys(pfn) | pgprot_val(prot)) |
355 | 356 | ||
356 | #define pte_page(pte) pfn_to_page(pte_pfn(pte)) | 357 | #define pte_page(pte) pfn_to_page(pte_pfn(pte)) |
357 | #define mk_pte(page,prot) pfn_pte(page_to_pfn(page), prot) | 358 | #define mk_pte(page,prot) pfn_pte(page_to_pfn(page), prot) |
diff --git a/arch/arm/include/asm/setup.h b/arch/arm/include/asm/setup.h index da8b52ec49cf..95176af3df8c 100644 --- a/arch/arm/include/asm/setup.h +++ b/arch/arm/include/asm/setup.h | |||
@@ -195,7 +195,7 @@ static struct tagtable __tagtable_##fn __tag = { tag, fn } | |||
195 | #define NR_BANKS 8 | 195 | #define NR_BANKS 8 |
196 | 196 | ||
197 | struct membank { | 197 | struct membank { |
198 | unsigned long start; | 198 | phys_addr_t start; |
199 | unsigned long size; | 199 | unsigned long size; |
200 | unsigned int highmem; | 200 | unsigned int highmem; |
201 | }; | 201 | }; |
diff --git a/arch/arm/include/asm/types.h b/arch/arm/include/asm/types.h index c684e3769f47..48192ac3a23a 100644 --- a/arch/arm/include/asm/types.h +++ b/arch/arm/include/asm/types.h | |||
@@ -16,12 +16,6 @@ typedef unsigned short umode_t; | |||
16 | 16 | ||
17 | #define BITS_PER_LONG 32 | 17 | #define BITS_PER_LONG 32 |
18 | 18 | ||
19 | #ifndef __ASSEMBLY__ | ||
20 | |||
21 | typedef u32 dma64_addr_t; | ||
22 | |||
23 | #endif /* __ASSEMBLY__ */ | ||
24 | |||
25 | #endif /* __KERNEL__ */ | 19 | #endif /* __KERNEL__ */ |
26 | 20 | ||
27 | #endif | 21 | #endif |