linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/12] MIPS CPC fixup and CPU Idle for MIPSr6 CPUs
@ 2016-09-07  9:45 Matt Redfearn
  2016-09-07  9:45 ` [PATCH v2 12/12] cpuidle: cpuidle-cps: Enable use with " Matt Redfearn
  0 siblings, 1 reply; 3+ messages in thread
From: Matt Redfearn @ 2016-09-07  9:45 UTC (permalink / raw)
  To: Ralf Baechle
  Cc: linux-mips, Matt Redfearn, Arnd Bergmann, Tony Wu,
	Nikolay Martynov, Masahiro Yamada, Kees Cook, linux-pm,
	Qais Yousef, linux-kernel, Michael S. Tsirkin, Thomas Gleixner,
	Rafael J. Wysocki, James Hogan, Andrew Morton, Markos Chandras,
	Adam Buchbinder, Peter Zijlstra (Intel), Paul Burton,
	Daniel Lezcano


This updated series incorporates comments from Peter Zijlstra on v1
around the barriers in pm-cps.c.

This series fixes a small issue with the CPC driver when A CM3 is
present, where a redundant lock was taken.

There are then additions to the pm-cps driver to add support for R6 CPUs
such as the I6400, and additionally the CM3 present in the I6400.

Finally we enable the cpuidle-cps driver for MIPSr6 CPUs.

Applies atop v4.8-rc4


Changes in v2:
Update comments on barriers
Add new patch to define standard MIPS barrier types
Use architecturally standard lightweight sync types rather than
selecting CPU specific ones.

Matt Redfearn (12):
  MIPS: CPC: Convert bare 'unsigned' to 'unsigned int'
  MIPS: CPC: Avoid lock when MIPS CM >= 3 is present
  MIPS: pm-cps: Change FSB workaround to CPU blacklist
  MIPS: pm-cps: Update comments on barrier instructions
  MIPS: Barrier: Add definitions of SYNC stype values
  MIPS: pm-cps: Use MIPS standard lightweight ordering barrier
  MIPS: pm-cps: Use MIPS standard completion barrier
  MIPS: pm-cps: Remove selection of sync types
  MIPS: pm-cps: Add MIPSr6 CPU support
  MIPS: pm-cps: Support CM3 changes to Coherence Enable Register
  MIPS: SMP: Wrap call to mips_cpc_lock_other in mips_cm_lock_other
  cpuidle: cpuidle-cps: Enable use with MIPSr6 CPUs.

 arch/mips/include/asm/barrier.h |  96 +++++++++++++++++++++++++++++++++
 arch/mips/include/asm/mips-cm.h |   1 +
 arch/mips/include/asm/pm-cps.h  |   6 ++-
 arch/mips/kernel/mips-cpc.c     |  17 ++++--
 arch/mips/kernel/pm-cps.c       | 115 +++++++++++++++++++---------------------
 arch/mips/kernel/smp.c          |   2 +
 drivers/cpuidle/Kconfig.mips    |   2 +-
 drivers/cpuidle/cpuidle-cps.c   |   2 +-
 8 files changed, 173 insertions(+), 68 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH v2 12/12] cpuidle: cpuidle-cps: Enable use with MIPSr6 CPUs.
  2016-09-07  9:45 [PATCH v2 00/12] MIPS CPC fixup and CPU Idle for MIPSr6 CPUs Matt Redfearn
@ 2016-09-07  9:45 ` Matt Redfearn
  2016-09-08 10:55   ` Daniel Lezcano
  0 siblings, 1 reply; 3+ messages in thread
From: Matt Redfearn @ 2016-09-07  9:45 UTC (permalink / raw)
  To: Ralf Baechle
  Cc: linux-mips, Matt Redfearn, Rafael J. Wysocki, linux-pm,
	linux-kernel, Daniel Lezcano

This patch enables the MIPS CPS driver for MIPSr6 CPUs.

Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
Reviewed-by: Paul Burton <paul.burton@imgtec.com>

---

Changes in v2: None

 drivers/cpuidle/Kconfig.mips  | 2 +-
 drivers/cpuidle/cpuidle-cps.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/cpuidle/Kconfig.mips b/drivers/cpuidle/Kconfig.mips
index 4102be01d06a..512ee37b374b 100644
--- a/drivers/cpuidle/Kconfig.mips
+++ b/drivers/cpuidle/Kconfig.mips
@@ -5,7 +5,7 @@ config MIPS_CPS_CPUIDLE
 	bool "CPU Idle driver for MIPS CPS platforms"
 	depends on CPU_IDLE && MIPS_CPS
 	depends on SYS_SUPPORTS_MIPS_CPS
-	select ARCH_NEEDS_CPU_IDLE_COUPLED if MIPS_MT
+	select ARCH_NEEDS_CPU_IDLE_COUPLED if MIPS_MT || CPU_MIPSR6
 	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
 	select MIPS_CPS_PM
 	default y
diff --git a/drivers/cpuidle/cpuidle-cps.c b/drivers/cpuidle/cpuidle-cps.c
index 1adb6980b707..926ba9871c62 100644
--- a/drivers/cpuidle/cpuidle-cps.c
+++ b/drivers/cpuidle/cpuidle-cps.c
@@ -163,7 +163,7 @@ static int __init cps_cpuidle_init(void)
 		core = cpu_data[cpu].core;
 		device = &per_cpu(cpuidle_dev, cpu);
 		device->cpu = cpu;
-#ifdef CONFIG_MIPS_MT
+#ifdef CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED
 		cpumask_copy(&device->coupled_cpus, &cpu_sibling_map[cpu]);
 #endif
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2 12/12] cpuidle: cpuidle-cps: Enable use with MIPSr6 CPUs.
  2016-09-07  9:45 ` [PATCH v2 12/12] cpuidle: cpuidle-cps: Enable use with " Matt Redfearn
