diff options
| author | Thomas Gleixner <tglx@tglx.tec.linutronix.de> | 2005-07-07 10:50:16 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@mtd.linutronix.de> | 2005-07-07 10:50:16 -0400 |
| commit | 97f927a4d7dbccde0a854a62c3ea54d90bae8679 (patch) | |
| tree | d571cdae6507be90d4ee67d4937b765e2b332d77 /include/linux/mtd | |
| parent | b9c86d595d2a11009c58c84a9a8792aeb4a8f278 (diff) | |
[MTD] XIP cleanup
Move the architecture dependend code into include/asm/mtd-xip.h
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/linux/mtd')
| -rw-r--r-- | include/linux/mtd/xip.h | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/include/linux/mtd/xip.h b/include/linux/mtd/xip.h index fc071125cb..7b7deef6b1 100644 --- a/include/linux/mtd/xip.h +++ b/include/linux/mtd/xip.h | |||
| @@ -58,22 +58,16 @@ | |||
| 58 | * returned value is <= the real elapsed time. | 58 | * returned value is <= the real elapsed time. |
| 59 | * note 2: this should be able to cope with a few seconds without | 59 | * note 2: this should be able to cope with a few seconds without |
| 60 | * overflowing. | 60 | * overflowing. |
| 61 | * | ||
| 62 | * xip_iprefetch() | ||
| 63 | * | ||
| 64 | * Macro to fill instruction prefetch | ||
| 65 | * e.g. a series of nops: asm volatile (".rep 8; nop; .endr"); | ||
| 61 | */ | 66 | */ |
| 62 | 67 | ||
| 63 | #if defined(CONFIG_ARCH_SA1100) || defined(CONFIG_ARCH_PXA) | 68 | #include <asm/mtd-xip.h> |
| 64 | |||
| 65 | #include <asm/hardware.h> | ||
| 66 | #ifdef CONFIG_ARCH_PXA | ||
| 67 | #include <asm/arch/pxa-regs.h> | ||
| 68 | #endif | ||
| 69 | |||
| 70 | #define xip_irqpending() (ICIP & ICMR) | ||
| 71 | |||
| 72 | /* we sample OSCR and convert desired delta to usec (1/4 ~= 1000000/3686400) */ | ||
| 73 | #define xip_currtime() (OSCR) | ||
| 74 | #define xip_elapsed_since(x) (signed)((OSCR - (x)) / 4) | ||
| 75 | 69 | ||
| 76 | #else | 70 | #ifndef xip_irqpending |
| 77 | 71 | ||
| 78 | #warning "missing IRQ and timer primitives for XIP MTD support" | 72 | #warning "missing IRQ and timer primitives for XIP MTD support" |
| 79 | #warning "some of the XIP MTD support code will be disabled" | 73 | #warning "some of the XIP MTD support code will be disabled" |
| @@ -85,16 +79,17 @@ | |||
| 85 | 79 | ||
| 86 | #endif | 80 | #endif |
| 87 | 81 | ||
| 82 | #ifndef xip_iprefetch | ||
| 83 | #define xip_iprefetch() do { } while (0) | ||
| 84 | #endif | ||
| 85 | |||
| 88 | /* | 86 | /* |
| 89 | * xip_cpu_idle() is used when waiting for a delay equal or larger than | 87 | * xip_cpu_idle() is used when waiting for a delay equal or larger than |
| 90 | * the system timer tick period. This should put the CPU into idle mode | 88 | * the system timer tick period. This should put the CPU into idle mode |
| 91 | * to save power and to be woken up only when some interrupts are pending. | 89 | * to save power and to be woken up only when some interrupts are pending. |
| 92 | * As above, this should not rely upon standard kernel code. | 90 | * This should not rely upon standard kernel code. |
| 93 | */ | 91 | */ |
| 94 | 92 | #ifndef xip_cpu_idle | |
| 95 | #if defined(CONFIG_CPU_XSCALE) | ||
| 96 | #define xip_cpu_idle() asm volatile ("mcr p14, 0, %0, c7, c0, 0" :: "r" (1)) | ||
| 97 | #else | ||
| 98 | #define xip_cpu_idle() do { } while (0) | 93 | #define xip_cpu_idle() do { } while (0) |
| 99 | #endif | 94 | #endif |
| 100 | 95 | ||
