From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
linux-pm@vger.kernel.org, Jason Cooper <jason@lakedaemon.net>,
Andrew Lunn <andrew@lunn.ch>,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
Gregory Clement <gregory.clement@free-electrons.com>
Cc: Tawfik Bayouk <tawfik@marvell.com>,
Nadav Haklai <nadavh@marvell.com>,
Lior Amsalem <alior@marvell.com>,
Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCHv2 12/17] cpuidle: mvebu: make the cpuidle driver capable of handling multiple SoCs
Date: Mon, 21 Jul 2014 12:59:33 +0200 [thread overview]
Message-ID: <53CCF295.6030907@linaro.org> (raw)
In-Reply-To: <1404913221-17343-13-git-send-email-thomas.petazzoni@free-electrons.com>
On 07/09/2014 03:40 PM, Thomas Petazzoni wrote:
> From: Gregory CLEMENT <gregory.clement@free-electrons.com>
>
> In order to prepare the add of new SoCs supports for this cpuidle
> driver, this patch extends the platform_data understood by the
> cpuidle-mvebu-v7 driver to contain a "type" identifying which specific
> SoC the cpuidle driver is being probed for. It will be used by the
> cpuidle driver to know the list of states for the current SoC.
It makes more sense to use/implement a 'soc_is_xxx' macro or
'of_machine_is_compatible', like the other cpuidle drivers, no ?
Is there a good reason to implement a new way to check the board ?
It isn't possible to do:
if (of_machine_is_compatible("marvell,armada-370-xp-pmsu"))
cpuidle_register(&armadaxp_cpuidle_driver, NULL);
?
That will prevent the creation of the new single-declaration header file.
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> arch/arm/mach-mvebu/pmsu.c | 20 +++++++++++++-------
> drivers/cpuidle/cpuidle-mvebu-v7.c | 32 ++++++++++++++++++++------------
> include/linux/mvebu-v7-cpuidle.h | 26 ++++++++++++++++++++++++++
> 3 files changed, 59 insertions(+), 19 deletions(-)
> create mode 100644 include/linux/mvebu-v7-cpuidle.h
>
> diff --git a/arch/arm/mach-mvebu/pmsu.c b/arch/arm/mach-mvebu/pmsu.c
> index 802edc8..0a24073 100644
> --- a/arch/arm/mach-mvebu/pmsu.c
> +++ b/arch/arm/mach-mvebu/pmsu.c
> @@ -19,10 +19,12 @@
> #define pr_fmt(fmt) "mvebu-pmsu: " fmt
>
> #include <linux/cpu_pm.h>
> +#include <linux/cpuidle.h>
> #include <linux/init.h>
> #include <linux/io.h>
> #include <linux/kernel.h>
> #include <linux/mbus.h>
> +#include <linux/mvebu-v7-cpuidle.h>
> #include <linux/of_address.h>
> #include <linux/platform_device.h>
> #include <linux/resource.h>
> @@ -75,10 +77,6 @@ extern void armada_370_xp_cpu_resume(void);
>
> static void *mvebu_cpu_resume;
>
> -static struct platform_device mvebu_v7_cpuidle_device = {
> - .name = "cpuidle-mvebu-v7",
> -};
> -
> static struct of_device_id of_pmsu_table[] = {
> { .compatible = "marvell,armada-370-pmsu", },
> { .compatible = "marvell,armada-370-xp-pmsu", },
> @@ -325,17 +323,25 @@ static struct notifier_block mvebu_v7_cpu_pm_notifier = {
> .notifier_call = mvebu_v7_cpu_pm_notify,
> };
>
> -static int __init armada_xp_cpuidle_init(void)
> +static struct mvebu_v7_cpuidle armada_xp_cpuidle = {
> + .type = CPUIDLE_ARMADA_XP,
> + .cpu_suspend = armada_370_xp_cpu_suspend,
> +};
> +
> +static struct platform_device mvebu_v7_cpuidle_device = {
> + .name = "cpuidle-mvebu-v7",
> +};
> +
> +static __init int armada_xp_cpuidle_init(void)
> {
> struct device_node *np;
> -
> np = of_find_compatible_node(NULL, NULL, "marvell,coherency-fabric");
> if (!np)
> return -ENODEV;
> of_node_put(np);
>
> mvebu_cpu_resume = armada_370_xp_cpu_resume;
> - mvebu_v7_cpuidle_device.dev.platform_data = armada_370_xp_cpu_suspend;
> + mvebu_v7_cpuidle_device.dev.platform_data = &armada_xp_cpuidle;
>
> return 0;
> }
> diff --git a/drivers/cpuidle/cpuidle-mvebu-v7.c b/drivers/cpuidle/cpuidle-mvebu-v7.c
> index 302596e..82c545bb 100644
> --- a/drivers/cpuidle/cpuidle-mvebu-v7.c
> +++ b/drivers/cpuidle/cpuidle-mvebu-v7.c
> @@ -16,15 +16,15 @@
> #include <linux/cpu_pm.h>
> #include <linux/cpuidle.h>
> #include <linux/module.h>
> +#include <linux/mvebu-v7-cpuidle.h>
> #include <linux/of.h>
> #include <linux/suspend.h>
> #include <linux/platform_device.h>
> #include <asm/cpuidle.h>
>
> -#define MVEBU_V7_MAX_STATES 3
> #define MVEBU_V7_FLAG_DEEP_IDLE 0x10000
>
> -static int (*mvebu_v7_cpu_suspend)(int);
> +static struct mvebu_v7_cpuidle *pcpuidle;
>
> static int mvebu_v7_enter_idle(struct cpuidle_device *dev,
> struct cpuidle_driver *drv,
> @@ -32,12 +32,13 @@ static int mvebu_v7_enter_idle(struct cpuidle_device *dev,
> {
> int ret;
> bool deepidle = false;
> +
> cpu_pm_enter();
>
> if (drv->states[index].flags & MVEBU_V7_FLAG_DEEP_IDLE)
> deepidle = true;
>
> - ret = mvebu_v7_cpu_suspend(deepidle);
> + ret = pcpuidle->cpu_suspend(deepidle);
> if (ret)
> return ret;
>
> @@ -46,8 +47,8 @@ static int mvebu_v7_enter_idle(struct cpuidle_device *dev,
> return index;
> }
>
> -static struct cpuidle_driver mvebu_v7_idle_driver = {
> - .name = "mvebu_v7_idle",
> +static struct cpuidle_driver armadaxp_cpuidle_driver = {
> + .name = "armada_xp_idle",
> .states[0] = ARM_CPUIDLE_WFI_STATE,
> .states[1] = {
> .enter = mvebu_v7_enter_idle,
> @@ -55,7 +56,7 @@ static struct cpuidle_driver mvebu_v7_idle_driver = {
> .power_usage = 50,
> .target_residency = 100,
> .flags = CPUIDLE_FLAG_TIME_VALID,
> - .name = "MV CPU IDLE",
> + .name = "Idle",
> .desc = "CPU power down",
> },
> .states[2] = {
> @@ -63,19 +64,26 @@ static struct cpuidle_driver mvebu_v7_idle_driver = {
> .exit_latency = 100,
> .power_usage = 5,
> .target_residency = 1000,
> - .flags = CPUIDLE_FLAG_TIME_VALID |
> - MVEBU_V7_FLAG_DEEP_IDLE,
> - .name = "MV CPU DEEP IDLE",
> + .flags = (CPUIDLE_FLAG_TIME_VALID |
> + MVEBU_V7_FLAG_DEEP_IDLE),
> + .name = "Deep idle",
> .desc = "CPU and L2 Fabric power down",
> },
> - .state_count = MVEBU_V7_MAX_STATES,
> + .state_count = 3,
> };
>
> static int mvebu_v7_cpuidle_probe(struct platform_device *pdev)
> {
> + struct cpuidle_driver *drv;
> +
> + pcpuidle = pdev->dev.platform_data;
> +
> + if (pcpuidle->type == CPUIDLE_ARMADA_XP)
> + drv = &armadaxp_cpuidle_driver;
> + else
> + return -EINVAL;
>
> - mvebu_v7_cpu_suspend = (void *)(pdev->dev.platform_data);
> - return cpuidle_register(&mvebu_v7_idle_driver, NULL);
> + return cpuidle_register(drv, NULL);
> }
>
> static struct platform_driver mvebu_v7_cpuidle_plat_driver = {
> diff --git a/include/linux/mvebu-v7-cpuidle.h b/include/linux/mvebu-v7-cpuidle.h
> new file mode 100644
> index 0000000..00fde86
> --- /dev/null
> +++ b/include/linux/mvebu-v7-cpuidle.h
> @@ -0,0 +1,26 @@
> +/*
> + * Marvell EBU cpuidle defintion
> + *
> + * Copyright (C) 2014 Marvell
> + *
> + * Gregory CLEMENT <gregory.clement@free-electrons.com>
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2. This program is licensed "as is" without any
> + * warranty of any kind, whether express or implied.
> + *
> + */
> +
> +#ifndef __LINUX_MVEBU_V7_CPUIDLE_H__
> +#define __LINUX_MVEBU_V7_CPUIDLE_H__
> +
> +enum mvebu_v7_cpuidle_types {
> + CPUIDLE_ARMADA_XP,
> +};
> +
> +struct mvebu_v7_cpuidle {
> + int type;
> + int (*cpu_suspend)(unsigned long deepidle);
> +};
> +
> +#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
WARNING: multiple messages have this Message-ID (diff)
From: daniel.lezcano@linaro.org (Daniel Lezcano)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv2 12/17] cpuidle: mvebu: make the cpuidle driver capable of handling multiple SoCs
Date: Mon, 21 Jul 2014 12:59:33 +0200 [thread overview]
Message-ID: <53CCF295.6030907@linaro.org> (raw)
In-Reply-To: <1404913221-17343-13-git-send-email-thomas.petazzoni@free-electrons.com>
On 07/09/2014 03:40 PM, Thomas Petazzoni wrote:
> From: Gregory CLEMENT <gregory.clement@free-electrons.com>
>
> In order to prepare the add of new SoCs supports for this cpuidle
> driver, this patch extends the platform_data understood by the
> cpuidle-mvebu-v7 driver to contain a "type" identifying which specific
> SoC the cpuidle driver is being probed for. It will be used by the
> cpuidle driver to know the list of states for the current SoC.
It makes more sense to use/implement a 'soc_is_xxx' macro or
'of_machine_is_compatible', like the other cpuidle drivers, no ?
Is there a good reason to implement a new way to check the board ?
It isn't possible to do:
if (of_machine_is_compatible("marvell,armada-370-xp-pmsu"))
cpuidle_register(&armadaxp_cpuidle_driver, NULL);
?
That will prevent the creation of the new single-declaration header file.
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> arch/arm/mach-mvebu/pmsu.c | 20 +++++++++++++-------
> drivers/cpuidle/cpuidle-mvebu-v7.c | 32 ++++++++++++++++++++------------
> include/linux/mvebu-v7-cpuidle.h | 26 ++++++++++++++++++++++++++
> 3 files changed, 59 insertions(+), 19 deletions(-)
> create mode 100644 include/linux/mvebu-v7-cpuidle.h
>
> diff --git a/arch/arm/mach-mvebu/pmsu.c b/arch/arm/mach-mvebu/pmsu.c
> index 802edc8..0a24073 100644
> --- a/arch/arm/mach-mvebu/pmsu.c
> +++ b/arch/arm/mach-mvebu/pmsu.c
> @@ -19,10 +19,12 @@
> #define pr_fmt(fmt) "mvebu-pmsu: " fmt
>
> #include <linux/cpu_pm.h>
> +#include <linux/cpuidle.h>
> #include <linux/init.h>
> #include <linux/io.h>
> #include <linux/kernel.h>
> #include <linux/mbus.h>
> +#include <linux/mvebu-v7-cpuidle.h>
> #include <linux/of_address.h>
> #include <linux/platform_device.h>
> #include <linux/resource.h>
> @@ -75,10 +77,6 @@ extern void armada_370_xp_cpu_resume(void);
>
> static void *mvebu_cpu_resume;
>
> -static struct platform_device mvebu_v7_cpuidle_device = {
> - .name = "cpuidle-mvebu-v7",
> -};
> -
> static struct of_device_id of_pmsu_table[] = {
> { .compatible = "marvell,armada-370-pmsu", },
> { .compatible = "marvell,armada-370-xp-pmsu", },
> @@ -325,17 +323,25 @@ static struct notifier_block mvebu_v7_cpu_pm_notifier = {
> .notifier_call = mvebu_v7_cpu_pm_notify,
> };
>
> -static int __init armada_xp_cpuidle_init(void)
> +static struct mvebu_v7_cpuidle armada_xp_cpuidle = {
> + .type = CPUIDLE_ARMADA_XP,
> + .cpu_suspend = armada_370_xp_cpu_suspend,
> +};
> +
> +static struct platform_device mvebu_v7_cpuidle_device = {
> + .name = "cpuidle-mvebu-v7",
> +};
> +
> +static __init int armada_xp_cpuidle_init(void)
> {
> struct device_node *np;
> -
> np = of_find_compatible_node(NULL, NULL, "marvell,coherency-fabric");
> if (!np)
> return -ENODEV;
> of_node_put(np);
>
> mvebu_cpu_resume = armada_370_xp_cpu_resume;
> - mvebu_v7_cpuidle_device.dev.platform_data = armada_370_xp_cpu_suspend;
> + mvebu_v7_cpuidle_device.dev.platform_data = &armada_xp_cpuidle;
>
> return 0;
> }
> diff --git a/drivers/cpuidle/cpuidle-mvebu-v7.c b/drivers/cpuidle/cpuidle-mvebu-v7.c
> index 302596e..82c545bb 100644
> --- a/drivers/cpuidle/cpuidle-mvebu-v7.c
> +++ b/drivers/cpuidle/cpuidle-mvebu-v7.c
> @@ -16,15 +16,15 @@
> #include <linux/cpu_pm.h>
> #include <linux/cpuidle.h>
> #include <linux/module.h>
> +#include <linux/mvebu-v7-cpuidle.h>
> #include <linux/of.h>
> #include <linux/suspend.h>
> #include <linux/platform_device.h>
> #include <asm/cpuidle.h>
>
> -#define MVEBU_V7_MAX_STATES 3
> #define MVEBU_V7_FLAG_DEEP_IDLE 0x10000
>
> -static int (*mvebu_v7_cpu_suspend)(int);
> +static struct mvebu_v7_cpuidle *pcpuidle;
>
> static int mvebu_v7_enter_idle(struct cpuidle_device *dev,
> struct cpuidle_driver *drv,
> @@ -32,12 +32,13 @@ static int mvebu_v7_enter_idle(struct cpuidle_device *dev,
> {
> int ret;
> bool deepidle = false;
> +
> cpu_pm_enter();
>
> if (drv->states[index].flags & MVEBU_V7_FLAG_DEEP_IDLE)
> deepidle = true;
>
> - ret = mvebu_v7_cpu_suspend(deepidle);
> + ret = pcpuidle->cpu_suspend(deepidle);
> if (ret)
> return ret;
>
> @@ -46,8 +47,8 @@ static int mvebu_v7_enter_idle(struct cpuidle_device *dev,
> return index;
> }
>
> -static struct cpuidle_driver mvebu_v7_idle_driver = {
> - .name = "mvebu_v7_idle",
> +static struct cpuidle_driver armadaxp_cpuidle_driver = {
> + .name = "armada_xp_idle",
> .states[0] = ARM_CPUIDLE_WFI_STATE,
> .states[1] = {
> .enter = mvebu_v7_enter_idle,
> @@ -55,7 +56,7 @@ static struct cpuidle_driver mvebu_v7_idle_driver = {
> .power_usage = 50,
> .target_residency = 100,
> .flags = CPUIDLE_FLAG_TIME_VALID,
> - .name = "MV CPU IDLE",
> + .name = "Idle",
> .desc = "CPU power down",
> },
> .states[2] = {
> @@ -63,19 +64,26 @@ static struct cpuidle_driver mvebu_v7_idle_driver = {
> .exit_latency = 100,
> .power_usage = 5,
> .target_residency = 1000,
> - .flags = CPUIDLE_FLAG_TIME_VALID |
> - MVEBU_V7_FLAG_DEEP_IDLE,
> - .name = "MV CPU DEEP IDLE",
> + .flags = (CPUIDLE_FLAG_TIME_VALID |
> + MVEBU_V7_FLAG_DEEP_IDLE),
> + .name = "Deep idle",
> .desc = "CPU and L2 Fabric power down",
> },
> - .state_count = MVEBU_V7_MAX_STATES,
> + .state_count = 3,
> };
>
> static int mvebu_v7_cpuidle_probe(struct platform_device *pdev)
> {
> + struct cpuidle_driver *drv;
> +
> + pcpuidle = pdev->dev.platform_data;
> +
> + if (pcpuidle->type == CPUIDLE_ARMADA_XP)
> + drv = &armadaxp_cpuidle_driver;
> + else
> + return -EINVAL;
>
> - mvebu_v7_cpu_suspend = (void *)(pdev->dev.platform_data);
> - return cpuidle_register(&mvebu_v7_idle_driver, NULL);
> + return cpuidle_register(drv, NULL);
> }
>
> static struct platform_driver mvebu_v7_cpuidle_plat_driver = {
> diff --git a/include/linux/mvebu-v7-cpuidle.h b/include/linux/mvebu-v7-cpuidle.h
> new file mode 100644
> index 0000000..00fde86
> --- /dev/null
> +++ b/include/linux/mvebu-v7-cpuidle.h
> @@ -0,0 +1,26 @@
> +/*
> + * Marvell EBU cpuidle defintion
> + *
> + * Copyright (C) 2014 Marvell
> + *
> + * Gregory CLEMENT <gregory.clement@free-electrons.com>
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2. This program is licensed "as is" without any
> + * warranty of any kind, whether express or implied.
> + *
> + */
> +
> +#ifndef __LINUX_MVEBU_V7_CPUIDLE_H__
> +#define __LINUX_MVEBU_V7_CPUIDLE_H__
> +
> +enum mvebu_v7_cpuidle_types {
> + CPUIDLE_ARMADA_XP,
> +};
> +
> +struct mvebu_v7_cpuidle {
> + int type;
> + int (*cpu_suspend)(unsigned long deepidle);
> +};
> +
> +#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
next prev parent reply other threads:[~2014-07-21 10:59 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-09 13:40 [PATCHv2 00/17] cpuidle for Marvell Armada 370 and 38x Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 01/17] ARM: mvebu: split again armada_370_xp_pmsu_idle_enter() in PMSU code Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 02/17] ARM: mvebu: sort the #include of pmsu.c in alphabetic order Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 03/17] ARM: mvebu: add a common function for the boot address work around Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 04/17] ARM: mvebu: use the common function for Armada 375 SMP workaround Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 05/17] ARM: mvebu: rename the armada_370_xp symbols to mvebu_v7 in pmsu.c Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 06/17] ARM: mvebu: make the cpuidle initialization more generic Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 07/17] ARM: mvebu: use a local variable to store the resume address Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 08/17] ARM: mvebu: make the snoop disabling optional in mvebu_v7_pmsu_idle_prepare() Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 09/17] ARM: mvebu: export the SCU address Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 10/17] ARM: mvebu: add CA9 MPcore SoC Controller node Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 11/17] cpuidle: mvebu: rename the driver from armada-370-xp to mvebu-v7 Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-21 9:59 ` Daniel Lezcano
2014-07-21 9:59 ` Daniel Lezcano
2014-07-09 13:40 ` [PATCHv2 12/17] cpuidle: mvebu: make the cpuidle driver capable of handling multiple SoCs Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-21 10:59 ` Daniel Lezcano [this message]
2014-07-21 10:59 ` Daniel Lezcano
2014-07-21 11:12 ` Thomas Petazzoni
2014-07-21 11:12 ` Thomas Petazzoni
2014-07-21 11:16 ` Arnd Bergmann
2014-07-21 11:16 ` Arnd Bergmann
2014-07-21 11:19 ` Thomas Petazzoni
2014-07-21 11:19 ` Thomas Petazzoni
2014-07-21 11:30 ` Arnd Bergmann
2014-07-21 11:30 ` Arnd Bergmann
2014-07-21 11:35 ` Thomas Petazzoni
2014-07-21 11:35 ` Thomas Petazzoni
2014-07-21 12:00 ` Arnd Bergmann
2014-07-21 12:00 ` Arnd Bergmann
2014-07-21 12:09 ` Thomas Petazzoni
2014-07-21 12:09 ` Thomas Petazzoni
2014-07-21 12:34 ` Daniel Lezcano
2014-07-21 12:34 ` Daniel Lezcano
2014-07-21 12:38 ` Thomas Petazzoni
2014-07-21 12:38 ` Thomas Petazzoni
2014-07-21 12:51 ` Arnd Bergmann
2014-07-21 12:51 ` Arnd Bergmann
2014-07-21 13:12 ` Daniel Lezcano
2014-07-21 13:12 ` Daniel Lezcano
2014-07-09 13:40 ` [PATCHv2 13/17] cpuidle: mvebu: add Armada 370 support Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 14/17] cpuidle: mvebu: add Armada 38x support Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 15/17] ARM: mvebu: add cpuidle support for Armada 370 Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 16/17] ARM: mvebu: add cpuidle support for Armada 38x Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-09 13:40 ` [PATCHv2 17/17] ARM: mvebu: defconfig: enable cpuidle support in mvebu_v7_defconfig Thomas Petazzoni
2014-07-09 13:40 ` Thomas Petazzoni
2014-07-13 22:22 ` [PATCHv2 00/17] cpuidle for Marvell Armada 370 and 38x Jason Cooper
2014-07-13 22:22 ` Jason Cooper
2014-07-16 12:45 ` Jason Cooper
2014-07-16 12:45 ` Jason Cooper
2014-07-16 12:59 ` Thomas Petazzoni
2014-07-16 12:59 ` Thomas Petazzoni
2014-07-16 13:10 ` Jason Cooper
2014-07-16 13:10 ` Jason Cooper
2014-07-16 13:16 ` Jason Cooper
2014-07-16 13:16 ` Jason Cooper
2014-07-16 13:19 ` Thomas Petazzoni
2014-07-16 13:19 ` Thomas Petazzoni
2014-07-16 13:27 ` Jason Cooper
2014-07-16 13:27 ` Jason Cooper
2014-07-16 13:28 ` Thomas Petazzoni
2014-07-16 13:28 ` Thomas Petazzoni
2014-07-16 22:18 ` Rafael J. Wysocki
2014-07-16 22:18 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53CCF295.6030907@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=alior@marvell.com \
--cc=andrew@lunn.ch \
--cc=ezequiel.garcia@free-electrons.com \
--cc=gregory.clement@free-electrons.com \
--cc=jason@lakedaemon.net \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-pm@vger.kernel.org \
--cc=nadavh@marvell.com \
--cc=rjw@rjwysocki.net \
--cc=sebastian.hesselbarth@gmail.com \
--cc=tawfik@marvell.com \
--cc=thomas.petazzoni@free-electrons.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.