cpufreq: loongson2_cpufreq: adjust cpufreq uses of LOONGSON_CHIPCFG
authorAlexandre Oliva <lxoliva@fsfla.org>
Tue, 21 Jan 2020 12:30:45 +0000 (09:30 -0300)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 22 Jan 2020 23:39:37 +0000 (00:39 +0100)
The post-fork cleanup of loongson2ef from loongson64 changed
LOONGSON_CHIPCFG from a single-argument functional macro to a
non-functional macro with an mmio address in loongson2ef, but
loongson2_cpufreq still uses the notation of a functional macro call
expecting it to be an lvalue.  Fixed based on loongson_suspend_enter.

Signed-off-by: Alexandre Oliva <lxoliva@fsfla.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/loongson2_cpufreq.c

index e9caa95..909f40f 100644 (file)
@@ -144,9 +144,11 @@ static void loongson2_cpu_wait(void)
        u32 cpu_freq;
 
        spin_lock_irqsave(&loongson2_wait_lock, flags);
-       cpu_freq = LOONGSON_CHIPCFG(0);
-       LOONGSON_CHIPCFG(0) &= ~0x7;    /* Put CPU into wait mode */
-       LOONGSON_CHIPCFG(0) = cpu_freq; /* Restore CPU state */
+       cpu_freq = readl(LOONGSON_CHIPCFG);
+       /* Put CPU into wait mode */
+       writel(readl(LOONGSON_CHIPCFG) & ~0x7, LOONGSON_CHIPCFG);
+       /* Restore CPU state */
+       writel(cpu_freq, LOONGSON_CHIPCFG);
        spin_unlock_irqrestore(&loongson2_wait_lock, flags);
        local_irq_enable();
 }