@ 2016-09-08 10:55   ` Daniel Lezcano
  0 siblings, 0 replies; 3+ messages in thread
From: Daniel Lezcano @ 2016-09-08 10:55 UTC (permalink / raw)
  To: Matt Redfearn, Ralf Baechle
  Cc: linux-mips, Rafael J. Wysocki, linux-pm, linux-kernel

On 07/09/2016 11:45, Matt Redfearn wrote:
> This patch enables the MIPS CPS driver for MIPSr6 CPUs.
> 
> Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
> Reviewed-by: Paul Burton <paul.burton@imgtec.com>
> 

Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>

> ---
> 
> Changes in v2: None
> 
>  drivers/cpuidle/Kconfig.mips  | 2 +-
>  drivers/cpuidle/cpuidle-cps.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/cpuidle/Kconfig.mips b/drivers/cpuidle/Kconfig.mips
> index 4102be01d06a..512ee37b374b 100644
> --- a/drivers/cpuidle/Kconfig.mips
> +++ b/drivers/cpuidle/Kconfig.mips
> @@ -5,7 +5,7 @@ config MIPS_CPS_CPUIDLE
>  	bool "CPU Idle driver for MIPS CPS platforms"
>  	depends on CPU_IDLE && MIPS_CPS
>  	depends on SYS_SUPPORTS_MIPS_CPS
> -	select ARCH_NEEDS_CPU_IDLE_COUPLED if MIPS_MT
> +	select ARCH_NEEDS_CPU_IDLE_COUPLED if MIPS_MT || CPU_MIPSR6
>  	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
>  	select MIPS_CPS_PM
>  	default y
> diff --git a/drivers/cpuidle/cpuidle-cps.c b/drivers/cpuidle/cpuidle-cps.c
> index 1adb6980b707..926ba9871c62 100644
> --- a/drivers/cpuidle/cpuidle-cps.c
> +++ b/drivers/cpuidle/cpuidle-cps.c
> @@ -163,7 +163,7 @@ static int __init cps_cpuidle_init(void)
>  		core = cpu_data[cpu].core;
>  		device = &per_cpu(cpuidle_dev, cpu);
>  		device->cpu = cpu;
> -#ifdef CONFIG_MIPS_MT
> +#ifdef CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED
>  		cpumask_copy(&device->coupled_cpus, &cpu_sibling_map[cpu]);
>  #endif
>  
> 


-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-09-08 10:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-07  9:45 [PATCH v2 00/12] MIPS CPC fixup and CPU Idle for MIPSr6 CPUs Matt Redfearn
2016-09-07  9:45 ` [PATCH v2 12/12] cpuidle: cpuidle-cps: Enable use with " Matt Redfearn
2016-09-08 10:55   ` Daniel Lezcano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).