Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* ttySAC0 or ttyS0 in 3.6.x ARM Linux?
From: woody @ 2012-11-15  7:07 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

In the 3.6.6 ARM kernel, should I use ttySAC0 or ttyS0 to specify the 
'console' kernel command line?

Thanks.

-- 
woody
I can't go back to yesterday - because I was a different person then.

^ permalink raw reply

* [PATCH V3 5/5] arm: mvebu: Added SMP support for Armada XP
From: Hui Wang @ 2012-11-15  6:05 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <50A48100.5070601@gmail.com>

Hui Wang wrote:
> Gregory CLEMENT wrote:
>> From: Yehuda Yitschak <yehuday@marvell.com>
>>
>> 1. added smp init functions in platsmp.c
>> 2. added secondary cpu entry point in headsmp.S
>> 3. added hotplog initial support in hotplug.c
>> 4. added SMP support for PJ4B cpu
>>
>> Signed-off-by: Yehuda Yitschak <yehuday@marvell.com>
>> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
>> ---
>> arch/arm/boot/dts/armada-xp.dtsi | 4 ++
>> arch/arm/configs/mvebu_defconfig | 3 +
>> arch/arm/mach-mvebu/Kconfig | 1 +
>> arch/arm/mach-mvebu/Makefile | 2 +
>> arch/arm/mach-mvebu/armada-370-xp.c | 3 +
>> arch/arm/mach-mvebu/common.h | 3 +
>> arch/arm/mach-mvebu/headsmp.S | 66 +++++++++++++++++++
>> arch/arm/mach-mvebu/hotplug.c | 30 +++++++++
>> arch/arm/mach-mvebu/platsmp.c | 124 +++++++++++++++++++++++++++++++++++
>> 9 files changed, 236 insertions(+)
>> create mode 100644 arch/arm/mach-mvebu/headsmp.S
>> create mode 100644 arch/arm/mach-mvebu/hotplug.c
>> create mode 100644 arch/arm/mach-mvebu/platsmp.c
>>
>> diff --git a/arch/arm/boot/dts/armada-xp.dtsi 
>> b/arch/arm/boot/dts/armada-xp.dtsi
>> index 531619f..7f968dc 100644
>> --- a/arch/arm/boot/dts/armada-xp.dtsi
>> +++ b/arch/arm/boot/dts/armada-xp.dtsi
>> @@ -38,24 +38,28 @@
>> #size-cells = <0>;
>>
>> cpu at 0 {
>> + device_type = "cpu";
>> compatible = "marvell,sheeva-v7";
>> reg = <0>;
>> clocks = <&cpuclk 0>;
>> };
>>
>> cpu at 1 {
>> + device_type = "cpu";
>> compatible = "marvell,sheeva-v7";
>> reg = <1>;
>> clocks = <&cpuclk 1>;
>> };
>>
>> cpu at 2 {
>> + device_type = "cpu";
>> compatible = "marvell,sheeva-v7";
>> reg = <2>;
>> clocks = <&cpuclk 2>;
>> };
>>
>> cpu at 3 {
>> + device_type = "cpu";
>> compatible = "marvell,sheeva-v7";
>> reg = <3>;
>> clocks = <&cpuclk 3>;
>> diff --git a/arch/arm/configs/mvebu_defconfig 
>> b/arch/arm/configs/mvebu_defconfig
>> index 3458752..da598d3 100644
>> --- a/arch/arm/configs/mvebu_defconfig
>> +++ b/arch/arm/configs/mvebu_defconfig
>> @@ -12,6 +12,9 @@ CONFIG_ARCH_MVEBU=y
>> CONFIG_MACH_ARMADA_370=y
>> CONFIG_MACH_ARMADA_XP=y
>> # CONFIG_CACHE_L2X0 is not set
>> +# CONFIG_SWP_EMULATE is not set
>> +CONFIG_SMP=y
>> +# CONFIG_LOCAL_TIMERS is not set
>> CONFIG_AEABI=y
>> CONFIG_HIGHMEM=y
>> # CONFIG_COMPACTION is not set
>> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
>> index 9bfaa0c..d70afe3 100644
>> --- a/arch/arm/mach-mvebu/Kconfig
>> +++ b/arch/arm/mach-mvebu/Kconfig
>> @@ -22,6 +22,7 @@ config MVEBU_CLK_CPU
>> config MACH_ARMADA_370_XP
>> bool
>> select ARMADA_370_XP_TIMER
>> + select HAVE_SMP
>> select CPU_PJ4B
>>
>> config MACH_ARMADA_370
>> diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
>> index 8e6e50b..eb3cbd1 100644
>> --- a/arch/arm/mach-mvebu/Makefile
>> +++ b/arch/arm/mach-mvebu/Makefile
>> @@ -3,3 +3,5 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := 
>> -I$(srctree)/$(src)/include \
>>
>> obj-y += system-controller.o
>> obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o 
>> irq-armada-370-xp.o addr-map.o coherency.o pmsu.o
>> +obj-$(CONFIG_SMP) += platsmp.o headsmp.o
>> +obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
>> diff --git a/arch/arm/mach-mvebu/armada-370-xp.c 
>> b/arch/arm/mach-mvebu/armada-370-xp.c
>> index 2af6ce5..66befa1 100644
>> --- a/arch/arm/mach-mvebu/armada-370-xp.c
>> +++ b/arch/arm/mach-mvebu/armada-370-xp.c
>> @@ -22,6 +22,7 @@
>> #include <asm/mach/time.h>
>> #include "armada-370-xp.h"
>> #include "common.h"
>> +#include "coherency.h"
>>
>> static struct map_desc armada_370_xp_io_desc[] __initdata = {
>> {
>> @@ -50,6 +51,7 @@ struct sys_timer armada_370_xp_timer = {
>> static void __init armada_370_xp_dt_init(void)
>> {
>> of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
>> + coherency_init();
>> }
>>
>> static const char * const armada_370_xp_dt_board_dt_compat[] = {
>> @@ -59,6 +61,7 @@ static const char * const 
>> armada_370_xp_dt_board_dt_compat[] = {
>> };
>>
>> DT_MACHINE_START(ARMADA_XP_DT, "Marvell Aramada 370/XP (Device Tree)")
>> + .smp = smp_ops(armada_xp_smp_ops),
>> .init_machine = armada_370_xp_dt_init,
>> .map_io = armada_370_xp_map_io,
>> .init_irq = armada_370_xp_init_irq,
>> diff --git a/arch/arm/mach-mvebu/common.h b/arch/arm/mach-mvebu/common.h
>> index 74ee0b2..86484bb 100644
>> --- a/arch/arm/mach-mvebu/common.h
>> +++ b/arch/arm/mach-mvebu/common.h
>> @@ -21,7 +21,10 @@ void mvebu_clocks_init(void);
>> void armada_370_xp_init_irq(void);
>> void armada_370_xp_handle_irq(struct pt_regs *regs);
>>
>> +void armada_xp_cpu_die(unsigned int cpu);
>>
>> int armada_370_xp_coherency_init(void);
>> int armada_370_xp_pmsu_init(void);
>> +void armada_xp_secondary_startup(void);
>> +extern struct smp_operations armada_xp_smp_ops;
>> #endif
>> diff --git a/arch/arm/mach-mvebu/headsmp.S 
>> b/arch/arm/mach-mvebu/headsmp.S
>> new file mode 100644
>> index 0000000..33db1d5
>> --- /dev/null
>> +++ b/arch/arm/mach-mvebu/headsmp.S
>> @@ -0,0 +1,66 @@
>> +/*
>> + * SMP support: Entry point for secondary CPUs
>> + *
>> + * Copyright (C) 2012 Marvell
>> + *
>> + * Yehuda Yitschak <yehuday@marvell.com>
>> + * Gregory CLEMENT <gregory.clement@free-electrons.com>
>> + * Thomas Petazzoni <thomas.petazzoni@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.
>> + *
>> + * This file implements the assembly entry point for secondary CPUs
>> + * in an SMP kernel. The only thing we need to do is to add the CPU
>> + * to the coherency fabric by writing to 2 registers. Currently these
>> + * register addresses are hard coded due to the early initialisation 
>> problems.
>> + */
>> +
>> +#include <linux/linkage.h>
>> +#include <linux/init.h>
>> +
>> +/*
>> + * At this stage the secondary CPUs don't have acces yet to the MMU, so
>> + * we have to provide physical addresses
>> + */
>> +#define ARMADA_XP_COHERENCY_FABRIC_CTL_REG 0xD0020200
>> +#define ARMADA_XP_COHERENCY_FABRIC_CFG_REG 0xD0020204
>> +
>> + __INIT
>> +
>> +/*
>> + * Armada XP specific entry point for secondary CPUs.
>> + * We add the CPU to the coherency fabric and then jump to secondary
>> + * startup
>> + */
>> +
>> +ENTRY(armada_xp_secondary_startup)
>> +
>> + /* Read CPU id */
>> + mrc p15, 0, r1, c0, c0, 5
>> + and r1, r1, #0xF
>> +
>> + /* Add CPU to coherency fabric */
>> +
>> + /* Create bit by cpu index */
>> + mov r2,r1
>> + add r2,r2,#24
>> + mov r3, #1
>> + lsl r3, r3, r2
>> +
>> + /* Add CPU to SMP group - Atomic */
>> + ldr r0, = ARMADA_XP_COHERENCY_FABRIC_CTL_REG
>> + ldr r10, [r0]
>> + orr r10 , r10, r3
>> + str r10,[r0]
>> +
>> + /* Enable coherency on CPU - Atomic*/
>> + ldr r0, = ARMADA_XP_COHERENCY_FABRIC_CFG_REG
>> + ldr r10, [r0]
>> + orr r10 , r10, r3
>> + str r10,[r0]
>> +
>> + b secondary_startup
>> +
>> +ENDPROC(armada_xp_secondary_startup)
>> diff --git a/arch/arm/mach-mvebu/hotplug.c 
>> b/arch/arm/mach-mvebu/hotplug.c
>> new file mode 100644
>> index 0000000..b228b6a
>> --- /dev/null
>> +++ b/arch/arm/mach-mvebu/hotplug.c
>> @@ -0,0 +1,30 @@
>> +/*
>> + * Symmetric Multi Processing (SMP) support for Armada XP
>> + *
>> + * Copyright (C) 2012 Marvell
>> + *
>> + * Lior Amsalem <alior@marvell.com>
>> + * Gregory CLEMENT <gregory.clement@free-electrons.com>
>> + * Thomas Petazzoni <thomas.petazzoni@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.
>> + */
>> +#include <linux/kernel.h>
>> +#include <linux/errno.h>
>> +#include <linux/smp.h>
>> +#include <asm/proc-fns.h>
>> +
>> +/*
>> + * platform-specific code to shutdown a CPU
>> + *
>> + * Called with IRQs disabled
>> + */
>> +void __ref armada_xp_cpu_die(unsigned int cpu)
>> +{
>> + cpu_do_idle();
>> +
>> + /* We should never return from idle */
>> + panic("mvebu: cpu %d unexpectedly exit from shutdown\n", cpu);
>> +}
>> diff --git a/arch/arm/mach-mvebu/platsmp.c 
>> b/arch/arm/mach-mvebu/platsmp.c
>> new file mode 100644
>> index 0000000..1cd6c08
>> --- /dev/null
>> +++ b/arch/arm/mach-mvebu/platsmp.c
>> @@ -0,0 +1,124 @@
>> +/*
>> + * Symmetric Multi Processing (SMP) support for Armada XP
>> + *
>> + * Copyright (C) 2012 Marvell
>> + *
>> + * Lior Amsalem <alior@marvell.com>
>> + * Yehuda Yitschak <yehuday@marvell.com>
>> + * Gregory CLEMENT <gregory.clement@free-electrons.com>
>> + * Thomas Petazzoni <thomas.petazzoni@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.
>> + *
>> + * The Armada XP SoC has 4 ARMv7 PJ4B CPUs running in full HW coherency
>> + * This file implements the routines for preparing the SMP 
>> infrastructure
>> + * and waking up the secondary CPUs
>> + */
>> +
>> +#include <linux/init.h>
>> +#include <linux/smp.h>
>> +#include <linux/clk.h>
>> +#include <linux/of.h>
>> +#include <asm/cacheflush.h>
>> +#include <asm/smp_plat.h>
>> +#include "common.h"
>> +#include "armada-370-xp.h"
>> +#include "pmsu.h"
>> +#include "coherency.h"
>> +
>> +void __init set_secondary_cpus_clock(void)
>> +{
>> + int cpu;
>> + unsigned long rate;
>> + struct clk *cpu_clk = NULL;
>> + struct device_node *np = NULL;
>> +
>> + cpu = smp_processor_id();
>> + np = of_find_node_by_type(np, "cpu");
>> + np = NULL;
>> + while ((np = of_find_node_by_type(np, "cpu"))) {
>> + const u32 *reg;
>> + int len;
>> + reg = of_get_property(np, "reg", &len);
>> + if (!reg || len != 4) {
>> + pr_err("%s missing reg property\n", np->full_name);
>> + continue;
>> + }
>> + if (be32_to_cpup(reg) == cpu) {
>> + cpu_clk = of_clk_get(np, 0);
>> + break;
>> + }
>> + }
>> + WARN_ON(IS_ERR(cpu_clk));
>> + clk_prepare_enable(cpu_clk);
>> + rate = clk_get_rate(cpu_clk);
>> +
>> + /* set all the other CPU clk to the same rate than the boot CPU */
>> + np = NULL;
>> + while ((np = of_find_node_by_type(np, "cpu"))) {
>> + const u32 *reg;
>> + int len;
>> + reg = of_get_property(np, "reg", &len);
>> + if (!reg || len != 4) {
>> + pr_err("%s missing reg property\n", np->full_name);
>> + continue;
>> + }
>> + if (be32_to_cpup(reg) != cpu) {
>> + cpu_clk = of_clk_get(np, 0);
>> + clk_set_rate(cpu_clk, rate);
>> + }
>> + }
>> +}
>> +
>> +static void __cpuinit armada_xp_secondary_init(unsigned int cpu)
>> +{
>> + armada_xp_mpic_smp_cpu_init();
>> +}
>> +
>> +static int __cpuinit armada_xp_boot_secondary(unsigned int cpu,
>> + struct task_struct *idle)
>> +{
>> + pr_info("Booting CPU %d\n", cpu);
>> +
>> + armada_xp_boot_cpu(cpu, armada_xp_secondary_startup);
> Where is this function implemented?
>
Sorry, i got it, it is in [patch 2/5]. :-).

>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

^ permalink raw reply

* Kernel uncompression error
From: woody @ 2012-11-15  5:56 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20121114173453.GJ3290@n2100.arm.linux.org.uk>

On 11/15/2012 1:34 AM, Russell King - ARM Linux wrote:
> On Wed, Nov 14, 2012 at 10:23:55PM +0800, woody wrote:
>> I just built a 3.2.x ARM kernel and tried to have it boot by a boot
>> loader (vivi) on my s3c2410a ARM board.  The kernel was built with
>> default configuration s3c2410.
>
> I reported that S3C2410 is totally dead with 3.x kernels about a month
> ago and got no response what so ever from anyone.  I guess S3C2410 is
> just not cared for anymore.
>
> When I get sufficient motivation, I'll try and track down what's going
> wrong, but it means taking the old mailing list server (and now list
> archive) offline for a while.
>
> I don't think it's cache related; different image sizes seem to behave
> differently - and when they _do_ successfully decompress, they don't
> boot at all.

Now I switched from 3.2.x kernel to the latest stable 3.6.6. And, I did 
a lot of configuration to make the zImage size smaller, now it is 1.5M. 
After download it to the board, I got another error:

"Uncompressing Linux... done, booting the kernel."

Then the kernel halted.

I noticed, the dots (...) in the kernel log seems very short, is this a 
clue or just normal?



-- 
woody
I can't go back to yesterday - because I was a different person then.

^ permalink raw reply

* [PATCH V3 5/5] arm: mvebu: Added SMP support for Armada XP
From: Hui Wang @ 2012-11-15  5:43 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1352931637-3405-6-git-send-email-gregory.clement@free-electrons.com>

Gregory CLEMENT wrote:
> From: Yehuda Yitschak <yehuday@marvell.com>
>
> 1. added smp init functions in platsmp.c
> 2. added secondary cpu entry point in headsmp.S
> 3. added hotplog initial support in hotplug.c
> 4. added SMP support for PJ4B cpu
>
> Signed-off-by: Yehuda Yitschak <yehuday@marvell.com>
> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
> ---
>  arch/arm/boot/dts/armada-xp.dtsi    |    4 ++
>  arch/arm/configs/mvebu_defconfig    |    3 +
>  arch/arm/mach-mvebu/Kconfig         |    1 +
>  arch/arm/mach-mvebu/Makefile        |    2 +
>  arch/arm/mach-mvebu/armada-370-xp.c |    3 +
>  arch/arm/mach-mvebu/common.h        |    3 +
>  arch/arm/mach-mvebu/headsmp.S       |   66 +++++++++++++++++++
>  arch/arm/mach-mvebu/hotplug.c       |   30 +++++++++
>  arch/arm/mach-mvebu/platsmp.c       |  124 +++++++++++++++++++++++++++++++++++
>  9 files changed, 236 insertions(+)
>  create mode 100644 arch/arm/mach-mvebu/headsmp.S
>  create mode 100644 arch/arm/mach-mvebu/hotplug.c
>  create mode 100644 arch/arm/mach-mvebu/platsmp.c
>
> diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi
> index 531619f..7f968dc 100644
> --- a/arch/arm/boot/dts/armada-xp.dtsi
> +++ b/arch/arm/boot/dts/armada-xp.dtsi
> @@ -38,24 +38,28 @@
>  	    #size-cells = <0>;
>  
>  	    cpu at 0 {
> +		device_type = "cpu";
>  	       	compatible = "marvell,sheeva-v7";
>  		reg = <0>;
>  		clocks = <&cpuclk 0>;
>  	    };
>  
>  	    cpu at 1 {
> +		device_type = "cpu";
>  		compatible = "marvell,sheeva-v7";
>  		reg = <1>;
>  		clocks = <&cpuclk 1>;
>  	    };
>  
>  	    cpu at 2 {
> +		device_type = "cpu";
>  		compatible = "marvell,sheeva-v7";
>  		reg = <2>;
>  		clocks = <&cpuclk 2>;
>  	    };
>  
>  	    cpu at 3 {
> +		device_type = "cpu";
>  		compatible = "marvell,sheeva-v7";
>  		reg = <3>;
>  		clocks = <&cpuclk 3>;
> diff --git a/arch/arm/configs/mvebu_defconfig b/arch/arm/configs/mvebu_defconfig
> index 3458752..da598d3 100644
> --- a/arch/arm/configs/mvebu_defconfig
> +++ b/arch/arm/configs/mvebu_defconfig
> @@ -12,6 +12,9 @@ CONFIG_ARCH_MVEBU=y
>  CONFIG_MACH_ARMADA_370=y
>  CONFIG_MACH_ARMADA_XP=y
>  # CONFIG_CACHE_L2X0 is not set
> +# CONFIG_SWP_EMULATE is not set
> +CONFIG_SMP=y
> +# CONFIG_LOCAL_TIMERS is not set
>  CONFIG_AEABI=y
>  CONFIG_HIGHMEM=y
>  # CONFIG_COMPACTION is not set
> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> index 9bfaa0c..d70afe3 100644
> --- a/arch/arm/mach-mvebu/Kconfig
> +++ b/arch/arm/mach-mvebu/Kconfig
> @@ -22,6 +22,7 @@ config MVEBU_CLK_CPU
>  config MACH_ARMADA_370_XP
>  	bool
>  	select ARMADA_370_XP_TIMER
> +	select HAVE_SMP
>  	select CPU_PJ4B
>  
>  config MACH_ARMADA_370
> diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
> index 8e6e50b..eb3cbd1 100644
> --- a/arch/arm/mach-mvebu/Makefile
> +++ b/arch/arm/mach-mvebu/Makefile
> @@ -3,3 +3,5 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
>  
>  obj-y += system-controller.o
>  obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o irq-armada-370-xp.o addr-map.o coherency.o pmsu.o
> +obj-$(CONFIG_SMP)                += platsmp.o headsmp.o
> +obj-$(CONFIG_HOTPLUG_CPU)        += hotplug.o
> diff --git a/arch/arm/mach-mvebu/armada-370-xp.c b/arch/arm/mach-mvebu/armada-370-xp.c
> index 2af6ce5..66befa1 100644
> --- a/arch/arm/mach-mvebu/armada-370-xp.c
> +++ b/arch/arm/mach-mvebu/armada-370-xp.c
> @@ -22,6 +22,7 @@
>  #include <asm/mach/time.h>
>  #include "armada-370-xp.h"
>  #include "common.h"
> +#include "coherency.h"
>  
>  static struct map_desc armada_370_xp_io_desc[] __initdata = {
>  	{
> @@ -50,6 +51,7 @@ struct sys_timer armada_370_xp_timer = {
>  static void __init armada_370_xp_dt_init(void)
>  {
>  	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> +	coherency_init();
>  }
>  
>  static const char * const armada_370_xp_dt_board_dt_compat[] = {
> @@ -59,6 +61,7 @@ static const char * const armada_370_xp_dt_board_dt_compat[] = {
>  };
>  
>  DT_MACHINE_START(ARMADA_XP_DT, "Marvell Aramada 370/XP (Device Tree)")
> +	.smp		= smp_ops(armada_xp_smp_ops),
>  	.init_machine	= armada_370_xp_dt_init,
>  	.map_io		= armada_370_xp_map_io,
>  	.init_irq	= armada_370_xp_init_irq,
> diff --git a/arch/arm/mach-mvebu/common.h b/arch/arm/mach-mvebu/common.h
> index 74ee0b2..86484bb 100644
> --- a/arch/arm/mach-mvebu/common.h
> +++ b/arch/arm/mach-mvebu/common.h
> @@ -21,7 +21,10 @@ void mvebu_clocks_init(void);
>  void armada_370_xp_init_irq(void);
>  void armada_370_xp_handle_irq(struct pt_regs *regs);
>  
> +void armada_xp_cpu_die(unsigned int cpu);
>  
>  int armada_370_xp_coherency_init(void);
>  int armada_370_xp_pmsu_init(void);
> +void armada_xp_secondary_startup(void);
> +extern struct smp_operations armada_xp_smp_ops;
>  #endif
> diff --git a/arch/arm/mach-mvebu/headsmp.S b/arch/arm/mach-mvebu/headsmp.S
> new file mode 100644
> index 0000000..33db1d5
> --- /dev/null
> +++ b/arch/arm/mach-mvebu/headsmp.S
> @@ -0,0 +1,66 @@
> +/*
> + * SMP support: Entry point for secondary CPUs
> + *
> + * Copyright (C) 2012 Marvell
> + *
> + * Yehuda Yitschak <yehuday@marvell.com>
> + * Gregory CLEMENT <gregory.clement@free-electrons.com>
> + * Thomas Petazzoni <thomas.petazzoni@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.
> + *
> + * This file implements the assembly entry point for secondary CPUs
> + * in an SMP kernel. The only thing we need to do is to add the CPU
> + * to the coherency fabric by writing to 2 registers. Currently these
> + * register addresses are hard coded due to the early initialisation problems.
> + */
> +
> +#include <linux/linkage.h>
> +#include <linux/init.h>
> +
> +/*
> + * At this stage the secondary CPUs don't have acces yet to the MMU, so
> + * we have to provide physical addresses
> + */
> +#define ARMADA_XP_COHERENCY_FABRIC_CTL_REG 0xD0020200
> +#define ARMADA_XP_COHERENCY_FABRIC_CFG_REG 0xD0020204
> +
> +	__INIT
> +
> +/*
> + * Armada XP specific entry point for secondary CPUs.
> + * We add the CPU to the coherency fabric and then jump to secondary
> + * startup
> + */
> +
> +ENTRY(armada_xp_secondary_startup)
> +
> +	/* Read CPU id */
> + 	mrc     p15, 0, r1, c0, c0, 5
> +	and     r1, r1, #0xF
> +
> +	/* Add CPU to coherency fabric */
> +
> +	/* Create bit by cpu index */
> +	mov     r2,r1
> +	add     r2,r2,#24
> +	mov     r3, #1
> +	lsl     r3, r3, r2
> +
> +	/* Add CPU to SMP group - Atomic */
> +	ldr     r0, = ARMADA_XP_COHERENCY_FABRIC_CTL_REG
> +	ldr     r10, [r0]
> +	orr     r10 , r10, r3
> +	str	r10,[r0]
> +
> +	/* Enable coherency on CPU - Atomic*/
> +	ldr     r0, = ARMADA_XP_COHERENCY_FABRIC_CFG_REG
> +	ldr     r10, [r0]
> +	orr     r10 , r10, r3
> +	str     r10,[r0]
> +
> +	b	secondary_startup
> +
> +ENDPROC(armada_xp_secondary_startup)
> diff --git a/arch/arm/mach-mvebu/hotplug.c b/arch/arm/mach-mvebu/hotplug.c
> new file mode 100644
> index 0000000..b228b6a
> --- /dev/null
> +++ b/arch/arm/mach-mvebu/hotplug.c
> @@ -0,0 +1,30 @@
> +/*
> + * Symmetric Multi Processing (SMP) support for Armada XP
> + *
> + * Copyright (C) 2012 Marvell
> + *
> + * Lior Amsalem <alior@marvell.com>
> + * Gregory CLEMENT <gregory.clement@free-electrons.com>
> + * Thomas Petazzoni <thomas.petazzoni@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.
> + */
> +#include <linux/kernel.h>
> +#include <linux/errno.h>
> +#include <linux/smp.h>
> +#include <asm/proc-fns.h>
> +
> +/*
> + * platform-specific code to shutdown a CPU
> + *
> + * Called with IRQs disabled
> + */
> +void __ref armada_xp_cpu_die(unsigned int cpu)
> +{
> +	cpu_do_idle();
> +
> +	/* We should never return from idle */
> +	panic("mvebu: cpu %d unexpectedly exit from shutdown\n", cpu);
> +}
> diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c
> new file mode 100644
> index 0000000..1cd6c08
> --- /dev/null
> +++ b/arch/arm/mach-mvebu/platsmp.c
> @@ -0,0 +1,124 @@
> +/*
> + * Symmetric Multi Processing (SMP) support for Armada XP
> + *
> + * Copyright (C) 2012 Marvell
> + *
> + * Lior Amsalem <alior@marvell.com>
> + * Yehuda Yitschak <yehuday@marvell.com>
> + * Gregory CLEMENT <gregory.clement@free-electrons.com>
> + * Thomas Petazzoni <thomas.petazzoni@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.
> + *
> + * The Armada XP SoC has 4 ARMv7 PJ4B CPUs running in full HW coherency
> + * This file implements the routines for preparing the SMP infrastructure
> + * and waking up the secondary CPUs
> + */
> +
> +#include <linux/init.h>
> +#include <linux/smp.h>
> +#include <linux/clk.h>
> +#include <linux/of.h>
> +#include <asm/cacheflush.h>
> +#include <asm/smp_plat.h>
> +#include "common.h"
> +#include "armada-370-xp.h"
> +#include "pmsu.h"
> +#include "coherency.h"
> +
> +void __init set_secondary_cpus_clock(void)
> +{
> +	int cpu;
> +	unsigned long rate;
> +	struct clk *cpu_clk = NULL;
> +	struct device_node *np = NULL;
> +
> +	cpu = smp_processor_id();
> +	np = of_find_node_by_type(np, "cpu");
> +	np = NULL;
> +	while ((np = of_find_node_by_type(np, "cpu"))) {
> +		const u32 *reg;
> +		int len;
> +		reg = of_get_property(np, "reg", &len);
> +		if (!reg || len != 4) {
> +			pr_err("%s missing reg property\n", np->full_name);
> +			continue;
> +		}
> +		if (be32_to_cpup(reg) == cpu) {
> +			cpu_clk = of_clk_get(np, 0);
> +			break;
> +		}
> +	}
> +	WARN_ON(IS_ERR(cpu_clk));
> +	clk_prepare_enable(cpu_clk);
> +	rate = clk_get_rate(cpu_clk);
> +
> +	/* set all the other CPU clk to the same rate than the boot CPU */
> +	np = NULL;
> +	while ((np = of_find_node_by_type(np, "cpu"))) {
> +		const u32 *reg;
> +		int len;
> +		reg = of_get_property(np, "reg", &len);
> +		if (!reg || len != 4) {
> +			pr_err("%s missing reg property\n", np->full_name);
> +			continue;
> +		}
> +		if (be32_to_cpup(reg) != cpu) {
> +			cpu_clk = of_clk_get(np, 0);
> +			clk_set_rate(cpu_clk, rate);
> +		}
> +	}
> +}
> +
> +static void __cpuinit armada_xp_secondary_init(unsigned int cpu)
> +{
> +	armada_xp_mpic_smp_cpu_init();
> +}
> +
> +static int __cpuinit armada_xp_boot_secondary(unsigned int cpu,
> +					      struct task_struct *idle)
> +{
> +	pr_info("Booting CPU %d\n", cpu);
> +
> +	armada_xp_boot_cpu(cpu, armada_xp_secondary_startup);
>   
Where is this function implemented?

^ permalink raw reply

* linux-next: manual merge of the arm-soc tree with the i2c-embedded tree
From: Stephen Rothwell @ 2012-11-15  5:27 UTC (permalink / raw)
  To: linux-arm-kernel

Hi all,

Today's linux-next merge of the arm-soc tree got a conflict in
arch/arm/plat-omap/i2c.c between commit 49839dc93970 ("Revert "ARM: OMAP:
convert I2C driver to PM QoS for MPU latency constraints"") from the
i2c-embedded tree and various commits from the arm-soc tree.

I used the version from the arm-soc tree (not sure if that is the correct
choice) and can carry the fix as necessary (no action is required).

-- 
Cheers,
Stephen Rothwell                    sfr at canb.auug.org.au
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121115/e7df45a7/attachment.sig>

^ permalink raw reply

* [PATCH RESEND 3/4] pinctrl: at91: Prevent NULL dereference if of_match_device returns NULL
From: Axel Lin @ 2012-11-15  4:58 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1352955266.6793.4.camel@phoenix>

of_match_device() may return NULL.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
This resend CC Jean-Christophe.

 drivers/pinctrl/pinctrl-at91.c |   17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index 8490a55..32006c8 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -829,13 +829,18 @@ static int __devinit at91_pinctrl_probe_dt(struct platform_device *pdev,
 	uint32_t *tmp;
 	struct device_node *np = pdev->dev.of_node;
 	struct device_node *child;
+	const struct of_device_id *match;
 
 	if (!np)
 		return -ENODEV;
 
+	match = of_match_device(at91_pinctrl_of_match, &pdev->dev)->data;
+	if (!match)
+		return -ENODEV;
+
 	info->dev = &pdev->dev;
-	info->ops = (struct at91_pinctrl_mux_ops*)
-		of_match_device(at91_pinctrl_of_match, &pdev->dev)->data;
+	info->ops = (struct at91_pinctrl_mux_ops *) match->data;
+
 	at91_pinctrl_child_count(info, np);
 
 	if (info->nbanks < 1) {
@@ -1359,6 +1364,7 @@ static struct of_device_id at91_gpio_of_match[] __devinitdata = {
 static int __devinit at91_gpio_probe(struct platform_device *pdev)
 {
 	struct device_node *np = pdev->dev.of_node;
+	const struct of_device_id *match;
 	struct resource *res;
 	struct at91_gpio_chip *at91_chip = NULL;
 	struct gpio_chip *chip;
@@ -1399,8 +1405,11 @@ static int __devinit at91_gpio_probe(struct platform_device *pdev)
 		goto err;
 	}
 
-	at91_chip->ops = (struct at91_pinctrl_mux_ops*)
-		of_match_device(at91_gpio_of_match, &pdev->dev)->data;
+	match = of_match_device(at91_gpio_of_match, &pdev->dev);
+	if (!match)
+		return -ENODEV;
+
+	at91_chip->ops = (struct at91_pinctrl_mux_ops *) match->data;
 	at91_chip->pioc_virq = irq;
 	at91_chip->pioc_idx = alias_idx;
 
-- 
1.7.9.5

^ permalink raw reply related

* [PATCH 4/4] pinctrl: nomadik: Prevent NULL dereference if of_match_device returns NULL
From: Axel Lin @ 2012-11-15  4:56 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1352955096.6793.1.camel@phoenix>

of_match_device() may return NULL.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
 drivers/pinctrl/pinctrl-nomadik.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-nomadik.c b/drivers/pinctrl/pinctrl-nomadik.c
index 238060e..40bd1b3 100644
--- a/drivers/pinctrl/pinctrl-nomadik.c
+++ b/drivers/pinctrl/pinctrl-nomadik.c
@@ -1863,9 +1863,14 @@ static int __devinit nmk_pinctrl_probe(struct platform_device *pdev)
 
 	if (platid)
 		version = platid->driver_data;
-	else if (np)
-		version = (unsigned int)
-			of_match_device(nmk_pinctrl_match, &pdev->dev)->data;
+	else if (np) {
+		const struct of_device_id *match;
+
+		match = of_match_device(nmk_pinctrl_match, &pdev->dev);
+		if (!match)
+			return -ENODEV;
+		version = (unsigned int) match->data;
+	}
 
 	/* Poke in other ASIC variants here */
 	if (version == PINCTRL_NMK_STN8815)
-- 
1.7.9.5

^ permalink raw reply related

* [PATCH 3/4] pinctrl: at91: Prevent NULL dereference if of_match_device returns NULL
From: Axel Lin @ 2012-11-15  4:54 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1352955096.6793.1.camel@phoenix>

of_match_device() may return NULL.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
 drivers/pinctrl/pinctrl-at91.c |   17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index 8490a55..32006c8 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -829,13 +829,18 @@ static int __devinit at91_pinctrl_probe_dt(struct platform_device *pdev,
 	uint32_t *tmp;
 	struct device_node *np = pdev->dev.of_node;
 	struct device_node *child;
+	const struct of_device_id *match;
 
 	if (!np)
 		return -ENODEV;
 
+	match = of_match_device(at91_pinctrl_of_match, &pdev->dev)->data;
+	if (!match)
+		return -ENODEV;
+
 	info->dev = &pdev->dev;
-	info->ops = (struct at91_pinctrl_mux_ops*)
-		of_match_device(at91_pinctrl_of_match, &pdev->dev)->data;
+	info->ops = (struct at91_pinctrl_mux_ops *) match->data;
+
 	at91_pinctrl_child_count(info, np);
 
 	if (info->nbanks < 1) {
@@ -1359,6 +1364,7 @@ static struct of_device_id at91_gpio_of_match[] __devinitdata = {
 static int __devinit at91_gpio_probe(struct platform_device *pdev)
 {
 	struct device_node *np = pdev->dev.of_node;
+	const struct of_device_id *match;
 	struct resource *res;
 	struct at91_gpio_chip *at91_chip = NULL;
 	struct gpio_chip *chip;
@@ -1399,8 +1405,11 @@ static int __devinit at91_gpio_probe(struct platform_device *pdev)
 		goto err;
 	}
 
-	at91_chip->ops = (struct at91_pinctrl_mux_ops*)
-		of_match_device(at91_gpio_of_match, &pdev->dev)->data;
+	match = of_match_device(at91_gpio_of_match, &pdev->dev);
+	if (!match)
+		return -ENODEV;
+
+	at91_chip->ops = (struct at91_pinctrl_mux_ops *) match->data;
 	at91_chip->pioc_virq = irq;
 	at91_chip->pioc_idx = alias_idx;
 
-- 
1.7.9.5

^ permalink raw reply related

* [PATCH 2/4] pinctrl: kirkwood: Prevent NULL dereference if of_match_device returns NULL
From: Axel Lin @ 2012-11-15  4:52 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1352955096.6793.1.camel@phoenix>

of_match_device() may return NULL.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
 drivers/pinctrl/mvebu/pinctrl-kirkwood.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/pinctrl/mvebu/pinctrl-kirkwood.c b/drivers/pinctrl/mvebu/pinctrl-kirkwood.c
index 9a74ef6..fe885ca 100644
--- a/drivers/pinctrl/mvebu/pinctrl-kirkwood.c
+++ b/drivers/pinctrl/mvebu/pinctrl-kirkwood.c
@@ -444,8 +444,11 @@ static struct of_device_id kirkwood_pinctrl_of_match[] __devinitdata = {
 
 static int __devinit kirkwood_pinctrl_probe(struct platform_device *pdev)
 {
-	const struct of_device_id *match =
-		of_match_device(kirkwood_pinctrl_of_match, &pdev->dev);
+	const struct of_device_id *match;
+
+	match = of_match_device(kirkwood_pinctrl_of_match, &pdev->dev);
+	if (!match)
+		return -ENODEV;
 	pdev->dev.platform_data = match->data;
 	return mvebu_pinctrl_probe(pdev);
 }
-- 
1.7.9.5

^ permalink raw reply related

* [PATCH 1/4] pinctrl: dove: Prevent NULL dereference if of_match_device returns NULL
From: Axel Lin @ 2012-11-15  4:51 UTC (permalink / raw)
  To: linux-arm-kernel

of_match_device() may return NULL.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
 drivers/pinctrl/mvebu/pinctrl-dove.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/pinctrl/mvebu/pinctrl-dove.c b/drivers/pinctrl/mvebu/pinctrl-dove.c
index ffe74b2..a8b9b42 100644
--- a/drivers/pinctrl/mvebu/pinctrl-dove.c
+++ b/drivers/pinctrl/mvebu/pinctrl-dove.c
@@ -578,8 +578,12 @@ static struct of_device_id dove_pinctrl_of_match[] __devinitdata = {
 
 static int __devinit dove_pinctrl_probe(struct platform_device *pdev)
 {
-	const struct of_device_id *match =
-		of_match_device(dove_pinctrl_of_match, &pdev->dev);
+	const struct of_device_id *match;
+
+	match = of_match_device(dove_pinctrl_of_match, &pdev->dev);
+	if (!match)
+		return -ENODEV;
+
 	pdev->dev.platform_data = match->data;
 
 	/*
-- 
1.7.9.5

^ permalink raw reply related

* Decoding the PTM traces
From: Arun KS @ 2012-11-15  3:41 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <CAMP5XgegGNn=NM8LEp61tZJWYQC3wbZ9mFz53cMsvPFr=bydaQ@mail.gmail.com>

Hello Arve,

On Thu, Nov 15, 2012 at 4:55 AM, Arve Hj?nnev?g <arve@android.com> wrote:
> On Wed, Nov 14, 2012 at 6:04 AM, Arun KS <arunks.linux@gmail.com> wrote:
>> Hello,
>>
>> I m trying to capture and decode PTM trace from Cortex A9 dual core.
>>
>> I m successful  in configuring the driver(arch/arm/kernel/etm.c) and
>> setting the funnel to get data in ETB.
>> But I don't know how to decode these traces.
>>
>> Anyone has any pointers?
>>
>> Thanks,
>> Arun
>
> I attached some tools I use to decode the traces. I have used this on
> the A8, A9 and A15. I assume since you cc-ed me you have already
> applied the kernel patches I posted a while back. Without them you
> will not get useful trace data from a dual core processor.

Thank you very much for the tools. Hope I have taken all your patches.

Here is how my git log --oneline looks on arch/arm/kernel/etm.c

75cbaea ARM: etm: Add sysfs entry to enable return stack if supported
434032a ARM: etm: Add sysfs entry to disable branch_output flag
c6b1c35 ARM: etm: Add sysfs entry to set context-id-size
cfb8dc5 ARM: etm: Add sysfs entry to enable timestamps if supported
d263bc7 ARM: etm: Check arch version and disable data tracing for ptm
eff62a8 ARM: etm: Wait for etm/ptm(s) to stop before requesting PowerDown
4246983 ARM: etm: Power down etm(s) when tracing is not enabled
992cd59 ARM: etm: Support multiple ETMs/PTMs.
3a91f3e ARM: etm: Return the entire trace buffer if it is empty after reset
fe05bda ARM: etm: Add some missing locks and error checks
0c3da53 ARM: etm: Configure data tracing
d71c695 ARM: etm: Allow range selection
f13ae47 ARM: etm: Don't try to clear the buffer full status after
reading the buffer
8511b5b ARM: etm: Don't limit tracing to only non-secure code.
d387659 ARM: etm: Don't require clock control
73017a5 arm: fix implicit module.h users by adding it to arch/arm as required.
8e88069 ARM: 6838/1: etm: fix section mismatch warning
aa25afa ARM: amba: make probe() functions take const id tables
092e0e7 Merge branch 'llseek' of
git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl
6038f37 llseek: automatically add .llseek fop
8234eae ARM: 6291/1: coresight: move struct tracectx inside etm driver
1495cc9 Input: sysrq - drop tty argument from sysrq ops handlers
988257c ARM: 6294/1: etm: do a dummy read from OSSRR during initialization
9e354ea ARM: 6292/1: coresight: add ETM management registers
c5d6c77 ARM: 5841/1: a driver for on-chip ETM and ETB

I ll let you know the results.

thanks,
Arun
>
> --
> Arve Hj?nnev?g

^ permalink raw reply

* [PATCH v2 2/3] serial: mxs-auart: add the DMA support for mx28
From: Huang Shijie @ 2012-11-15  3:20 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <50A21613.6030709@bluegiga.com>

? 2012?11?13? 17:42, Lauri Hintsala ??:
> Hi Huang,
>
> DMA support doesn't work with latest stable v3.6.5 or development 
> 3.7-rc5 kernels. I get following error message when I open the serial 
> port /dev/ttyAPP0:
>
> [ 48.730000] mxs-auart 8006a000.serial: step 1 error
> [ 48.750000] mxs-auart 8006a000.serial: We can not start up the DMA.
>
I tested this patch set in imx28-evk board Rev C with linux-next-20121114.
it works fine.

Maybe you can try the linux-next code.

About the flow control:
If we do not enable the HW flow control, the data may lost. And I do not 
know how to handle with the Xon/Xoff when the DMA is supported.

Best Regards
Huang Shijie

^ permalink raw reply

* [PATCH V5 0/7] ARM: AM33XX: net: Add DT support to CPSW and MDIO driver
From: David Miller @ 2012-11-15  3:09 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1352920080-6179-1-git-send-email-mugunthanvnm@ti.com>

From: Mugunthan V N <mugunthanvnm@ti.com>
Date: Thu, 15 Nov 2012 00:37:53 +0530

> This patch-series adds support for,
> 
> [1/7]: Typo mistake in CPSW driver while invoking runtime_pm api's
> 
> [2/7]: Adds parent<->child relation between CPSW & MDIO module inside cpsw
>        driver, as in case of AM33XX, the resources are shared and common
>        register bit-field is provided to control module/clock enable/disable,
>        makes it difficult to handle common resource.
> 
>        So the solution here is, to create parent<->child relation between them.
> 
> [3/7]: cpsw: simplify the setup of the register pointers
> 
> [4/7]: cpsw: Kernel warn fix during suspend
> 
> [5/7]: Add hwmod entry for MDIO module, required for MDIO driver.
> 
> [6/7]: Enable CPSW support to omap2plus_defconfig
> 
> [7/7]: Add DT device nodes for both CPSW and MDIO modules in am33xx.dtsi,
>        am335x-evm.dts and am335x-bone.dts file
> 
> This patch series has been created on top of net-next/master and tested
> on BeagleBone platform for NFS boot and basic ping test cases.

All applied, thanks.

^ permalink raw reply

* [PATCH v7] Network driver for the Armada 370 and Armada XP ARM Marvell SoCs
From: David Miller @ 2012-11-15  2:59 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1352905010-24172-1-git-send-email-thomas.petazzoni@free-electrons.com>

From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Wed, 14 Nov 2012 15:56:44 +0100

> The previous versions of this patch set have been sent on September
> 4th (v1), October 11th (v2), October 23rd (v3), October 26th (v4),
> November 12th (v5), November 13th (v6) and now comes the v7 of the
> driver. The number of comments over the last versions have been really
> small, and I would really appreciate if this driver could land into
> the 3.8 kernel release.

I can't apply this patch to net-next, because for one thing there
are missing dependencies.  For example, the file:

arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts

doesn't exist there, therefore patch #6 won't apply.

^ permalink raw reply

* [GIT PULL 5/5] omap full-chip retention in suspend for v3.8 merge window
From: Tony Lindgren @ 2012-11-15  2:56 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <pull-1352948204-277861>

The following changes since commit 46bf4a562207c5ebd24e1dde5e5ee326cd3d6b91:

  Merge tag 'for_3.8-pm-voltage' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into omap-for-v3.8/pm (2012-11-06 17:06:37 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap tags/omap-for-v3.8/pm-part2-v3-signed

for you to fetch changes up to 74d29168e9af59c9db1885e27493fbed4d24ef18:

  ARM: OMAP2+: voltage: fixup oscillator handling when CONFIG_PM=n (2012-11-14 17:21:15 -0800)

----------------------------------------------------------------
PM changes via Kevin Hilman <khilman@deeprootsystems.com>:

Add support for full-chip retention in suspend for OMAP4 SoCs

----------------------------------------------------------------
Kevin Hilman (1):
      ARM: OMAP2+: voltage: fixup oscillator handling when CONFIG_PM=n

Rajendra Nayak (1):
      ARM: OMAP4: suspend: Program all domains to retention

Tero Kristo (1):
      ARM: OMAP4: USB: power down MUSB PHY during boot

Tony Lindgren (2):
      Merge tag 'for_3.8-pm-omap4-core-ret' of git://git.kernel.org/.../khilman/linux-omap-pm into omap-for-v3.8/pm-part2
      Merge branch 'omap-for-v3.8/pm' into omap-for-v3.8/pm-part2

 arch/arm/mach-omap2/omap_phy_internal.c | 32 ++++++++++++++++++++++++++++++++
 arch/arm/mach-omap2/pm.c                |  2 ++
 arch/arm/mach-omap2/pm.h                |  2 +-
 arch/arm/mach-omap2/pm44xx.c            |  7 -------
 arch/arm/mach-omap2/vc.c                |  2 ++
 5 files changed, 37 insertions(+), 8 deletions(-)

^ permalink raw reply

* [GIT PULL 3/5] omap common clock changes for v3.8 merge window
From: Tony Lindgren @ 2012-11-15  2:56 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <pull-1352948204-277861>

The following changes since commit 89ab216b33ba9405880fd3d89531305a931bc70f:

  Merge branch 'omap-for-v3.8/pm' into omap-for-v3.8/clock (2012-11-13 13:25:38 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap tags/omap-for-v3.8/clock-signed

for you to fetch changes up to 558a0780b0a04862a678f7823215424b4e5501f9:

  Merge tag 'omap-cleanup-c-for-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into omap-for-v3.8/clock (2012-11-13 13:32:24 -0800)

----------------------------------------------------------------

Common clock framework for omap2+ via Paul Walmsley <paul@pwsan.com>:

Convert the OMAP2+ clock code and data to rely on the common
clock framework for internal bookkeeping and the driver API.

Basic test logs for this branch on top of Tony's cleanup-prcm branch
at commit c9d501e5cb0238910337213e12a09127221c35d8 are here:

http://www.pwsan.com/omap/testlogs/common_clk_devel_3.8_rebase/20121112192516/

However, cleanup-prcm at c9d501e5 does not include some fixes
that are needed for a successful test.  With several reverts,
fixes, and workarounds applied, the following test logs were
obtained:

http://www.pwsan.com/omap/testlogs/TEST_common_clk_devel_3.8_rebase/20121112192300/

which indicate that the series tests cleanly.

N.B. The common clock data addition patches result in many
checkpatch warnings of the form "WARNING: static const char *
array should probably be static const char * const".  However, it
appears that resolving these would require changes to the CCF
itself.  So the resolution of these warnings is being postponed
until that can be coordinated.

These patches result in a ~55KiB increase in runtime kernel memory
usage when booting omap2plus_defconfig kernels.

Conflicts:
	arch/arm/mach-omap2/clock33xx_data.c
	arch/arm/mach-omap2/clock3xxx_data.c
	arch/arm/mach-omap2/clock44xx_data.c

Note that this is based on a merge of the omap-for-v3.8/cleanup-prcm
and omap-for-v3.8/pm as otherwise merged in with the pm changes it
would automatically resolve into a non-booting merge for omap3 as
the smartreflex clock names were changed in the pm branch.

----------------------------------------------------------------
Mike Turquette (3):
      ARM: OMAP4: clock: Convert to common clk
      ARM: OMAP2+: clockdomain: bypass clockdomain handling when disabling unused clks
      ARM: OMAP2+: clock: Cleanup !CONFIG_COMMON_CLK parts

Paul Walmsley (7):
      ARM: OMAP2xxx: clock: add APLL rate recalculation functions
      ARM: OMAP2+: clock: add OMAP CCF convenience macros to mach-omap2/clock.h
      ARM: OMAP44xx: clock: drop obsolete clock data
      ARM: OMAP3xxx: clk: drop obsolete clock data
      ARM: AM33xx: clock: drop obsolete clock data
      ARM: OMAP3+: DPLL: drop !CONFIG_COMMON_CLK sections
      ARM: OMAP2xxx: clock: drop obsolete clock data

Rajendra Nayak (15):
      ARM: OMAP: clock: Nuke plat/clock.c & reuse struct clk as clk_hw_omap
      ARM: OMAP: hwmod: Fix up hwmod based clkdm accesses
      ARM: OMAP3: clock: Convert to common clk
      ARM: OMAP2: clock: Convert to common clk
      ARM: OMAP: clock: list all clk_hw_omap clks to enable/disable autoidle
      ARM: OMAP: clock: Define a function to enable clocks at init
      ARM: OMAP: clock: Get rid of some clkdm assocations within clks
      ARM: OMAP4: clock: Add 44xx data using common struct clk
      ARM: OMAP3: clock: Add 3xxx data using common struct clk
      ARM: OMAP2: clock: Add 24xx data using common struct clk
      ARM: OMAP: clock: Switch to COMMON clk
      ARM: OMAP: hwmod: Cleanup !CONFIG_COMMON_CLK parts
      ARM: OMAP4: clock: Cleanup !CONFIG_COMMON_CLK parts
      ARM: OMAP3: clock: Cleanup !CONFIG_COMMON_CLK parts
      ARM: OMAP2: clock: Cleanup !CONFIG_COMMON_CLK parts

Tony Lindgren (1):
      Merge tag 'omap-cleanup-c-for-3.8' of git://git.kernel.org/.../pjw/omap-pending into omap-for-v3.8/clock

Vaibhav Hiremath (2):
      ARM: OMAP2+: hwmod: Invoke init_clkdm before other init functions
      ARM: AM33XX: clock: add clock data in common clock format

 arch/arm/mach-omap2/Kconfig                  |    5 +
 arch/arm/mach-omap2/Makefile                 |   10 +-
 arch/arm/mach-omap2/cclock2420_data.c        | 1950 ++++++++++++++
 arch/arm/mach-omap2/cclock2430_data.c        | 2065 +++++++++++++++
 arch/arm/mach-omap2/cclock33xx_data.c        |  961 +++++++
 arch/arm/mach-omap2/cclock3xxx_data.c        | 3595 +++++++++++++++++++++++++
 arch/arm/mach-omap2/cclock44xx_data.c        | 1987 ++++++++++++++
 arch/arm/mach-omap2/clkt2xxx_apll.c          |   62 +-
 arch/arm/mach-omap2/clkt2xxx_dpll.c          |    8 +-
 arch/arm/mach-omap2/clkt2xxx_dpllcore.c      |   13 +-
 arch/arm/mach-omap2/clkt2xxx_osc.c           |   13 +-
 arch/arm/mach-omap2/clkt2xxx_sys.c           |    7 +-
 arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c |    9 +-
 arch/arm/mach-omap2/clkt34xx_dpll3m2.c       |    8 +-
 arch/arm/mach-omap2/clkt_clksel.c            |  194 +-
 arch/arm/mach-omap2/clkt_dpll.c              |   28 +-
 arch/arm/mach-omap2/clkt_iclk.c              |   30 +-
 arch/arm/mach-omap2/clock.c                  |  910 ++-----
 arch/arm/mach-omap2/clock.h                  |  329 +--
 arch/arm/mach-omap2/clock2420_data.c         | 1972 --------------
 arch/arm/mach-omap2/clock2430.c              |    8 +-
 arch/arm/mach-omap2/clock2430_data.c         | 2071 ---------------
 arch/arm/mach-omap2/clock2xxx.c              |    1 +
 arch/arm/mach-omap2/clock2xxx.h              |   41 +-
 arch/arm/mach-omap2/clock33xx_data.c         | 1109 --------
 arch/arm/mach-omap2/clock34xx.c              |   51 +-
 arch/arm/mach-omap2/clock3517.c              |   24 +-
 arch/arm/mach-omap2/clock36xx.c              |   22 +-
 arch/arm/mach-omap2/clock36xx.h              |    2 +-
 arch/arm/mach-omap2/clock3xxx.c              |    6 +-
 arch/arm/mach-omap2/clock3xxx.h              |    6 +-
 arch/arm/mach-omap2/clock3xxx_data.c         | 3613 --------------------------
 arch/arm/mach-omap2/clock44xx_data.c         | 3398 ------------------------
 arch/arm/mach-omap2/clock_common_data.c      |   22 +-
 arch/arm/mach-omap2/clockdomain.c            |   89 +-
 arch/arm/mach-omap2/cm-regbits-24xx.h        |    5 +
 arch/arm/mach-omap2/cm-regbits-34xx.h        |   31 +
 arch/arm/mach-omap2/cm2xxx_3xxx.h            |    1 +
 arch/arm/mach-omap2/dpll3xxx.c               |  183 +-
 arch/arm/mach-omap2/dpll44xx.c               |   21 +-
 arch/arm/mach-omap2/io.c                     |    9 +
 arch/arm/mach-omap2/omap_hwmod.c             |   63 +-
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c   |    8 +-
 arch/arm/mach-omap2/pm24xx.c                 |    4 +-
 arch/arm/mach-omap2/prm-regbits-24xx.h       |    2 +
 arch/arm/mach-omap2/prm-regbits-34xx.h       |    1 +
 arch/arm/mach-omap2/prm2xxx_3xxx.h           |    1 +
 arch/arm/mach-omap2/scrm44xx.h               |    2 +
 48 files changed, 11486 insertions(+), 13464 deletions(-)
 create mode 100644 arch/arm/mach-omap2/cclock2420_data.c
 create mode 100644 arch/arm/mach-omap2/cclock2430_data.c
 create mode 100644 arch/arm/mach-omap2/cclock33xx_data.c
 create mode 100644 arch/arm/mach-omap2/cclock3xxx_data.c
 create mode 100644 arch/arm/mach-omap2/cclock44xx_data.c
 delete mode 100644 arch/arm/mach-omap2/clock2420_data.c
 delete mode 100644 arch/arm/mach-omap2/clock2430_data.c
 delete mode 100644 arch/arm/mach-omap2/clock33xx_data.c
 delete mode 100644 arch/arm/mach-omap2/clock3xxx_data.c
 delete mode 100644 arch/arm/mach-omap2/clock44xx_data.c

^ permalink raw reply

* [GIT PULL 4/5] omap timer changes for v3.8 merge window
From: Tony Lindgren @ 2012-11-15  2:56 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <pull-1352948204-277861>

The following changes since commit d308ba50a1234b299a00e63a95e61fdeb2f1a2df:

  Merge branch 'omap-for-v3.8/cleanup-headers-prepare-multiplatform-v3' into omap-for-v3.8/dt (2012-11-09 14:58:34 -0800)

are available in the git repository at:


  git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap tags/omap-for-v3.8/timer-signed

for you to fetch changes up to 9dc57643738f9fbe45c10cc062903d5dfda5bdd9:

  Merge branch 'fixes-timer' of github.com:jonhunter/linux into omap-for-v3.8/timer (2012-11-13 13:52:38 -0800)

----------------------------------------------------------------

Timer fixes for omaps via Jon Hunter <jon-hunter@ti.com>:

Several fixes for the OMAP DMTIMER driver including ...
1. Adding workaround for OMAP3+ errata i103/i767
2. Fixing posted mode support
3. Spurious interrupts when using match interrupt
4. HWMOD fixes for timers
5. Unnecessary restoration of read-only registers
6. Adds function for disabling timer interrupts
7. Fixing timer1 reset for OMAP1

----------------------------------------------------------------
Jon Hunter (13):
      ARM: OMAP: Add DMTIMER definitions for posted mode
      ARM: OMAP3+: Implement timer workaround for errata i103 and i767
      ARM: OMAP: Fix timer posted mode support
      ARM: OMAP3: Correct HWMOD DMTIMER SYSC register declarations
      ARM: OMAP2/3: Define HWMOD software reset status for DMTIMERs
      ARM: OMAP2+: Don't use __omap_dm_timer_reset()
      ARM: OMAP: Fix dmtimer reset for timer1
      ARM: OMAP: Don't restore of DMTIMER TISTAT register
      ARM: OMAP: Don't restore DMTIMER interrupt status register
      ARM: OMAP: Fix spurious interrupts when using timer match feature
      ARM: OMAP: Add dmtimer interrupt disable function
      ARM: OMAP: Remove unnecessary call to clk_get()
      ARM: OMAP: Remove __omap_dm_timer_set_source function

Tony Lindgren (1):
      Merge branch 'fixes-timer' of github.com:jonhunter/linux into omap-for-v3.8/timer

 arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 15 ++++-
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         | 41 ++++++------
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c         |  4 ++
 arch/arm/mach-omap2/timer.c                        | 70 +++++++++++++++-----
 arch/arm/plat-omap/dmtimer.c                       | 77 +++++++++++++---------
 arch/arm/plat-omap/include/plat/dmtimer.h          | 72 ++++++++++++++------
 6 files changed, 188 insertions(+), 91 deletions(-)

^ permalink raw reply

* [GIT PULL 2/5] omap cleanup fix and soc detection improvment for v3.8 merge window
From: Tony Lindgren @ 2012-11-15  2:56 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <pull-1352948204-277861>

The following changes since commit e05cf58d50e3ce3601ebf753728eee0df759e38f:

  ARM: OMAP2+: remove duplicated include from board-overo.c (2012-11-12 14:02:48 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap tags/omap-for-v3.8/cleanup-fixes-part2-v2-signed

for you to fetch changes up to 42a1cc9c0ec2a00b53b4f02849dc4377b09b3b05:

  ARM: OMAP4: ID: Improve features detection and check (2012-11-14 12:10:37 -0800)

----------------------------------------------------------------
One build fix for recent clean up when CONFIG_PM is not set
and clean up related improvment to the SoC detection.

----------------------------------------------------------------
Ivan Khoronzhuk (1):
      ARM: OMAP4: ID: Improve features detection and check

Tony Lindgren (1):
      ARM: OMAP: Fix compile for OMAP_PM_NOOP if PM is not selected

 arch/arm/mach-omap2/Makefile |  3 ++-
 arch/arm/mach-omap2/id.c     | 25 +++++++------------------
 arch/arm/mach-omap2/soc.h    |  8 ++------
 3 files changed, 11 insertions(+), 25 deletions(-)

^ permalink raw reply

* [GIT PULL 1/5] omap non critical fixes for v3.8 merge window
From: Tony Lindgren @ 2012-11-15  2:56 UTC (permalink / raw)
  To: linux-arm-kernel

The following changes since commit 3d70f8c617a436c7146ecb81df2265b4626dfe89:

  Linux 3.7-rc4 (2012-11-04 11:07:39 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap tags/omap-for-v3.8/fixes-non-critical-v4-signed

for you to fetch changes up to 936407358759adb302df93ab61fa68141897270c:

  ARM: OMAP4: PM: fix errata handling when CONFIG_PM=n (2012-11-14 17:06:20 -0800)

----------------------------------------------------------------
Non critical omap fixes that were not considered urgent
for the -rc cycle.

----------------------------------------------------------------
Colin Cross (1):
      ARM: OMAP4: retrigger localtimers after re-enabling gic

Kevin Hilman (1):
      ARM: OMAP4: PM: fix errata handling when CONFIG_PM=n

Santosh Shilimkar (1):
      ARM: OMAP4460: Workaround for ROM bug because of CA9 r2pX GIC control register change.

Tero Kristo (1):
      ARM: OMAP4: PM: add errata support

Tony Lindgren (1):
      Merge tag 'for_3.8-fixes-pm' of git://git.kernel.org/.../khilman/linux-omap-pm into omap-for-v3.8/fixes-non-critical-v2

 arch/arm/mach-omap2/common.h              |  4 +++
 arch/arm/mach-omap2/omap-headsmp.S        | 38 ++++++++++++++++++++++++++++
 arch/arm/mach-omap2/omap-mpuss-lowpower.c |  9 ++++++-
 arch/arm/mach-omap2/omap-smp.c            | 41 +++++++++++++++++++++++++++++-
 arch/arm/mach-omap2/omap4-common.c        | 42 ++++++++++++++++++++++++++++++-
 arch/arm/mach-omap2/pm.h                  |  9 +++++++
 6 files changed, 140 insertions(+), 3 deletions(-)

^ permalink raw reply

* [PATCH] ARM: Fix errata 751472 handling on Cortex-A9 r1p*
From: Tony Lindgren @ 2012-11-15  2:08 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <50A43D58.5030404@gmail.com>

* Rob Herring <robherring2@gmail.com> [121114 16:56]:
> On 11/14/2012 04:21 PM, Tony Lindgren wrote:
> > * Rob Herring <robherring2@gmail.com> [121114 13:59]:
> >> On 11/14/2012 02:32 PM, Tony Lindgren wrote:
> >>>
> >>> Checking for the bit already set should work in this case, I'll post
> >>> a patch for that shortly.
> >>
> >> Can you actually read the state of the diagnostic register in non-secure
> >> mode? If you can on the A9, is the same true on A8 or others?
> > 
> > Looks like it can be read on at least TI omap 4430 which is A9.
> > But it reads as zero, so the below patch is what I came up with.
> > 
> > No idea if assuming that zero value for the diagnostic register
> > is safe.. What's the default value of the diagnostic register supposed
> > to be?
> 
> RTFM. Oh, wait it's a super secret, undocumented register. We shouldn't
> even be talking about it.

WITFM? :)
 
> It could vary by rev, but I see 0 for the reset value, so this would not
> work if the bootloader did not do any setup of the diagnostic register.

OK
 
> One way to determine secure mode on the A9 would be seeing if you can
> change the auxcr register. Something like this (untested):
> 
> mrc	p15, 0, r0, c1, c0, 1; Read ACTLR
> eor	r1, r0, #0x100		; Modify alloc in 1 way
> mcr	p15, 0, r1, c1, c0, 1
> mrc	p15, 0, r2, c1, c0, 1; Read ACTLR
> mcr	p15, 0, r0, c1, c0, 1	; Restore original value
> cmp	r1, r2
> bne	skip_errata
> 
> 
> It would be good to do this test for all the errata rather than just
> this one.

I recall writes to the aux control registers producing an exception
on secure A8 based omaps, but I'll give that a try when I have a
chance.

Regards,

Tony

^ permalink raw reply

* [PATCH v3 2/6] ARM: davinci: Changed pr_warning() to pr_warn() (part 2)
From: Tivy, Robert @ 2012-11-15  1:53 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <50A36FA9.5050601@mvista.com>

Hi Sergei,

Thanks for your feedback, please see below...

> -----Original Message-----
> From: Sergei Shtylyov [mailto:sshtylyov at mvista.com]
> Sent: Wednesday, November 14, 2012 2:17 AM
> To: Tivy, Robert
> Cc: davinci-linux-open-source at linux.davincidsp.com; linux-arm-
> kernel at lists.infradead.org; Ring, Chris; Grosen, Mark; Nori, Sekhar
> Subject: Re: [PATCH v3 2/6] ARM: davinci: Changed pr_warning() to
> pr_warn() (part 2)
> 
> Hello.
> 
> On 14-11-2012 4:33, Robert Tivy wrote:
> 
> > Also, while modifying those pr_warning() calls I changed hardcoded
> > function names to use '"%s:", __func__' instead
> 
> > Signed-off-by: Robert Tivy <rtivy@ti.com>
> > ---
> > Clean up files that will be otherwise modified in subsequent patch.
> 
> > Applies to v3.7-rc2 tag (commit
> > 6f0c0580b70c89094b3422ba81118c7b959c7556) of Linus' mainline kernel
> at git.kernel.org.
> 
> >   arch/arm/mach-davinci/board-omapl138-hawk.c |   30 ++++++++++------
> -----------
> >   1 file changed, 11 insertions(+), 19 deletions(-)
> 
>     Taksing of separation of board and SoC specific changes, this patch
> shouldn't have been separated from patch 1 at all -- since it's two
> boards built around the same chip, OMAP-L138...

The 4 patches that are of the same nature ("Changed pr_warning() to pr_warn() (part #)") were split as 4 separate patches on request by Sekhar, for the purpose of making it easier to merge later.

> 
> > diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c
> > b/arch/arm/mach-davinci/board-omapl138-hawk.c
> > index dc1208e..8aea169 100644
> > --- a/arch/arm/mach-davinci/board-omapl138-hawk.c
> > +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c
> > @@ -48,8 +48,7 @@ static __init void omapl138_hawk_config_emac(void)
> >   	val &= ~BIT(8);
> >   	ret = davinci_cfg_reg_list(omapl138_hawk_mii_pins);
> >   	if (ret) {
> > -		pr_warning("%s: cpgmac/mii mux setup failed: %d\n",
> > -			__func__, ret);
> > +		pr_warn("%s: cpgmac/mii mux setup failed: %d\n", __func__,
> ret);
> 
>     I'd have preferred this as "CPGMAC/MII". Almost all other acronyms
> in the messages are capitalized.

I didn't originate those acronyms so I'm not inclined to change them.

Regards,

- Rob

> 
> >   		return;
> >   	}
> >
> > @@ -61,8 +60,7 @@ static __init void omapl138_hawk_config_emac(void)
> >
> >   	ret = da8xx_register_emac();
> >   	if (ret)
> > -		pr_warning("%s: emac registration failed: %d\n",
> > -			__func__, ret);
> > +		pr_warn("%s: emac registration failed: %d\n", __func__,
> ret);
> 
>     ... and "EMAC" here.
> 
> WBR, Sergei

^ permalink raw reply

* [PATCH v10 0/4] ARM: KDB FIQ debugger
From: John Stultz @ 2012-11-15  1:45 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20121016003756.GA23146@lizard>

On 10/15/2012 05:37 PM, Anton Vorontsov wrote:
> Hello Russell,
>
> The KDB/NMI core support has been merged into v3.7-rc1, so the only ARM
> bits are pending now. I believe I addressed all your previous comments,
> but surely there might be something else to improve, thus would be great
> if you could take a look at this.
>
> The patches were rebased onto v3.7-rc1, and this is the only change in
> v10.
>
> Old changelogs and rationale for these patches can be found here:
>
> 	v1-v5, rationale: http://lkml.org/lkml/2012/9/10/2
> 	v6: http://lkml.org/lkml/2012/9/10/2
> 	v7: http://lkml.org/lkml/2012/9/13/367
> 	v8: http://lkml.org/lkml/2012/9/19/525
> 	v9: http://lkml.org/lkml/2012/9/24/538

Just catching up from being on leave, but I've not seen any response to 
this.

Are there objections to this patch set? Or did it just get buried in 
everyone's inbox?

thanks
-john

^ permalink raw reply

* [PATCH] ARM: OMAP2+: voltage: fixup oscillator handling when CONFIG_PM=n
From: Tony Lindgren @ 2012-11-15  1:31 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1352941984-11828-1-git-send-email-khilman@deeprootsystems.com>

* Kevin Hilman <khilman@deeprootsystems.com> [121114 17:15]:
> From: Kevin Hilman <khilman@ti.com>
> 
> commit 908b75e8 (ARM: OMAP: add support for oscillator setup) added a new
> API for oscillator setup, but is broken when CONFIG_PM=n.
> 
> The new functions have dummy definitions when CONFIG_PM=n, but also have
> full implementations available, which conflict.
> 
> To fix, wrap the PM implmentations in #ifdef CONFIG_PM.
> 
> Cc: Tero Kristo <t-kristo@ti.com>
> Signed-off-by: Kevin Hilman <khilman@ti.com>
> ---
> This applies to Tony's omap-for-v3.8/pm branch, which includes my
> for_3.8-pm-voltage tag where this bug was introduced.

Thanks for fixing this quickly. Applied to omap-for-v3.8/pm-part2
and pushed out.

Regards,

Tony

^ permalink raw reply

* [PATCH] ARM: OMAP4: PM: fix errata handling when CONFIG_PM=n
From: Tony Lindgren @ 2012-11-15  1:20 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1352940867-8806-1-git-send-email-khilman@deeprootsystems.com>

* Kevin Hilman <khilman@deeprootsystems.com> [121114 16:56]:
> From: Kevin Hilman <khilman@ti.com>
> 
> commit c9621844 (ARM: OMAP4: PM: add errata support) introduced errata
> handling for OMAP4, but was broken when CONFIG_PM=n.
> 
> When CONFIG_PM=n, pm44xx.c is not compiled, yet that is where pm44xx_errata
> is defined.  However, these errata are needed for the SMP boot/hotplug case
> also, and are primarily used in omap-smp.c.
> 
> Move the definition of pm44xx_errata to omap-smp.c so that it's available
> even in the CONFIG_PM=n case.
> 
> Cc: Tero Kristo <t-kristo@ti.com>
> Signed-off-by: Kevin Hilman <khilman@ti.com>
> ---
> This patch applies on top of Tony's fixes-non-critical-part-2.
> The bug was introduced in my for_3.8-fixes-pm tag (now included in Tony's fixes-non-critical-part2.)

Thanks applied to omap-for-v3.8/fixes-non-critical-v2 and
pushed out.

Tony

^ permalink raw reply

* [PATCH] ARM: OMAP2+: voltage: fixup oscillator handling when CONFIG_PM=n
From: Kevin Hilman @ 2012-11-15  1:13 UTC (permalink / raw)
  To: linux-arm-kernel

From: Kevin Hilman <khilman@ti.com>

commit 908b75e8 (ARM: OMAP: add support for oscillator setup) added a new
API for oscillator setup, but is broken when CONFIG_PM=n.

The new functions have dummy definitions when CONFIG_PM=n, but also have
full implementations available, which conflict.

To fix, wrap the PM implmentations in #ifdef CONFIG_PM.

Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
---
This applies to Tony's omap-for-v3.8/pm branch, which includes my
for_3.8-pm-voltage tag where this bug was introduced.

 arch/arm/mach-omap2/pm.c | 2 ++
 arch/arm/mach-omap2/pm.h | 2 +-
 arch/arm/mach-omap2/vc.c | 2 ++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
index 109a02e..ef668c756 100644
--- a/arch/arm/mach-omap2/pm.c
+++ b/arch/arm/mach-omap2/pm.c
@@ -39,6 +39,7 @@ static struct omap_device_pm_latency *pm_lats;
  */
 int (*omap_pm_suspend)(void);
 
+#ifdef CONFIG_PM
 /**
  * struct omap2_oscillator - Describe the board main oscillator latencies
  * @startup_time: oscillator startup latency
@@ -68,6 +69,7 @@ void omap_pm_get_oscillator(u32 *tstart, u32 *tshut)
 	*tstart = oscillator.startup_time;
 	*tshut = oscillator.shutdown_time;
 }
+#endif
 
 static int __init _init_omap_device(char *name)
 {
diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
index 4db7b23..02c291c 100644
--- a/arch/arm/mach-omap2/pm.h
+++ b/arch/arm/mach-omap2/pm.h
@@ -135,7 +135,7 @@ extern void omap_pm_get_oscillator(u32 *tstart, u32 *tshut);
 extern void omap_pm_setup_sr_i2c_pcb_length(u32 mm);
 #else
 static inline void omap_pm_setup_oscillator(u32 tstart, u32 tshut) { }
-static inline void omap_pm_get_oscillator(u32 *tstart, u32 *tshut) { }
+static inline void omap_pm_get_oscillator(u32 *tstart, u32 *tshut) { *tstart = *tshut = 0; }
 static inline void omap_pm_setup_sr_i2c_pcb_length(u32 mm) { }
 #endif
 
diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
index 687aa86..a89ec8a 100644
--- a/arch/arm/mach-omap2/vc.c
+++ b/arch/arm/mach-omap2/vc.c
@@ -666,6 +666,7 @@ static u8 omap_vc_calc_vsel(struct voltagedomain *voltdm, u32 uvolt)
 	return voltdm->pmic->uv_to_vsel(uvolt);
 }
 
+#ifdef CONFIG_PM
 /**
  * omap_pm_setup_sr_i2c_pcb_length - set length of SR I2C traces on PCB
  * @mm: length of the PCB trace in millimetres
@@ -678,6 +679,7 @@ void __init omap_pm_setup_sr_i2c_pcb_length(u32 mm)
 {
 	sr_i2c_pcb_length = mm;
 }
+#endif
 
 void __init omap_vc_init_channel(struct voltagedomain *voltdm)
 {
-- 
1.8.0

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox