Rafael J. Wysocki | 20 Apr 23:43 2014
Picon

[PATCH] PM / suspend: Make cpuidle work in the "freeze" state

From: Rafael J. Wysocki <rafael.j.wysocki <at> intel.com>

The "freeze" system sleep state introduced by commit 7e73c5ae6e79
(PM: Introduce suspend state PM_SUSPEND_FREEZE) requires cpuidle
to be functional when freeze_enter() is executed to work correctly
(that is, to be able to save any more energy than runtime idle),
but that is impossible after commit 8651f97bd951d (PM / cpuidle:
System resume hang fix with cpuidle) which caused cpuidle to be
paused in dpm_suspend_noirq() and resumed in dpm_resume_noirq().

To avoid that problem, add cpuidle_resume() and cpuidle_pause()
to the beginning and the end of freeze_enter(), respectively.

Reported-by: Zhang Rui <rui.zhang <at> intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki <at> intel.com>
---
 kernel/power/suspend.c |    3 +++
 1 file changed, 3 insertions(+)

Index: linux-pm/kernel/power/suspend.c
===================================================================
--- linux-pm.orig/kernel/power/suspend.c
+++ linux-pm/kernel/power/suspend.c
 <at>  <at>  -14,6 +14,7  <at>  <at> 
 #include <linux/init.h>
 #include <linux/console.h>
 #include <linux/cpu.h>
+#include <linux/cpuidle.h>
 #include <linux/syscalls.h>
 #include <linux/gfp.h>
(Continue reading)

Valerio Vanni | 19 Apr 16:49 2014
Picon

Fw: serial console does not wake from S3 suspend

> "Valerio Vanni" <valerio <at> valeriovanni.com> ha scritto nel messaggio
> news:lg9etc$9fl$1 <at> ger.gmane.org
> When resuming from S3 suspend, serial console starts sending garbage
> on the serial port.
> Not continuously, it sends garbage only when in local console prints
> a text.
> It stops only when the (sending) machine is shut down, or if some
> text is sent manually (i.e. with "cat txtfile > /dev/ttyS0").
> 
> Full details are here:
>> https://bugzilla.kernel.org/show_bug.cgi?id=69751

It's still present in 3.15-rc1 and in actual -next.

--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Chanwoo Choi | 18 Apr 04:20 2014

[PATCH 0/2] Support cpufreq driver for Exynos3250

This patchset support cpufreq driver for Exynos3250 which uses the Cortex-A7
dual cores and has a target speed of 1.0 GHz and code clean using dev_err/info
instead of pr_err/info function.

This patchset has a dependency on following patchset[1] to support Exynos3250:
[1] https://lkml.org/lkml/2014/4/17/669

Chanwoo Choi (2):
  cpufreq: exynos: Use dev_err/info function instead of pr_err/info
  cpufreq: exynos: Add new Exynos3250 cpufreq driver

 drivers/cpufreq/Kconfig.arm          |  11 +++
 drivers/cpufreq/Makefile             |   1 +
 drivers/cpufreq/exynos-cpufreq.c     |  25 +++---
 drivers/cpufreq/exynos-cpufreq.h     |  18 ++++
 drivers/cpufreq/exynos3250-cpufreq.c | 158 +++++++++++++++++++++++++++++++++++
 5 files changed, 203 insertions(+), 10 deletions(-)
 create mode 100644 drivers/cpufreq/exynos3250-cpufreq.c

--

-- 
1.8.0

--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Geert Uytterhoeven | 17 Apr 11:53 2014
Picon

[PATCH 1/3] cpufreq: ppc: Add missing #include <asm/smp.h>

If CONFIG_SMP=n, <linux/smp.h> does not include <asm/smp.h>, causing:

drivers/cpufreq/ppc-corenet-cpufreq.c: In function 'corenet_cpufreq_cpu_init':
drivers/cpufreq/ppc-corenet-cpufreq.c:173:3: error: implicit declaration of function
'get_hard_smp_processor_id' [-Werror=implicit-function-declaration]

Signed-off-by: Geert Uytterhoeven <geert+renesas <at> glider.be>
---
 drivers/cpufreq/ppc-corenet-cpufreq.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/cpufreq/ppc-corenet-cpufreq.c b/drivers/cpufreq/ppc-corenet-cpufreq.c
index b7e677be1df0..e78f9c806de4 100644
--- a/drivers/cpufreq/ppc-corenet-cpufreq.c
+++ b/drivers/cpufreq/ppc-corenet-cpufreq.c
 <at>  <at>  -22,6 +22,8  <at>  <at> 
 #include <linux/smp.h>
 #include <sysdev/fsl_soc.h>

