diff mbox series

[Loongson2F] adjust cpufreq uses of LOONGSON_CHIPCFG

Message ID oro8uxgfey.fsf@livre.home (mailing list archive)
State Mainlined, archived
Headers show
Series [Loongson2F] adjust cpufreq uses of LOONGSON_CHIPCFG | expand

Commit Message

Alexandre Oliva Jan. 21, 2020, 12:30 p.m. UTC
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>
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
Cc: linux-mips@vger.kernel.org
Cc: paul.burton@mips.com
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
---
 drivers/cpufreq/loongson2_cpufreq.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Comments

Rafael J. Wysocki Jan. 22, 2020, 11:46 p.m. UTC | #1
On Tue, Jan 21, 2020 at 1:39 PM Alexandre Oliva <lxoliva@fsfla.org> wrote:
>
> 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>
> Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
> Cc: linux-mips@vger.kernel.org
> Cc: paul.burton@mips.com
> Acked-by: Viresh Kumar <viresh.kumar@linaro.org>

Queued up as 5.6 material under modified subject ("cpufreq:
loongson2_cpufreq: adjust cpufreq uses of LOONGSON_CHIPCFG"), thanks!

> ---
>  drivers/cpufreq/loongson2_cpufreq.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/cpufreq/loongson2_cpufreq.c b/drivers/cpufreq/loongson2_cpufreq.c
> index 84f0eee..ace2d46 100644
> --- a/drivers/cpufreq/loongson2_cpufreq.c
> +++ b/drivers/cpufreq/loongson2_cpufreq.c
> @@ -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();
>  }
> --
> 2.7.4
>
> --
> Alexandre Oliva, freedom fighter   he/him   https://FSFLA.org/blogs/lxo
> Free Software Evangelist           Stallman was right, but he's left :(
> GNU Toolchain Engineer    FSMatrix: It was he who freed the first of us
> FSF & FSFLA board member                The Savior shall return (true);
diff mbox series

Patch

diff --git a/drivers/cpufreq/loongson2_cpufreq.c b/drivers/cpufreq/loongson2_cpufreq.c
index 84f0eee..ace2d46 100644
--- a/drivers/cpufreq/loongson2_cpufreq.c
+++ b/drivers/cpufreq/loongson2_cpufreq.c
@@ -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();
 }