[PATCH] powerpc/pseries: Quieten relocation on exceptions warning
The hypervisor returns H_P2 if relocation on exceptions are not supported. If we get this, just print a lower priority informational message. Signed-off-by: Anton Blanchard --- arch/powerpc/platforms/pseries/setup.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index 125c589..fcc9227 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c @@ -499,7 +499,11 @@ static void __init pSeries_setup_arch(void) if (firmware_has_feature(FW_FEATURE_SET_MODE)) { long rc; - if ((rc = pSeries_enable_reloc_on_exc()) != H_SUCCESS) { + + rc = pSeries_enable_reloc_on_exc(); + if (rc == H_P2) { + pr_info("Relocation on exceptions not supported\n"); + } else if (rc != H_SUCCESS) { pr_warn("Unable to enable relocation on exceptions: " "%ld\n", rc); } -- 1.9.1 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH] powerpc/pseries: Quieten relocation on exceptions warning
> The hypervisor returns H_P2 if relocation on exceptions are > not supported. If we get this, just print a lower priority > informational message. Can you add something about why this is needed? Something about h_set_mode being available so we can enable LE but not supporting any of the other calls like AIL? Mikey > Signed-off-by: Anton Blanchard > --- > arch/powerpc/platforms/pseries/setup.c | 6 +- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/platforms/pseries/setup.c > b/arch/powerpc/platforms/pseries/setup.c > index 125c589..fcc9227 100644 > --- a/arch/powerpc/platforms/pseries/setup.c > +++ b/arch/powerpc/platforms/pseries/setup.c > @@ -499,7 +499,11 @@ static void __init pSeries_setup_arch(void) > > if (firmware_has_feature(FW_FEATURE_SET_MODE)) { > long rc; > - if ((rc = pSeries_enable_reloc_on_exc()) != H_SUCCESS) { > + > + rc = pSeries_enable_reloc_on_exc(); > + if (rc == H_P2) { > + pr_info("Relocation on exceptions not supported\n"); > + } else if (rc != H_SUCCESS) { > pr_warn("Unable to enable relocation on exceptions: " > "%ld\n", rc); > } ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
RE: [PATCH] cpufreq: qoriq: Make the driver usable on all QorIQ platforms
Thanks for your comments. Will address them in next version. Also some explanations inline for your comments. Thanks, Yuantian > -Original Message- > From: Kumar Gala [mailto:ga...@kernel.crashing.org] > Sent: Friday, October 17, 2014 4:04 PM > To: Tang Yuantian-B29983 > Cc: r...@rjwysocki.net; viresh.ku...@linaro.org; linux-ker...@vger.kernel.org; > linux...@vger.kernel.org; linuxppc-...@ozlabs.org; Tang Yuantian-B29983 > Subject: Re: [PATCH] cpufreq: qoriq: Make the driver usable on all QorIQ > platforms > > > On Oct 17, 2014, at 5:13 AM, b29...@freescale.com wrote: > > > From: Tang Yuantian > > > > Freescale introduced new ARM core-based SoCs which support dynamic > > frequency switch feature. DFS on new SoCs are compatible with current > > PowerPC CoreNet platforms. In order to support those new platforms, > > this driver needs to be slightly adjusted. The main changes include: > > > > 1. Changed the names of driver and functions in driver. > > split the name changes/renaming into a separate patch from the other changes. > > > 2. Added two new functions get_cpu_physical_id() and get_bus_freq(). > > 3. Used a new way to get all the CPUs which sharing clock wire. > > > > Signed-off-by: Tang Yuantian > > --- > > drivers/cpufreq/Kconfig.arm| 8 ++ > > drivers/cpufreq/Kconfig.powerpc| 11 +- > > drivers/cpufreq/Makefile | 2 +- > > .../{ppc-corenet-cpufreq.c => qoriq-cpufreq.c} | 150 > > ++--- > > 4 files changed, 114 insertions(+), 57 deletions(-) rename > > drivers/cpufreq/{ppc-corenet-cpufreq.c => qoriq-cpufreq.c} (72%) > > > > diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm > > index 83a75dc..1925ae94 100644 > > --- a/drivers/cpufreq/Kconfig.arm > > +++ b/drivers/cpufreq/Kconfig.arm > > @@ -247,3 +247,11 @@ config ARM_TEGRA_CPUFREQ > > default y > > help > > This adds the CPUFreq driver support for TEGRA SOCs. > > + > > +config QORIQ_CPUFREQ > > + tristate "CPU frequency scaling driver for Freescale QorIQ SoCs" > > + depends on OF && COMMON_CLK > > + select CLK_PPC_CORENET > > Why are you not also renaming 'CLK_PPC_CORENET' to 'CLK_QORIQ' or > something like that? Seems rather odd to select a PPC CLK support on ARM ;) > Yes, someone else is working on that. > > + help > > + This adds the CPUFreq driver support for Freescale QorIQ SoCs > > + which are capable of changing the CPU's frequency dynamically. > > diff --git a/drivers/cpufreq/Kconfig.powerpc > > b/drivers/cpufreq/Kconfig.powerpc index 72564b7..3a34248 100644 > > --- a/drivers/cpufreq/Kconfig.powerpc > > +++ b/drivers/cpufreq/Kconfig.powerpc > > @@ -23,14 +23,13 @@ config CPU_FREQ_MAPLE > > This adds support for frequency switching on Maple 970FX > > Evaluation Board and compatible boards (IBM JS2x blades). > > > > -config PPC_CORENET_CPUFREQ > > - tristate "CPU frequency scaling driver for Freescale E500MC SoCs" > > - depends on PPC_E500MC && OF && COMMON_CLK > > +config QORIQ_CPUFREQ > > + tristate "CPU frequency scaling driver for Freescale QorIQ SoCs" > > + depends on OF && COMMON_CLK > > select CLK_PPC_CORENET > > help > > - This adds the CPUFreq driver support for Freescale e500mc, > > - e5500 and e6500 series SoCs which are capable of changing > > - the CPU's frequency dynamically. > > + This adds the CPUFreq driver support for Freescale QorIQ SoCs > > + which are capable of changing the CPU's frequency dynamically. > > > > config CPU_FREQ_PMAC > > bool "Support for Apple PowerBooks" > > diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile index > > 40c53dc..0020049 100644 > > --- a/drivers/cpufreq/Makefile > > +++ b/drivers/cpufreq/Makefile > > @@ -84,7 +84,7 @@ obj-$(CONFIG_CPU_FREQ_CBE)+= > ppc-cbe-cpufreq.o > > ppc-cbe-cpufreq-y += ppc_cbe_cpufreq_pervasive.o > ppc_cbe_cpufreq.o > > obj-$(CONFIG_CPU_FREQ_CBE_PMI) += ppc_cbe_cpufreq_pmi.o > > obj-$(CONFIG_CPU_FREQ_MAPLE)+= maple-cpufreq.o > > -obj-$(CONFIG_PPC_CORENET_CPUFREQ) += ppc-corenet-cpufreq.o > > +obj-$(CONFIG_QORIQ_CPUFREQ)+= qoriq-cpufreq.o > > obj-$(CONFIG_CPU_FREQ_PMAC) += pmac32-cpufreq.o > > obj-$(CONFIG_CPU_FREQ_PMAC64) += pmac64-cpufreq.o > > obj-$(CONFIG_PPC_PASEMI_CPUFREQ)+= pasemi-cpufreq.o > > diff --git a/drivers/cpufreq/ppc-corenet-cpufreq.c > > b/drivers/cpufreq/qoriq-cpufreq.c similarity index 72% rename from > > drivers/cpufreq/ppc-corenet-cpufreq.c > > rename to drivers/cpufreq/qoriq-cpufreq.c index bee5df7..80def0c > > 100644 > > --- a/drivers/cpufreq/ppc-corenet-cpufreq.c > > +++ b/drivers/cpufreq/qoriq-cpufreq.c > > @@ -1,7 +1,7 @@ > > /* > > * Copyright 2013 Freescale Semiconductor, Inc. > > * > > - * CPU Frequency Scaling driver for Freescale PowerPC corenet SoCs. > > + * CPU Frequency Scaling driver for Freescale QorIQ
RE: [PATCH] cpufreq: qoriq: Make the driver usable on all QorIQ platforms
Thanks for your comments. Your comments will be addressed in next version. Some explanations inline. Thanks, Yuantian > -Original Message- > From: Viresh Kumar [mailto:viresh.ku...@linaro.org] > Sent: Friday, October 17, 2014 4:09 PM > To: Tang Yuantian-B29983 > Cc: Rafael J. Wysocki; Linux Kernel Mailing List; linux...@vger.kernel.org; > linuxppc-...@ozlabs.org; Tang Yuantian-B29983 > Subject: Re: [PATCH] cpufreq: qoriq: Make the driver usable on all QorIQ > platforms > > On 17 October 2014 08:43, wrote: > > Hi B29983 :) > > > From: Tang Yuantian > > > > Freescale introduced new ARM core-based SoCs which support dynamic > > frequency switch feature. DFS on new SoCs are compatible with current > > PowerPC CoreNet platforms. In order to support those new platforms, > > this driver needs to be slightly adjusted. The main changes include: > > > > 1. Changed the names of driver and functions in driver. > > 2. Added two new functions get_cpu_physical_id() and get_bus_freq(). > > 3. Used a new way to get all the CPUs which sharing clock wire. > > > > Signed-off-by: Tang Yuantian > > --- > > drivers/cpufreq/Kconfig.arm| 8 ++ > > drivers/cpufreq/Kconfig.powerpc| 11 +- > > drivers/cpufreq/Makefile | 2 +- > > .../{ppc-corenet-cpufreq.c => qoriq-cpufreq.c} | 150 > ++--- > > 4 files changed, 114 insertions(+), 57 deletions(-) rename > > drivers/cpufreq/{ppc-corenet-cpufreq.c => qoriq-cpufreq.c} (72%) > > > > diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm > > index 83a75dc..1925ae94 100644 > > --- a/drivers/cpufreq/Kconfig.arm > > +++ b/drivers/cpufreq/Kconfig.arm > > @@ -247,3 +247,11 @@ config ARM_TEGRA_CPUFREQ > > default y > > help > > This adds the CPUFreq driver support for TEGRA SOCs. > > + > > +config QORIQ_CPUFREQ > > + tristate "CPU frequency scaling driver for Freescale QorIQ SoCs" > > + depends on OF && COMMON_CLK > > + select CLK_PPC_CORENET > > + help > > + This adds the CPUFreq driver support for Freescale QorIQ SoCs > > + which are capable of changing the CPU's frequency dynamically. > > diff --git a/drivers/cpufreq/Kconfig.powerpc > > b/drivers/cpufreq/Kconfig.powerpc index 72564b7..3a34248 100644 > > --- a/drivers/cpufreq/Kconfig.powerpc > > +++ b/drivers/cpufreq/Kconfig.powerpc > > @@ -23,14 +23,13 @@ config CPU_FREQ_MAPLE > > This adds support for frequency switching on Maple 970FX > > Evaluation Board and compatible boards (IBM JS2x blades). > > > > -config PPC_CORENET_CPUFREQ > > - tristate "CPU frequency scaling driver for Freescale E500MC SoCs" > > - depends on PPC_E500MC && OF && COMMON_CLK > > +config QORIQ_CPUFREQ > > + tristate "CPU frequency scaling driver for Freescale QorIQ SoCs" > > + depends on OF && COMMON_CLK > > select CLK_PPC_CORENET > > help > > - This adds the CPUFreq driver support for Freescale e500mc, > > - e5500 and e6500 series SoCs which are capable of changing > > - the CPU's frequency dynamically. > > + This adds the CPUFreq driver support for Freescale QorIQ SoCs > > + which are capable of changing the CPU's frequency dynamically. > > > > config CPU_FREQ_PMAC > > bool "Support for Apple PowerBooks" > > Don't need this duplication at all. Just move this to Kconfig instead of .arm > and > ppc. > > > diff --git a/drivers/cpufreq/ppc-corenet-cpufreq.c > > b/drivers/cpufreq/qoriq-cpufreq.c > > > /** > > * struct cpu_data - per CPU data struct @@ -69,9 +68,6 @@ static > > const u32 *fmask; > > > > static DEFINE_PER_CPU(struct cpu_data *, cpu_data); > > > > -/* cpumask in a cluster */ > > -static DEFINE_PER_CPU(cpumask_var_t, cpu_mask); > > - > > #ifndef CONFIG_SMP > > static inline const struct cpumask *cpu_core_mask(int cpu) { @@ > > -79,6 +75,79 @@ static inline const struct cpumask *cpu_core_mask(int > > cpu) } #endif > > > > +#if defined(CONFIG_PPC_E500MC) > > +static int get_cpu_physical_id(int cpu) { > > + return get_hard_smp_processor_id(cpu); } #elif > > +defined(CONFIG_ARM) > > Wouldn't a #else work here as there are just two platforms we are talking > about ? > > > +static int get_cpu_physical_id(int cpu) { > > + return topology_core_id(cpu); > > +} > > +#endif > > + > > +static u32 get_bus_freq(void) > > +{ > > + struct device_node *soc; > > + u32 sysfreq; > > + > > + soc = of_find_node_by_type(NULL, "soc"); > > + if (!soc) > > + return 0; > > + > > + if (of_property_read_u32(soc, "bus-frequency", &sysfreq)) > > + sysfreq = 0; > > + > > + of_node_put(soc); > > + > > + return sysfreq; > > +} > > + > > +static struct device_node *cpu_to_clk_node(int cpu) { > > + struct device_node *np, *clk_np; > > + > > + if (!cpu_present(cpu)) > > +