[Top] [All Lists]

Loongson2 cpu_wait function

Subject: Loongson2 cpu_wait function
From: Ralf Baechle <>
Date: Thu, 23 May 2013 14:27:37 +0200
List-archive: <>
List-help: <>
List-id: linux-mips <>
List-owner: <>
List-post: <>
List-software: Ecartis version 1.0.0
List-subscribe: <>
List-unsubscribe: <>
Original-recipient: rfc822;
User-agent: Mutt/1.5.21 (2010-09-15)
During the 3.10 merge cycle many MIPS platforms were broken by the
generic idle loop patches.  A patch series to fix this has already been
merged but I'm wondering if fb40bc3e94933007d3e42e96daf1ec8044821cb8
[MIPS: Idle: Re-enable irqs at the end of r3081, au1k and loongson2
cpu_wait.] is sufficient and correct for Loongson 2.

In particular:

 o drivers/cpufreq/loongson2_cpufreq.c protects accesses to LOONGSON_CHIPCFG0
   in loongson2_cpu_wait with a spinlock.  This spinlock is not used anywhere
   else in the kernel so it would appear there is still a race with other
   accesses to LOONGSON_CHIPCFG0.
 o It's not SMPly correct - even if cpufreq_exit restores the old value of
   cpu_wait on a SMP system another processor might still be executing
 o I'd appreciate if at least some basic power saving would be used even if
   CONFIG_LOONGSON2_CPUFREQ was disabled, that is loongson2_cpu_wait should
   go back to arch/mips/kernel/idle.c.
 o Could somebody test if Loongson 2 is working?  Thanks!


<Prev in Thread] Current Thread [Next in Thread>