diff options
Diffstat (limited to 'arch/arm/mach-ns9xxx/include/mach/system.h')
-rw-r--r-- | arch/arm/mach-ns9xxx/include/mach/system.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/arch/arm/mach-ns9xxx/include/mach/system.h b/arch/arm/mach-ns9xxx/include/mach/system.h index e2068c57415f..e4ae479dc5b2 100644 --- a/arch/arm/mach-ns9xxx/include/mach/system.h +++ b/arch/arm/mach-ns9xxx/include/mach/system.h @@ -1,7 +1,7 @@ /* * arch/arm/mach-ns9xxx/include/mach/system.h * - * Copyright (C) 2006,2007 by Digi International Inc. + * Copyright (C) 2006-2008 by Digi International Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify it @@ -13,15 +13,32 @@ #include <asm/proc-fns.h> #include <mach/processor.h> -#include <mach/processor-ns9360.h> static inline void arch_idle(void) { - cpu_do_idle(); + /* + * When a Camry (i.e. ns921x) executes + * + * mcr p15, 0, r0, c7, c0, 4 @ Wait for interrupt + * + * the CPU is stopped, so are all timers. This is not something I want + * to handle. As the "wait for interrupt" instruction is part of + * cpu_arm926_do_idle, it's not called for it. + */ + if (!processor_is_ns921x()) + cpu_do_idle(); } +void ns921x_reset(char); +void ns9360_reset(char); + static inline void arch_reset(char mode) { +#ifdef CONFIG_PROCESSOR_NS921X + if (processor_is_ns921x()) + ns921x_reset(mode); + else +#endif #ifdef CONFIG_PROCESSOR_NS9360 if (processor_is_ns9360()) ns9360_reset(mode); |