+#include <asm/smp.h>
+
 /**
  * struct cpu_data - per CPU data struct
  *  <at> parent: the parent node of cpu clock
--

-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo <at> vger.kernel.org
(Continue reading)

Lorenzo Pieralisi | 16 Apr 17:44 2014

[PATCH RFC v2 0/4] ARM generic idle states

This patchset is v2 of a previous posting:

http://www.spinics.net/lists/arm-kernel/msg316263.html

Changes in v2:

- Moved OF parsing code to drivers/cpuidle
- Improved states detection and sorting through linked list
- Split code in generic and ARM64 specific bits
- Moved idle enter function into ARM64 idle driver
- Refactored PSCI idle states register function
- Renamed suspend operations and moved detection to ARM64 idle driver
- Changed the way CPUIDLE_FLAG_TIMER_STOP is handled
- Simplified idle state nodes parsing since according to the latest
  bindings idle state nodes are a flat list, not hierarchical anymore
- Used min-residency-us to sort the states, to be further discussed

Idle states on most ARM platforms can be characterized by a set of
parameters that are platform agnostic and describe the HW idle states
features. So far, CPU idle drivers for ARM platforms required the definition
of parameters through static tables, duplicating control data for different
platforms. Moreover, the lack of standardization on firmware interfaces
hampered any standardization effort, resulting in CPU idle drivers for ARM
platforms containing duplicated code and platform specific power down routines.

The introduction of the PSCI firmware interface, and more in general, well
defined suspend back-ends, allows the definition of generic idle states and
the respective kernel infrastructure to support them.

Building on top of DT idle states bindings[1], that standardize idle states
(Continue reading)

Ezequiel Garcia | 16 Apr 16:15 2014

[PATCH 0/6] thermal: Add Armada 375 SoC support

This patchset adds the support for the thermal sensor in the recently
introduced Armada 375 SoC.

The first three patches are preparation work. They add a generic
infrastructure that allows to support similar thermal sensors in
a non-intrusive way.

Patch four uses the infrastructure to support the Armada 375 SoC
thermal sensor.

Since there are some issues in the Z1 SoC thermal sensor, patch five
adds a quirk to workaround such issues. The Z1 stepping is detected
and the compatible string is updated, so the driver can perform
a special sensor initialization. Also, the quirk moves the offset of
the thermal control register, and allows to specifiy the correct
(A0 stepping) offset in the devicetree.

This quirk is applied only for the A375-DB board, being the only
board with the problematic Z1 SoC.

Finally, the last patch enables the thermal sensor in the devicetree.
for the Armada 375 A0 stepping SoC.

The series applies on v3.15-rc1, and has been tested on A375-DB board and
A370-RD board.

Feedback and comments are welcome!

Ezequiel Garcia (6):
  thermal: armada: Rename armada_thermal_ops struct
(Continue reading)

Stratos Karafotis | 16 Apr 09:03 2014
Picon

[PATCH v3 1/8] cpufreq: Introduce macros for cpufreq_frequency_table iteration

Many cpufreq drivers need to iterate over the cpufreq_frequency_table
for various tasks.

This patch introduces two macros which can be used for iteration over
cpufreq_frequency_table keeping a common coding style across drivers:

- cpufreq_for_each_entry: iterate over each entry of the table
- cpufreq_for_each_valid_entry: iterate over each entry that contains
a valid frequency.

It should have no functional changes.

Signed-off-by: Stratos Karafotis <stratosk <at> semaphore.gr>
---

Changes v2 -> v3
	- Better formatting in Documentation
	- Fix spell error in comments

 Documentation/cpu-freq/cpu-drivers.txt | 19 +++++++++++++++++++
 drivers/cpufreq/cpufreq.c              | 11 +++++++++++
 include/linux/cpufreq.h                | 21 +++++++++++++++++++++
 3 files changed, 51 insertions(+)

diff --git a/Documentation/cpu-freq/cpu-drivers.txt b/Documentation/cpu-freq/cpu-drivers.txt
index 48da5fd..b045fe5 100644
--- a/Documentation/cpu-freq/cpu-drivers.txt
+++ b/Documentation/cpu-freq/cpu-drivers.txt
 <at>  <at>  -228,3 +228,22  <at>  <at>  is the corresponding frequency table helper for the ->target
 stage. Just pass the values to this function, and the unsigned int
(Continue reading)

Stratos Karafotis | 16 Apr 00:25 2014
Picon

[PATCH v2 1/8] cpufreq: Introduce macros for cpufreq_frequency_table iteration

Many cpufreq drivers need to iterate over the cpufreq_frequency_table
for various tasks.

This patch introduces two macros which can be used for iteration over
cpufreq_frequency_table keeping a common coding style across drivers:

- cpufreq_for_each_entry: iterate over each entry of the table
- cpufreq_for_each_valid_entry: iterate over each entry that contains
a valid frequency.

It should have no functional changes.

Signed-off-by: Stratos Karafotis <stratosk <at> semaphore.gr>
---
 Documentation/cpu-freq/cpu-drivers.txt | 16 ++++++++++++++++
 drivers/cpufreq/cpufreq.c              | 11 +++++++++++
 include/linux/cpufreq.h                | 21 +++++++++++++++++++++
 3 files changed, 48 insertions(+)

diff --git a/Documentation/cpu-freq/cpu-drivers.txt b/Documentation/cpu-freq/cpu-drivers.txt
index 48da5fd..2c9156a 100644
--- a/Documentation/cpu-freq/cpu-drivers.txt
+++ b/Documentation/cpu-freq/cpu-drivers.txt
 <at>  <at>  -228,3 +228,19  <at>  <at>  is the corresponding frequency table helper for the ->target
 stage. Just pass the values to this function, and the unsigned int
 index returns the number of the frequency table entry which contains
 the frequency the CPU shall be set to.
+
+The following macros can be used as iterators over cpufreq_frequency_table:
+cpufreq_for_each_entry(pos, table) - iterates over all entries of frequency
(Continue reading)

함명주 | 15 Apr 03:36 2014

Re: Re: [PATCH] PM / devfreq: Use freq_table for available_frequencies

> MyungJoo/Kyungmin,
> 
> Bump. Can we accept this patch please?
> 
> -Saravana

Nack.

Please note that freq_table is also an optional value, which may
be null.

Besides, please be aware that your code is under rcu_read_lock().


Cheers,
MyungJoo.

ps. I'll send a related patch (avoid accessing null but not-an-error
pointer at other sysfs nodes). Thank you for letting me catch such bugs anyway.

> 
> 
> On 04/10/2014 07:54 PM, Saravana Kannan wrote:
> > Some devices use freq_table instead of OPP. For those devices, the
> > available_frequencies file shows up empty. Fix that by using freq_table to
> > generate the available_frequencies data when OPP is not present.
> >
> > Signed-off-by: Saravana Kannan <skannan <at> codeaurora.org>
> > ---
> >   drivers/devfreq/devfreq.c | 15 +++++++++++----
(Continue reading)

Stratos Karafotis | 14 Apr 23:08 2014
Picon

[PATCH 05/20] cpufreq: dbx500: Use cpufreq_for_each_entry macro for iteration

The cpufreq core supports the cpufreq_for_each_entry macro helper
for iteration over the cpufreq_frequency_table, so use it.

It should have no functional changes.

Signed-off-by: Stratos Karafotis <stratosk <at> semaphore.gr>
---
 drivers/cpufreq/dbx500-cpufreq.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/cpufreq/dbx500-cpufreq.c b/drivers/cpufreq/dbx500-cpufreq.c
index 412a78b..2a0635c 100644
--- a/drivers/cpufreq/dbx500-cpufreq.c
+++ b/drivers/cpufreq/dbx500-cpufreq.c
 <at>  <at>  -45,7 +45,7  <at>  <at>  static struct cpufreq_driver dbx500_cpufreq_driver = {

 static int dbx500_cpufreq_probe(struct platform_device *pdev)
 {
-	int i = 0;
+	struct cpufreq_frequency_table *pos;

 	freq_table = dev_get_platdata(&pdev->dev);
 	if (!freq_table) {
 <at>  <at>  -60,9 +60,8  <at>  <at>  static int dbx500_cpufreq_probe(struct platform_device *pdev)
 	}

 	pr_info("dbx500-cpufreq: Available frequencies:\n");
-	while (freq_table[i].frequency != CPUFREQ_TABLE_END) {
-		pr_info("  %d Mhz\n", freq_table[i].frequency/1000);
-		i++;
(Continue reading)

Gregory CLEMENT | 14 Apr 17:10 2014

[PATCH v7 00/11] CPU idle for Armada XP

This patch set adds the CPU idle support for Armada XP and prepares
the support for Armada 370. This was based on the work of Nadav
Haklai.

The main change in this new version is a rebasing onto the v3.15-rc1
and the last PMSU reworked series sent by Thomas Petazzoni:
http://www.spinics.net/lists/arm-kernel/msg322113.html

The first patch should go through ARM subsystem and should be taken by
Russell King. It was alreadu submitted to Russell's patch system.

All the other patches can go to mvebu subsystem (and then arm-soc), as
the PM related patches have received the acked-by from Daniel
Lezcano. From my point of view this series is ready to be pulled.

The whole series (and the pmsu patches needed) is also available in
the branch CPU-idle-ArmadaXP-v7 at
https://github.com/MISL-EBU-System-SW/mainline-public.git

Thanks,

Changelog:

v6 -> v7:

 * Rebased onto v3.15-rc1

 * Added the acked-by from Daniel Lezcano

 * Fix the copyright year in cpuidle-armada-370-xp.c
(Continue reading)


Gmane