From: Mark Langsdorf <mark.langsdorf@calxeda.com> To: linux-kernel@vger.kernel.org, cpufreq@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Mark Langsdorf <mark.langsdorf@calxeda.com> Subject: [PATCH 4/4] cpufreq, highbank: add support for highbank cpufreq Date: Fri, 25 Jan 2013 13:46:45 -0600 [thread overview] Message-ID: <1359143205-20279-5-git-send-email-mark.langsdorf@calxeda.com> (raw) In-Reply-To: <1359143205-20279-1-git-send-email-mark.langsdorf@calxeda.com> Highbank processors depend on the external ECME to perform voltage management based on a requested frequency. Communication between the A9 cores and the ECME happens over the pl320 IPC channel. Signed-off-by: Mark Langsdorf <mark.langsdorf@calxeda.com> Reviewed-by: Shawn Guo <shawn.guo@linaro.org> Reviewed-by: Mike Turquette <mturquette@linaro.org> --- Changes from v10 Now finds a cpu node by searching under /cpus and looking for something with an operating-points descriptor. This applies to both highbank-cpufreq and cpufreq-cpu0. Changes from v9 Added Mike Turquette's reviewed by. Used to be the 6th patch in the series. Changes from v8 Added Shawn Guo's reviewed by. Removed some magic numbers. Changed failure returns in clk_notify from NOTIFY_STOP to NOTIFY_BAD. Changes from v7 Removed old attribution to cpufreq-cpu0. Added some description in the documentation. Made cpu_dev, cpu_clk into local variables. Removed __devinit. Removed some unneeded includes. Added a brace to clarify some nested if logic. Changes from v6 Removed devicetree bindings documentation. Restructured driver to use clk notifications. Core driver logic is now cpufreq-clk0. Changes from v5 Changed ipc_transmit() to pl320_ipc_transmit(). Changes from v4 Removed erroneous changes to arch/arm/Kconfig. Removed unnecessary changes to drivers/cpufreq/Kconfig.arm Alphabetized additions to arch/arm/mach-highbank/Kconfig Changed ipc call and header to match new ipc location in drivers/mailbox. Changes from v3 None. Changes from v2 Changed transition latency binding in code to match documentation. Changes from v1 Added highbank specific Kconfig changes. arch/arm/boot/dts/highbank.dts | 10 ++++ arch/arm/mach-highbank/Kconfig | 2 + drivers/cpufreq/Kconfig.arm | 15 +++++ drivers/cpufreq/Makefile | 3 +- drivers/cpufreq/cpufreq-cpu0.c | 6 +- drivers/cpufreq/highbank-cpufreq.c | 112 +++++++++++++++++++++++++++++++++++++ 6 files changed, 146 insertions(+), 2 deletions(-) create mode 100644 drivers/cpufreq/highbank-cpufreq.c diff --git a/arch/arm/boot/dts/highbank.dts b/arch/arm/boot/dts/highbank.dts index 5927a8d..6aad34a 100644 --- a/arch/arm/boot/dts/highbank.dts +++ b/arch/arm/boot/dts/highbank.dts @@ -37,6 +37,16 @@ next-level-cache = <&L2>; clocks = <&a9pll>; clock-names = "cpu"; + operating-points = < + /* kHz ignored */ + 1300000 1000000 + 1200000 1000000 + 1100000 1000000 + 800000 1000000 + 400000 1000000 + 200000 1000000 + >; + clock-latency = <100000>; }; cpu@901 { diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig index 2388085..44b12f9 100644 --- a/arch/arm/mach-highbank/Kconfig +++ b/arch/arm/mach-highbank/Kconfig @@ -1,5 +1,7 @@ config ARCH_HIGHBANK bool "Calxeda ECX-1000/2000 (Highbank/Midway)" if ARCH_MULTI_V7 + select ARCH_HAS_CPUFREQ + select ARCH_HAS_OPP select ARCH_WANT_OPTIONAL_GPIOLIB select ARM_AMBA select ARM_GIC diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm index a0b3661..ffe55b8 100644 --- a/drivers/cpufreq/Kconfig.arm +++ b/drivers/cpufreq/Kconfig.arm @@ -83,3 +83,18 @@ config ARM_SPEAR_CPUFREQ default y help This adds the CPUFreq driver support for SPEAr SOCs. + +config ARM_HIGHBANK_CPUFREQ + tristate "Calxeda Highbank-based" + depends on ARCH_HIGHBANK + select CPU_FREQ_TABLE + select GENERIC_CPUFREQ_CPU0 + select PM_OPP + select REGULATOR + + default m + help + This adds the CPUFreq driver for Calxeda Highbank SoC + based boards. + + If in doubt, say N. diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile index fadc4d4..31e6f19 100644 --- a/drivers/cpufreq/Makefile +++ b/drivers/cpufreq/Makefile @@ -50,8 +50,9 @@ obj-$(CONFIG_ARM_EXYNOS_CPUFREQ) += exynos-cpufreq.o obj-$(CONFIG_ARM_EXYNOS4210_CPUFREQ) += exynos4210-cpufreq.o obj-$(CONFIG_ARM_EXYNOS4X12_CPUFREQ) += exynos4x12-cpufreq.o obj-$(CONFIG_ARM_EXYNOS5250_CPUFREQ) += exynos5250-cpufreq.o -obj-$(CONFIG_ARM_OMAP2PLUS_CPUFREQ) += omap-cpufreq.o +obj-$(CONFIG_ARM_OMAP2PLUS_CPUFREQ) += omap-cpufreq.o obj-$(CONFIG_ARM_SPEAR_CPUFREQ) += spear-cpufreq.o +obj-$(CONFIG_ARM_HIGHBANK_CPUFREQ) += highbank-cpufreq.o ################################################################################## # PowerPC platform drivers diff --git a/drivers/cpufreq/cpufreq-cpu0.c b/drivers/cpufreq/cpufreq-cpu0.c index 52bf36d..90e9d73 100644 --- a/drivers/cpufreq/cpufreq-cpu0.c +++ b/drivers/cpufreq/cpufreq-cpu0.c @@ -179,7 +179,11 @@ static int cpu0_cpufreq_driver_init(void) struct device_node *np; int ret; - np = of_find_node_by_path("/cpus/cpu@0"); + for_each_child_of_node(of_find_node_by_path("/cpus"), np) { + if (of_get_property(np, "operating-points", NULL)) + break; + } + if (!np) { pr_err("failed to find cpu0 node\n"); return -ENOENT; diff --git a/drivers/cpufreq/highbank-cpufreq.c b/drivers/cpufreq/highbank-cpufreq.c new file mode 100644 index 0000000..a5bad89 --- /dev/null +++ b/drivers/cpufreq/highbank-cpufreq.c @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2012 Calxeda, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This driver provides the clk notifier callbacks that are used when + * the cpufreq-cpu0 driver changes to frequency to alert the highbank + * EnergyCore Management Engine (ECME) about the need to change + * voltage. The ECME interfaces with the actual voltage regulators. + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/clk.h> +#include <linux/cpu.h> +#include <linux/err.h> +#include <linux/of.h> +#include <linux/mailbox.h> + +#define HB_CPUFREQ_CHANGE_NOTE 0x80000001 +#define HB_CPUFREQ_IPC_LEN 7 +#define HB_CPUFREQ_VOLT_RETRIES 15 + +static int hb_voltage_change(unsigned int freq) +{ + int i; + u32 msg[HB_CPUFREQ_IPC_LEN]; + + msg[0] = HB_CPUFREQ_CHANGE_NOTE; + msg[1] = freq / 1000000; + for (i = 2; i < HB_CPUFREQ_IPC_LEN; i++) + msg[i] = 0; + + return pl320_ipc_transmit(msg); +} + +static int hb_cpufreq_clk_notify(struct notifier_block *nb, + unsigned long action, void *hclk) +{ + struct clk_notifier_data *clk_data = hclk; + int i = 0; + + if (action == PRE_RATE_CHANGE) { + if (clk_data->new_rate > clk_data->old_rate) + while (hb_voltage_change(clk_data->new_rate)) + if (i++ > HB_CPUFREQ_VOLT_RETRIES) + return NOTIFY_BAD; + } else if (action == POST_RATE_CHANGE) { + if (clk_data->new_rate < clk_data->old_rate) + while (hb_voltage_change(clk_data->new_rate)) + if (i++ > HB_CPUFREQ_VOLT_RETRIES) + return NOTIFY_BAD; + } + + return NOTIFY_DONE; +} + +static struct notifier_block hb_cpufreq_clk_nb = { + .notifier_call = hb_cpufreq_clk_notify, +}; + +static int hb_cpufreq_driver_init(void) +{ + struct device *cpu_dev; + struct clk *cpu_clk; + struct device_node *np; + int ret; + + for_each_child_of_node(of_find_node_by_path("/cpus"), np) + if (of_get_property(np, "operating-points", NULL)) + break; + + if (!np) { + pr_err("failed to find highbank cpufreq node\n"); + return -ENOENT; + } + + cpu_dev = get_cpu_device(0); + if (!cpu_dev) { + pr_err("failed to get highbank cpufreq device\n"); + ret = -ENODEV; + goto out_put_node; + } + + cpu_dev->of_node = np; + + cpu_clk = clk_get(cpu_dev, NULL); + if (IS_ERR(cpu_clk)) { + ret = PTR_ERR(cpu_clk); + pr_err("failed to get cpu0 clock: %d\n", ret); + goto out_put_node; + } + + ret = clk_notifier_register(cpu_clk, &hb_cpufreq_clk_nb); + if (ret) { + pr_err("failed to register clk notifier: %d\n", ret); + goto out_put_node; + } + +out_put_node: + of_node_put(np); + return ret; +} +module_init(hb_cpufreq_driver_init); + +MODULE_AUTHOR("Mark Langsdorf <mark.langsdorf@calxeda.com>"); +MODULE_DESCRIPTION("Calxeda Highbank cpufreq driver"); +MODULE_LICENSE("GPL"); -- 1.7.11.7
WARNING: multiple messages have this Message-ID (diff)
From: mark.langsdorf@calxeda.com (Mark Langsdorf) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 4/4] cpufreq, highbank: add support for highbank cpufreq Date: Fri, 25 Jan 2013 13:46:45 -0600 [thread overview] Message-ID: <1359143205-20279-5-git-send-email-mark.langsdorf@calxeda.com> (raw) In-Reply-To: <1359143205-20279-1-git-send-email-mark.langsdorf@calxeda.com> Highbank processors depend on the external ECME to perform voltage management based on a requested frequency. Communication between the A9 cores and the ECME happens over the pl320 IPC channel. Signed-off-by: Mark Langsdorf <mark.langsdorf@calxeda.com> Reviewed-by: Shawn Guo <shawn.guo@linaro.org> Reviewed-by: Mike Turquette <mturquette@linaro.org> --- Changes from v10 Now finds a cpu node by searching under /cpus and looking for something with an operating-points descriptor. This applies to both highbank-cpufreq and cpufreq-cpu0. Changes from v9 Added Mike Turquette's reviewed by. Used to be the 6th patch in the series. Changes from v8 Added Shawn Guo's reviewed by. Removed some magic numbers. Changed failure returns in clk_notify from NOTIFY_STOP to NOTIFY_BAD. Changes from v7 Removed old attribution to cpufreq-cpu0. Added some description in the documentation. Made cpu_dev, cpu_clk into local variables. Removed __devinit. Removed some unneeded includes. Added a brace to clarify some nested if logic. Changes from v6 Removed devicetree bindings documentation. Restructured driver to use clk notifications. Core driver logic is now cpufreq-clk0. Changes from v5 Changed ipc_transmit() to pl320_ipc_transmit(). Changes from v4 Removed erroneous changes to arch/arm/Kconfig. Removed unnecessary changes to drivers/cpufreq/Kconfig.arm Alphabetized additions to arch/arm/mach-highbank/Kconfig Changed ipc call and header to match new ipc location in drivers/mailbox. Changes from v3 None. Changes from v2 Changed transition latency binding in code to match documentation. Changes from v1 Added highbank specific Kconfig changes. arch/arm/boot/dts/highbank.dts | 10 ++++ arch/arm/mach-highbank/Kconfig | 2 + drivers/cpufreq/Kconfig.arm | 15 +++++ drivers/cpufreq/Makefile | 3 +- drivers/cpufreq/cpufreq-cpu0.c | 6 +- drivers/cpufreq/highbank-cpufreq.c | 112 +++++++++++++++++++++++++++++++++++++ 6 files changed, 146 insertions(+), 2 deletions(-) create mode 100644 drivers/cpufreq/highbank-cpufreq.c diff --git a/arch/arm/boot/dts/highbank.dts b/arch/arm/boot/dts/highbank.dts index 5927a8d..6aad34a 100644 --- a/arch/arm/boot/dts/highbank.dts +++ b/arch/arm/boot/dts/highbank.dts @@ -37,6 +37,16 @@ next-level-cache = <&L2>; clocks = <&a9pll>; clock-names = "cpu"; + operating-points = < + /* kHz ignored */ + 1300000 1000000 + 1200000 1000000 + 1100000 1000000 + 800000 1000000 + 400000 1000000 + 200000 1000000 + >; + clock-latency = <100000>; }; cpu at 901 { diff --git a/arch/arm/mach-highbank/Kconfig b/arch/arm/mach-highbank/Kconfig index 2388085..44b12f9 100644 --- a/arch/arm/mach-highbank/Kconfig +++ b/arch/arm/mach-highbank/Kconfig @@ -1,5 +1,7 @@ config ARCH_HIGHBANK bool "Calxeda ECX-1000/2000 (Highbank/Midway)" if ARCH_MULTI_V7 + select ARCH_HAS_CPUFREQ + select ARCH_HAS_OPP select ARCH_WANT_OPTIONAL_GPIOLIB select ARM_AMBA select ARM_GIC diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm index a0b3661..ffe55b8 100644 --- a/drivers/cpufreq/Kconfig.arm +++ b/drivers/cpufreq/Kconfig.arm @@ -83,3 +83,18 @@ config ARM_SPEAR_CPUFREQ default y help This adds the CPUFreq driver support for SPEAr SOCs. + +config ARM_HIGHBANK_CPUFREQ + tristate "Calxeda Highbank-based" + depends on ARCH_HIGHBANK + select CPU_FREQ_TABLE + select GENERIC_CPUFREQ_CPU0 + select PM_OPP + select REGULATOR + + default m + help + This adds the CPUFreq driver for Calxeda Highbank SoC + based boards. + + If in doubt, say N. diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile index fadc4d4..31e6f19 100644 --- a/drivers/cpufreq/Makefile +++ b/drivers/cpufreq/Makefile @@ -50,8 +50,9 @@ obj-$(CONFIG_ARM_EXYNOS_CPUFREQ) += exynos-cpufreq.o obj-$(CONFIG_ARM_EXYNOS4210_CPUFREQ) += exynos4210-cpufreq.o obj-$(CONFIG_ARM_EXYNOS4X12_CPUFREQ) += exynos4x12-cpufreq.o obj-$(CONFIG_ARM_EXYNOS5250_CPUFREQ) += exynos5250-cpufreq.o -obj-$(CONFIG_ARM_OMAP2PLUS_CPUFREQ) += omap-cpufreq.o +obj-$(CONFIG_ARM_OMAP2PLUS_CPUFREQ) += omap-cpufreq.o obj-$(CONFIG_ARM_SPEAR_CPUFREQ) += spear-cpufreq.o +obj-$(CONFIG_ARM_HIGHBANK_CPUFREQ) += highbank-cpufreq.o ################################################################################## # PowerPC platform drivers diff --git a/drivers/cpufreq/cpufreq-cpu0.c b/drivers/cpufreq/cpufreq-cpu0.c index 52bf36d..90e9d73 100644 --- a/drivers/cpufreq/cpufreq-cpu0.c +++ b/drivers/cpufreq/cpufreq-cpu0.c @@ -179,7 +179,11 @@ static int cpu0_cpufreq_driver_init(void) struct device_node *np; int ret; - np = of_find_node_by_path("/cpus/cpu at 0"); + for_each_child_of_node(of_find_node_by_path("/cpus"), np) { + if (of_get_property(np, "operating-points", NULL)) + break; + } + if (!np) { pr_err("failed to find cpu0 node\n"); return -ENOENT; diff --git a/drivers/cpufreq/highbank-cpufreq.c b/drivers/cpufreq/highbank-cpufreq.c new file mode 100644 index 0000000..a5bad89 --- /dev/null +++ b/drivers/cpufreq/highbank-cpufreq.c @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2012 Calxeda, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This driver provides the clk notifier callbacks that are used when + * the cpufreq-cpu0 driver changes to frequency to alert the highbank + * EnergyCore Management Engine (ECME) about the need to change + * voltage. The ECME interfaces with the actual voltage regulators. + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/clk.h> +#include <linux/cpu.h> +#include <linux/err.h> +#include <linux/of.h> +#include <linux/mailbox.h> + +#define HB_CPUFREQ_CHANGE_NOTE 0x80000001 +#define HB_CPUFREQ_IPC_LEN 7 +#define HB_CPUFREQ_VOLT_RETRIES 15 + +static int hb_voltage_change(unsigned int freq) +{ + int i; + u32 msg[HB_CPUFREQ_IPC_LEN]; + + msg[0] = HB_CPUFREQ_CHANGE_NOTE; + msg[1] = freq / 1000000; + for (i = 2; i < HB_CPUFREQ_IPC_LEN; i++) + msg[i] = 0; + + return pl320_ipc_transmit(msg); +} + +static int hb_cpufreq_clk_notify(struct notifier_block *nb, + unsigned long action, void *hclk) +{ + struct clk_notifier_data *clk_data = hclk; + int i = 0; + + if (action == PRE_RATE_CHANGE) { + if (clk_data->new_rate > clk_data->old_rate) + while (hb_voltage_change(clk_data->new_rate)) + if (i++ > HB_CPUFREQ_VOLT_RETRIES) + return NOTIFY_BAD; + } else if (action == POST_RATE_CHANGE) { + if (clk_data->new_rate < clk_data->old_rate) + while (hb_voltage_change(clk_data->new_rate)) + if (i++ > HB_CPUFREQ_VOLT_RETRIES) + return NOTIFY_BAD; + } + + return NOTIFY_DONE; +} + +static struct notifier_block hb_cpufreq_clk_nb = { + .notifier_call = hb_cpufreq_clk_notify, +}; + +static int hb_cpufreq_driver_init(void) +{ + struct device *cpu_dev; + struct clk *cpu_clk; + struct device_node *np; + int ret; + + for_each_child_of_node(of_find_node_by_path("/cpus"), np) + if (of_get_property(np, "operating-points", NULL)) + break; + + if (!np) { + pr_err("failed to find highbank cpufreq node\n"); + return -ENOENT; + } + + cpu_dev = get_cpu_device(0); + if (!cpu_dev) { + pr_err("failed to get highbank cpufreq device\n"); + ret = -ENODEV; + goto out_put_node; + } + + cpu_dev->of_node = np; + + cpu_clk = clk_get(cpu_dev, NULL); + if (IS_ERR(cpu_clk)) { + ret = PTR_ERR(cpu_clk); + pr_err("failed to get cpu0 clock: %d\n", ret); + goto out_put_node; + } + + ret = clk_notifier_register(cpu_clk, &hb_cpufreq_clk_nb); + if (ret) { + pr_err("failed to register clk notifier: %d\n", ret); + goto out_put_node; + } + +out_put_node: + of_node_put(np); + return ret; +} +module_init(hb_cpufreq_driver_init); + +MODULE_AUTHOR("Mark Langsdorf <mark.langsdorf@calxeda.com>"); +MODULE_DESCRIPTION("Calxeda Highbank cpufreq driver"); +MODULE_LICENSE("GPL"); -- 1.7.11.7
next prev parent reply other threads:[~2013-01-25 19:47 UTC|newest] Thread overview: 269+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-10-30 21:04 [PATCH 0/6] cpufreq: add support for Calxeda ECX-1000 (highbank) Mark Langsdorf 2012-10-30 21:04 ` [PATCH 1/6] arm: use devicetree to get smp_twd clock Mark Langsdorf 2012-10-30 21:04 ` Mark Langsdorf 2012-10-30 21:04 ` [PATCH 2/6] clk, highbank: remove non-bypass reset mode Mark Langsdorf 2012-10-30 21:04 ` [PATCH 3/6] cpufreq: tolerate inexact values when collecting stats Mark Langsdorf 2012-10-30 21:04 ` [PATCH 4/6] arm highbank: add support for pl320 IPC Mark Langsdorf 2012-10-30 21:04 ` [PATCH 5/6] power: export opp cpufreq functions Mark Langsdorf 2012-10-31 1:17 ` Nishanth Menon 2012-10-31 1:17 ` Nishanth Menon 2012-10-30 21:04 ` [PATCH 6/6] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2012-10-31 0:21 ` [PATCH 0/6] cpufreq: add support for Calxeda ECX-1000 (highbank) Rafael J. Wysocki [not found] ` <1351685025-26698-1-git-send-email-mark.langsdorf@calxeda.com> 2012-10-31 12:03 ` [PATCH 1/6] arm: use devicetree to get smp_twd clock Mark Langsdorf 2012-10-31 12:03 ` [PATCH 3/6] cpufreq: tolerate inexact values when collecting stats Mark Langsdorf 2012-11-01 2:14 ` MyungJoo Ham 2012-11-02 18:51 ` [PATCH 0/6 v2] cpufreq: add support for Calxeda ECX-1000 (highbank) Mark Langsdorf 2012-11-02 18:51 ` [PATCH 1/6 v2] arm: use devicetree to get smp_twd clock Mark Langsdorf 2012-11-02 18:51 ` Mark Langsdorf 2012-11-02 18:51 ` Mark Langsdorf 2012-11-04 10:08 ` Russell King - ARM Linux 2012-11-04 10:08 ` Russell King - ARM Linux 2012-11-05 22:28 ` Mark Langsdorf 2012-11-05 22:28 ` Mark Langsdorf 2012-11-05 22:31 ` Russell King - ARM Linux 2012-11-05 22:31 ` Russell King - ARM Linux 2012-11-05 22:49 ` Mark Langsdorf 2012-11-05 22:49 ` Mark Langsdorf 2012-11-02 18:51 ` [PATCH 2/6 v2] clk, highbank: remove non-bypass reset mode Mark Langsdorf 2012-11-02 18:51 ` [PATCH 3/6 v2] cpufreq: tolerate inexact values when collecting stats Mark Langsdorf 2012-11-02 18:51 ` [PATCH 4/6 v2] arm highbank: add support for pl320 IPC Mark Langsdorf 2012-11-02 18:51 ` [PATCH 5/6 v2] power: export opp cpufreq functions Mark Langsdorf 2012-11-02 18:51 ` [PATCH 6/6 v2] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2012-11-02 21:45 ` [PATCH 0/6 v2] cpufreq: add support for Calxeda ECX-1000 (highbank) Rafael J. Wysocki 2012-11-06 20:18 ` [PATCH 0/6 v3] " Mark Langsdorf 2012-11-06 20:18 ` [PATCH 1/6 v3] arm: use devicetree to get smp_twd clock Mark Langsdorf 2012-11-06 20:18 ` [PATCH 2/6 v3] clk, highbank: remove non-bypass reset mode Mark Langsdorf 2012-11-06 20:18 ` [PATCH 3/6 v3] cpufreq: tolerate inexact values when collecting stats Mark Langsdorf 2012-11-06 20:18 ` [PATCH 4/6 v3] arm highbank: add support for pl320 IPC Mark Langsdorf 2012-11-06 20:18 ` [PATCH 5/6 v3] power: export opp cpufreq functions Mark Langsdorf 2012-11-06 20:18 ` [PATCH 6/6 v3] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2012-11-07 18:11 ` [PATCH 0/6 v3] cpufreq: add support for Calxeda ECX-1000 (highbank) Mark Langsdorf 2012-11-07 18:32 ` [PATCH 0/6 v4] " Mark Langsdorf 2012-11-07 18:32 ` [PATCH 1/6 v4] arm: use devicetree to get smp_twd clock Mark Langsdorf 2012-11-07 18:32 ` [PATCH 2/6 v4] clk, highbank: Prevent glitches in non-bypass reset mode Mark Langsdorf 2012-11-12 21:24 ` Mike Turquette 2012-11-12 21:24 ` Mike Turquette 2012-11-12 21:35 ` Mark Langsdorf 2012-11-07 18:32 ` [PATCH 3/6 v4] cpufreq: tolerate inexact values when collecting stats Mark Langsdorf 2012-11-11 16:38 ` Borislav Petkov 2012-11-12 16:35 ` Mark Langsdorf 2012-11-13 16:24 ` Borislav Petkov 2012-11-13 16:33 ` Mark Langsdorf 2012-11-13 19:13 ` Mark Langsdorf 2012-11-17 14:50 ` Borislav Petkov 2012-11-24 10:05 ` Rafael J. Wysocki 2012-11-26 13:57 ` Mark Langsdorf 2012-11-26 15:25 ` Rafael J. Wysocki 2012-11-07 18:32 ` [PATCH 4/6 v4] arm highbank: add support for pl320 IPC Mark Langsdorf 2012-11-14 14:03 ` Rob Herring 2012-11-07 18:32 ` [PATCH 5/6 v4] power: export opp cpufreq functions Mark Langsdorf 2012-11-07 18:32 ` [PATCH 6/6 v4] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2012-11-07 18:32 ` Mark Langsdorf 2012-11-07 18:51 ` Rob Herring 2012-11-07 18:51 ` Rob Herring 2012-11-24 10:07 ` [PATCH 0/6 v4] cpufreq: add support for Calxeda ECX-1000 (highbank) Rafael J. Wysocki 2012-11-27 15:04 ` [PATCH 0/6 v5] " Mark Langsdorf 2012-11-27 15:04 ` Mark Langsdorf 2012-11-27 15:04 ` [PATCH 1/6 v5] arm: use devicetree to get smp_twd clock Mark Langsdorf 2012-11-27 15:04 ` Mark Langsdorf 2012-11-27 15:04 ` [PATCH 2/6 v5] clk, highbank: Prevent glitches in non-bypass reset mode Mark Langsdorf 2012-11-27 15:04 ` Mark Langsdorf 2012-11-27 18:15 ` Mike Turquette 2012-11-27 18:15 ` Mike Turquette 2012-11-27 15:04 ` [PATCH 3/6 v5] cpufreq: tolerate inexact values when collecting stats Mark Langsdorf 2012-11-27 15:04 ` Mark Langsdorf 2012-11-27 15:04 ` [PATCH 4/6 v5] arm highbank: add support for pl320 IPC Mark Langsdorf 2012-11-27 15:04 ` Mark Langsdorf 2012-11-27 16:12 ` Thomas Petazzoni 2012-11-27 16:12 ` Thomas Petazzoni 2012-11-27 19:53 ` Mark Langsdorf 2012-11-27 19:53 ` Mark Langsdorf 2012-11-27 19:53 ` Mark Langsdorf [not found] ` <1354602789308-564771.post@n7.nabble.com> 2013-01-29 2:26 ` liuhuan123 2013-02-06 5:43 ` liuhuan123 2013-02-21 5:11 ` liuhuan123 2013-03-21 4:01 ` liuhuan123 2013-03-12 5:29 ` liuhuan123 2012-11-27 15:04 ` [PATCH 5/6 v5] power: export opp cpufreq functions Mark Langsdorf 2012-11-27 15:04 ` Mark Langsdorf 2012-11-27 15:04 ` [PATCH 6/6 v5] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2012-11-27 15:04 ` Mark Langsdorf 2012-11-27 15:04 ` Mark Langsdorf 2012-11-27 19:04 ` [PATCH 0/6 v5] cpufreq: add support for Calxeda ECX-1000 (highbank) Rafael J. Wysocki 2012-11-27 19:04 ` Rafael J. Wysocki 2012-11-27 20:04 ` [PATCH 0/6 v6] " Mark Langsdorf 2012-11-27 20:04 ` Mark Langsdorf 2012-11-27 20:04 ` [PATCH 1/6 v6] arm: use devicetree to get smp_twd clock Mark Langsdorf 2012-11-27 20:04 ` Mark Langsdorf 2012-11-27 20:04 ` [PATCH 2/6 v6] clk, highbank: Prevent glitches in non-bypass reset mode Mark Langsdorf 2012-11-27 20:04 ` Mark Langsdorf 2012-11-27 20:04 ` [PATCH 3/6 v6] cpufreq: tolerate inexact values when collecting stats Mark Langsdorf 2012-11-27 20:04 ` Mark Langsdorf 2012-11-27 20:04 ` [PATCH 4/6 v6] arm highbank: add support for pl320 IPC Mark Langsdorf 2012-11-27 20:04 ` Mark Langsdorf 2012-11-27 20:04 ` Mark Langsdorf 2012-11-27 20:04 ` [PATCH 5/6 v6] power: export opp cpufreq functions Mark Langsdorf 2012-11-27 20:04 ` Mark Langsdorf 2012-11-27 20:04 ` [PATCH 6/6 v6] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2012-11-27 20:04 ` Mark Langsdorf 2012-11-27 20:04 ` Mark Langsdorf 2012-11-28 2:32 ` Shawn Guo 2012-11-28 2:32 ` Shawn Guo 2012-11-28 2:32 ` Shawn Guo 2012-11-28 13:16 ` Mark Langsdorf 2012-11-28 13:16 ` Mark Langsdorf 2012-11-28 13:16 ` Mark Langsdorf 2012-11-28 14:58 ` Shawn Guo 2012-11-28 14:58 ` Shawn Guo 2012-11-28 14:58 ` Shawn Guo 2012-11-28 15:17 ` Shawn Guo 2012-11-28 15:17 ` Shawn Guo 2012-11-28 15:17 ` Shawn Guo 2012-11-28 15:01 ` Mark Langsdorf 2012-11-28 15:01 ` Mark Langsdorf 2012-11-28 15:01 ` Mark Langsdorf 2012-11-28 16:01 ` Mike Turquette 2012-11-28 16:01 ` Mike Turquette 2012-11-28 16:01 ` Mike Turquette 2012-11-28 16:18 ` Mark Langsdorf 2012-11-28 16:18 ` Mark Langsdorf 2012-11-28 16:18 ` Mark Langsdorf 2012-11-28 21:05 ` Mike Turquette 2012-11-28 21:05 ` Mike Turquette 2012-11-28 21:05 ` Mike Turquette 2012-11-29 0:24 ` Mark Langsdorf 2012-11-29 0:24 ` Mark Langsdorf 2012-11-29 0:24 ` Mark Langsdorf 2012-11-29 1:51 ` Shawn Guo 2012-11-29 1:51 ` Shawn Guo 2012-11-29 1:51 ` Shawn Guo 2012-11-29 4:34 ` Mike Turquette 2012-11-29 4:34 ` Mike Turquette 2012-11-29 4:34 ` Mike Turquette 2012-12-04 14:33 ` [PATCH 0/6 v7] cpufreq: add support for Calxeda ECX-1000 (highbank) Mark Langsdorf 2012-12-04 14:33 ` Mark Langsdorf 2012-12-04 14:33 ` [PATCH 1/6 v7] arm: use devicetree to get smp_twd clock Mark Langsdorf 2012-12-04 14:33 ` Mark Langsdorf 2012-12-04 14:33 ` [PATCH 2/6 v7] clk, highbank: Prevent glitches in non-bypass reset mode Mark Langsdorf 2012-12-04 14:33 ` Mark Langsdorf 2012-12-04 14:33 ` [PATCH 3/6 v7] cpufreq: tolerate inexact values when collecting stats Mark Langsdorf 2012-12-04 14:33 ` Mark Langsdorf 2012-12-04 14:34 ` [PATCH 4/6 v7] arm highbank: add support for pl320 IPC Mark Langsdorf 2012-12-04 14:34 ` Mark Langsdorf 2012-12-04 14:34 ` Mark Langsdorf 2012-12-04 14:34 ` [PATCH 5/6 v7] power: export opp cpufreq functions Mark Langsdorf 2012-12-04 14:34 ` Mark Langsdorf 2012-12-04 14:34 ` [PATCH 6/6 v7] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2012-12-04 14:34 ` Mark Langsdorf 2012-12-04 16:21 ` Shawn Guo 2012-12-04 16:21 ` Shawn Guo 2012-12-04 16:21 ` Shawn Guo 2012-12-05 16:48 ` [PATCH 0/6 v8] cpufreq: add support for Calxeda ECX-1000 (highbank) Mark Langsdorf 2012-12-05 16:48 ` Mark Langsdorf 2012-12-05 16:48 ` [PATCH 1/6 v8] arm: use devicetree to get smp_twd clock Mark Langsdorf 2012-12-05 16:48 ` Mark Langsdorf 2012-12-05 16:48 ` [PATCH 2/6 v8] clk, highbank: Prevent glitches in non-bypass reset mode Mark Langsdorf 2012-12-05 16:48 ` Mark Langsdorf 2012-12-05 18:02 ` Mike Turquette 2012-12-05 18:02 ` Mike Turquette 2012-12-05 16:48 ` [PATCH 3/6 v8] cpufreq: tolerate inexact values when collecting stats Mark Langsdorf 2012-12-05 16:48 ` Mark Langsdorf 2012-12-05 16:48 ` [PATCH 4/6 v8] arm highbank: add support for pl320 IPC Mark Langsdorf 2012-12-05 16:48 ` Mark Langsdorf 2012-12-05 16:48 ` [PATCH 5/6 v8] power: export opp cpufreq functions Mark Langsdorf 2012-12-05 16:48 ` Mark Langsdorf 2012-12-05 16:48 ` [PATCH 6/6 v8] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2012-12-05 16:48 ` Mark Langsdorf 2012-12-05 18:49 ` Mike Turquette 2012-12-05 18:49 ` Mike Turquette 2012-12-05 22:09 ` Mark Langsdorf 2012-12-05 22:09 ` Mark Langsdorf 2012-12-05 22:09 ` Mark Langsdorf 2012-12-06 9:37 ` Shawn Guo 2012-12-06 9:37 ` Shawn Guo 2012-12-06 9:37 ` Shawn Guo 2012-12-27 13:12 ` [PATCH 0/6 v8] cpufreq: add support for Calxeda ECX-1000 (highbank) Rafael J. Wysocki 2012-12-27 13:12 ` Rafael J. Wysocki 2012-12-27 13:28 ` Mark Langsdorf 2012-12-27 13:28 ` Mark Langsdorf 2012-12-27 13:28 ` Mark Langsdorf 2012-12-27 14:43 ` Rafael J. Wysocki 2012-12-27 14:43 ` Rafael J. Wysocki 2012-12-27 14:43 ` Rafael J. Wysocki 2012-12-06 22:42 ` [PATCH 0/6 v9] " Mark Langsdorf 2012-12-06 22:42 ` Mark Langsdorf 2012-12-06 22:42 ` [PATCH 1/6 v9] arm: use devicetree to get smp_twd clock Mark Langsdorf 2012-12-06 22:42 ` Mark Langsdorf 2012-12-07 14:55 ` Thiago Farina 2012-12-07 14:55 ` Thiago Farina 2012-12-27 5:11 ` Prashant Gaikwad 2012-12-27 5:11 ` Prashant Gaikwad 2012-12-27 5:11 ` Prashant Gaikwad 2012-12-06 22:42 ` [PATCH 2/6 v9] clk, highbank: Prevent glitches in non-bypass reset mode Mark Langsdorf 2012-12-06 22:42 ` Mark Langsdorf 2012-12-06 22:42 ` [PATCH 3/6 v9] cpufreq: tolerate inexact values when collecting stats Mark Langsdorf 2012-12-06 22:42 ` Mark Langsdorf 2012-12-06 22:42 ` [PATCH 4/6 v9] arm highbank: add support for pl320 IPC Mark Langsdorf 2012-12-06 22:42 ` Mark Langsdorf 2012-12-06 22:42 ` [PATCH 5/6 v9] power: export opp cpufreq functions Mark Langsdorf 2012-12-06 22:42 ` Mark Langsdorf 2012-12-06 22:42 ` [PATCH 6/6 v9] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2012-12-06 22:42 ` Mark Langsdorf 2012-12-07 7:04 ` Mike Turquette 2012-12-07 7:04 ` Mike Turquette 2013-01-04 16:35 ` [PATCH 0/4 v10] cpufreq: add support for Calxeda ECX-1000 (highbank) Mark Langsdorf 2013-01-04 16:35 ` Mark Langsdorf 2013-01-04 16:35 ` [PATCH 1/4 v10] arm: use devicetree to get smp_twd clock Mark Langsdorf 2013-01-04 16:35 ` Mark Langsdorf 2013-01-10 23:34 ` Russell King - ARM Linux 2013-01-10 23:34 ` Russell King - ARM Linux 2013-01-11 14:40 ` Rob Herring 2013-01-11 14:40 ` Rob Herring 2013-01-04 16:35 ` [PATCH 2/4 v10] clk, highbank: Prevent glitches in non-bypass reset mode Mark Langsdorf 2013-01-04 16:35 ` Mark Langsdorf 2013-01-04 16:35 ` [PATCH 3/4 v10] arm highbank: add support for pl320 IPC Mark Langsdorf 2013-01-04 16:35 ` Mark Langsdorf 2013-01-04 16:35 ` [PATCH 4/4 v10] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2013-01-04 16:35 ` Mark Langsdorf 2013-01-25 19:46 ` [PATCH 0/4 v11] cpufreq: add support for Calxeda ECX-1000 (highbank) Mark Langsdorf 2013-01-25 19:46 ` Mark Langsdorf 2013-01-25 19:46 ` [PATCH 1/4 v11] arm: use device tree to get smp_twd clock Mark Langsdorf 2013-01-25 19:46 ` Mark Langsdorf 2013-01-25 21:03 ` Rafael J. Wysocki 2013-01-25 21:03 ` Rafael J. Wysocki 2013-01-25 21:40 ` Russell King - ARM Linux 2013-01-25 21:40 ` Russell King - ARM Linux 2013-01-25 22:15 ` Rafael J. Wysocki 2013-01-25 22:15 ` Rafael J. Wysocki 2013-01-25 19:46 ` [PATCH 2/4 v11] clk, highbank: Prevent glitches in non-bypass reset mode Mark Langsdorf 2013-01-25 19:46 ` Mark Langsdorf 2013-01-25 19:46 ` [PATCH 3/4 v11] arm highbank: add support for pl320 IPC Mark Langsdorf 2013-01-25 19:46 ` Mark Langsdorf 2013-01-28 12:49 ` Rafael J. Wysocki 2013-01-28 12:49 ` Rafael J. Wysocki 2013-01-28 13:44 ` Mark Langsdorf 2013-01-28 13:44 ` Mark Langsdorf 2013-01-28 13:44 ` Mark Langsdorf 2013-01-28 20:48 ` Rafael J. Wysocki 2013-01-28 20:48 ` Rafael J. Wysocki 2013-01-28 20:48 ` Rafael J. Wysocki 2013-01-25 19:46 ` Mark Langsdorf [this message] 2013-01-25 19:46 ` [PATCH 4/4] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2013-01-26 14:39 ` Shawn Guo 2013-01-26 14:39 ` Shawn Guo 2013-01-26 14:39 ` Shawn Guo 2013-01-26 22:24 ` Rafael J. Wysocki 2013-01-26 22:24 ` Rafael J. Wysocki 2013-01-28 8:37 ` Shawn Guo 2013-01-28 8:37 ` Shawn Guo 2013-01-28 8:37 ` Shawn Guo 2013-01-28 16:13 ` [PATCH 0/4 v12] cpufreq: add support for Calxeda ECX-1000 (highbank) Mark Langsdorf 2013-01-28 16:13 ` Mark Langsdorf 2013-01-28 16:13 ` [PATCH 1/4 v12] arm: use device tree to get smp_twd clock Mark Langsdorf 2013-01-28 16:13 ` Mark Langsdorf 2013-01-28 16:13 ` [PATCH 2/4 v12] clk, highbank: Prevent glitches in non-bypass reset mode Mark Langsdorf 2013-01-28 16:13 ` Mark Langsdorf 2013-01-28 16:13 ` [PATCH 3/4 v12] arm highbank: add support for pl320 IPC Mark Langsdorf 2013-01-28 16:13 ` Mark Langsdorf 2013-01-28 16:13 ` [PATCH 4/4 v12] cpufreq, highbank: add support for highbank cpufreq Mark Langsdorf 2013-01-28 16:13 ` Mark Langsdorf
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=1359143205-20279-5-git-send-email-mark.langsdorf@calxeda.com \ --to=mark.langsdorf@calxeda.com \ --cc=cpufreq@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ /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: linkBe 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.