ixp4xx: arch_idle() documentation fixup
authorMikael Pettersson <mikpe@it.uu.se>
Thu, 10 Sep 2009 22:56:54 +0000 (00:56 +0200)
committerKrzysztof Hałasa <khc@pm.waw.pl>
Mon, 21 Sep 2009 17:20:03 +0000 (19:20 +0200)
The body of the mach-ixp4xx arch_idle() is mysteriously
disabled by an #if 0 .. #endif. Normally one would expect
to find a call to cpu_do_idle() there, but that call is
disabled, even though cpu_do_idle() is implemented for
XScale cores (and ixp4xx is one).

The explanation can be found in the ixp42x developer's manual
which states that the XScale core clock and power management
registers aren't implemented on ixp42x [3.5.2.2].

Also, the disabled code has suffered from bit rot:
- it checks hlt_counter which is obsolete, as that variable
  and all related code now is private to kernel/process.c
- it passes too many parameters to cpu_do_idle()

So this patch:
- adds a comment before the #if 0 to explain why
  cpu_do_idle() mustn't be called on ixp4xx
- removes the obsolete test of hlt_counter and the
  obsolete parameter to cpu_do_idle()

This is purely a documentation fixup and changes no
generated code. Even so, it has been tested on an
ixp420 machine (ds101).

Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
arch/arm/mach-ixp4xx/include/mach/system.h

index d2aa26f..54c0af7 100644 (file)
 
 static inline void arch_idle(void)
 {
+       /* ixp4xx does not implement the XScale PWRMODE register,
+        * so it must not call cpu_do_idle() here.
+        */
 #if 0
-       if (!hlt_counter)
-               cpu_do_idle(0);
+       cpu_do_idle();
 #endif
 }