Subject: [GIT PULL] DT/core: cpu_ofnode updates for v3.12

From: [email-masked] (Sudeep KarkadaNagesha)
Date: Tue, 13 Aug 2013 16:40:28 +0100

Adding PowerPC list

On 13/08/13 14:00, Rafael J. Wysocki wrote:
> On Monday, August 12, 2013 02:27:47 PM Sudeep KarkadaNagesha wrote:
>> The following changes since commit
>> d4e4ab86bcba5a72779c43dc1459f71fea3d89c8:
>> 
>> Linux 3.11-rc5 (2013-08-11 18:04:20 -0700)
>> 
>> are available in the git repository at:
>> 
>> git://linux-arm.org/linux-skn.git cpu_of_node
>> 
>> for you to fetch changes up to
>> 9e9e26dde91f22635c87d0e45f3938b5ded96f0d:
>> 
>> cpufreq: pmac32-cpufreq: remove device tree parsing for cpu nodes 
>> (2013-08-12 10:22:29 +0100)
>> 
>> ---------------------------------------------------------------- 
>> Sudeep KarkadaNagesha (16): of: add support for retrieving cpu node
>> for a given logical cpu index ARM: DT/kernel: define ARM specific
>> arch_match_cpu_phys_id driver/core: cpu: initialize of_node in
>> cpu's device struture of/device: add helper to get cpu device node
>> from logical cpu index ARM: topology: remove hwid/MPIDR dependency
>> from cpu_capacity ARM: mvebu: remove device tree parsing for cpu
>> nodes drivers/bus: arm-cci: avoid parsing DT for cpu device nodes 
>> cpufreq: imx6q-cpufreq: remove device tree parsing for cpu nodes 
>> cpufreq: cpufreq-cpu0: remove device tree parsing for cpu nodes 
>> cpufreq: highbank-cpufreq: remove device tree parsing for cpu
>> nodes cpufreq: spear-cpufreq: remove device tree parsing for cpu
>> nodes cpufreq: kirkwood-cpufreq: remove device tree parsing for cpu
>> nodes cpufreq: arm_big_little: remove device tree parsing for cpu
>> nodes cpufreq: maple-cpufreq: remove device tree parsing for cpu
>> nodes cpufreq: pmac64-cpufreq: remove device tree parsing for cpu
>> nodes cpufreq: pmac32-cpufreq: remove device tree parsing for cpu
>> nodes
>> 
>> arch/arm/kernel/devtree.c           |  5 +++++ 
>> arch/arm/kernel/topology.c          | 61 
>> +++++++++++++++++++------------------------------------------ 
>> arch/arm/mach-imx/mach-imx6q.c      |  3 +-- 
>> arch/arm/mach-mvebu/platsmp.c       | 52 
>> ++++++++++++++++++++++++---------------------------- 
>> drivers/base/cpu.c                  |  2 ++ drivers/bus/arm-cci.c
>> | 28 +++++++--------------------- 
>> drivers/cpufreq/arm_big_little_dt.c | 40 
>> ++++++++++++++-------------------------- 
>> drivers/cpufreq/cpufreq-cpu0.c      | 23 ++++------------------- 
>> drivers/cpufreq/highbank-cpufreq.c  | 18 ++++++------------ 
>> drivers/cpufreq/imx6q-cpufreq.c     |  4 +--- 
>> drivers/cpufreq/kirkwood-cpufreq.c  |  8 +++++--- 
>> drivers/cpufreq/maple-cpufreq.c     | 23 +++-------------------- 
>> drivers/cpufreq/pmac32-cpufreq.c    |  5 +++-- 
>> drivers/cpufreq/pmac64-cpufreq.c    | 47 
>> +++++++++++------------------------------------ 
>> drivers/cpufreq/spear-cpufreq.c     |  4 ++-- drivers/of/base.c
>> | 73 
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>
>> 
include/linux/cpu.h                 |  1 +
>> include/linux/of.h                  |  6 ++++++ 
>> include/linux/of_device.h           | 15 +++++++++++++++ 19 files
>> changed, 202 insertions(+), 216 deletions(-)
>> 
>> 
>> PS: This patch series is reviewed and acknowledged @
>> 
>> v1: https://lkml.org/lkml/2013/7/15/128 v2:
>> https://lkml.org/lkml/2013/7/17/341 v3:
>> https://lkml.org/lkml/2013/7/22/219
> 
> Pulled, thanks!
> 
Hi Rob, Rafael,

On 13/08/13 15:16, kbuild test robot wrote:> tree:
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
bleeding-edge
> head:   0d4bcb5dc7d3040c0ce7572ea30ab9e5d9455bfa commit:
> 7939ff8d991de2c0b15064e76ee549a6df5ae67f [151/204] of: add
> support for retrieving cpu node for a given logical cpu index
> config: make ARCH=powerpc allmodconfig
> 
> All error/warnings:
> 
> warning: (MPC836x_RDK && MTD_NAND_FSL_ELBC && MTD_NAND_FSL_UPM)
> selects FSL_LBC which has unmet direct dependencies (FSL_SOC)
> warning: (MPC836x_RDK && MTD_NAND_FSL_ELBC && MTD_NAND_FSL_UPM)
> selects FSL_LBC which has unmet direct dependencies (FSL_SOC)
> In file included from arch/powerpc/include/asm/kvm_para.h:26:0, from
> include/uapi/linux/kvm_para.h:26, from include/linux/kvm_para.h:4, 
> from include/linux/kvm_host.h:30, from
> arch/powerpc/kernel/asm-offsets.c:53:
> include/linux/of.h:269:28: error: conflicting types for
>'of_get_cpu_node'
> extern struct device_node *of_get_cpu_node(int cpu); ^ In file
> included from include/linux/of.h:139:0, from
> arch/powerpc/include/asm/kvm_para.h:26, from
> include/uapi/linux/kvm_para.h:26, from include/linux/kvm_para.h:4, 
> from include/linux/kvm_host.h:30, from
> arch/powerpc/kernel/asm-offsets.c:53: 
> arch/powerpc/include/asm/prom.h:47:21: note: previous declaration
> of 'of_get_cpu_node' was here
> struct device_node *of_get_cpu_node(int cpu, unsigned int *thread); 
> ^ make[2]: *** [arch/powerpc/kernel/asm-offsets.s] Error 1 make[2]:
> Target `__build' not remade because of errors. make[1]: ***
> [prepare0] Error 2 make[1]: Target `prepare' not remade because of
> errors. make: *** [sub-make] Error 2
> 

There seems to be conflict in the new function "of_get_cpu_node" added.
PowerPC also defines the same function name. Further microblaze and
openrisc declares it(can be removed) but doesn't define it.
To fix this:
1. I can rename the newly added function to something different like
   `of_get_cpunode` or
2. If of_* namespace should be used by only OF/FDT and not by any
   architecture specific code, then the arch specific version can be
   renamed to some thing like arch_of_get_cpu_node.
   Also most of the calls to arch specific function can be moved to
   generic code.

Let me know your thoughts.

Regards,
Sudeep