diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-18 11:05:20 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-18 11:05:20 -0500 |
| commit | 6a7f6ec9512970874fa9fc883ea44d77d0f287c2 (patch) | |
| tree | 2bce1665b5a9e81bdd95f6e34410bdf13c58350e /arch/m68k/include/asm/processor.h | |
| parent | c6fa63c659b3dd121f21afe7529f505505e79b23 (diff) | |
| parent | 4c65595ec506ff65c90b1d9fed17333005fa5eb5 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (25 commits)
m68knommu: fix broken setting of irq_chip and handler
m68knommu: switch to using -mcpu= flags for ColdFire targets
m68knommu: arch/m68knommu/Kconfig whitespace cleanup
m68knommu: create optimal separate instruction and data cache for ColdFire
m68knommu: support ColdFire caches that do copyback and write-through
m68knommu: support version 2 ColdFire split cache
m68knommu: make cache push code ColdFire generic
m68knommu: clean up ColdFire cache control code
m68knommu: move inclusion of ColdFire v4 cache registers
m68knommu: merge bit definitions for version 3 ColdFire cache controller
m68knommu: create bit definitions for the version 2 ColdFire cache controller
m68knommu: remove empty __iounmap() it is no used
m68knommu: remove kernel_map() code, it is not used
m68knommu: remove do_page_fault(), it is not used
m68knommu: use user stack pointer hardware on some ColdFire cores
m68knommu: remove command line printing DEBUG
m68knommu: remove fasthandler interrupt code
m68knommu: move UART addressing to part specific includes
m68knommu: fix clock rate value reported for ColdFire 54xx parts
m68knommu: move ColdFire CPU names into their headers
...
Diffstat (limited to 'arch/m68k/include/asm/processor.h')
| -rw-r--r-- | arch/m68k/include/asm/processor.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/m68k/include/asm/processor.h b/arch/m68k/include/asm/processor.h index 7a6a7590cc02..278c69bad57a 100644 --- a/arch/m68k/include/asm/processor.h +++ b/arch/m68k/include/asm/processor.h | |||
| @@ -20,23 +20,26 @@ | |||
| 20 | 20 | ||
| 21 | static inline unsigned long rdusp(void) | 21 | static inline unsigned long rdusp(void) |
| 22 | { | 22 | { |
| 23 | #ifdef CONFIG_COLDFIRE | 23 | #ifdef CONFIG_COLDFIRE_SW_A7 |
| 24 | extern unsigned int sw_usp; | 24 | extern unsigned int sw_usp; |
| 25 | return sw_usp; | 25 | return sw_usp; |
| 26 | #else | 26 | #else |
| 27 | unsigned long usp; | 27 | register unsigned long usp __asm__("a0"); |
| 28 | __asm__ __volatile__("move %/usp,%0" : "=a" (usp)); | 28 | /* move %usp,%a0 */ |
| 29 | __asm__ __volatile__(".word 0x4e68" : "=a" (usp)); | ||
| 29 | return usp; | 30 | return usp; |
| 30 | #endif | 31 | #endif |
| 31 | } | 32 | } |
| 32 | 33 | ||
| 33 | static inline void wrusp(unsigned long usp) | 34 | static inline void wrusp(unsigned long usp) |
| 34 | { | 35 | { |
| 35 | #ifdef CONFIG_COLDFIRE | 36 | #ifdef CONFIG_COLDFIRE_SW_A7 |
| 36 | extern unsigned int sw_usp; | 37 | extern unsigned int sw_usp; |
| 37 | sw_usp = usp; | 38 | sw_usp = usp; |
| 38 | #else | 39 | #else |
| 39 | __asm__ __volatile__("move %0,%/usp" : : "a" (usp)); | 40 | register unsigned long a0 __asm__("a0") = usp; |
| 41 | /* move %a0,%usp */ | ||
| 42 | __asm__ __volatile__(".word 0x4e60" : : "a" (a0) ); | ||
| 40 | #endif | 43 | #endif |
| 41 | } | 44 | } |
| 42 | 45 | ||
