lkml.org 
[lkml]   [2016]   [Nov]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 13/16] ARM: zynq: use generic API for enabling SCU
    Date
    Now as we have of_scu_enable which takes care of mapping
    scu base from DT, lets use it.

    At the same time this patch cleans up mach-zynq platform files by
    removing static mapping of SCU and dropping zynq_scu_map_io and zynq_map_io
    functions.

    CC: Michal Simek <michal.simek@xilinx.com>
    Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
    ---
    arch/arm/mach-zynq/common.c | 32 +-------------------------------
    arch/arm/mach-zynq/common.h | 2 --
    arch/arm/mach-zynq/platsmp.c | 2 ++
    3 files changed, 3 insertions(+), 33 deletions(-)

    diff --git a/arch/arm/mach-zynq/common.c b/arch/arm/mach-zynq/common.c
    index d12002c..3986b2b 100644
    --- a/arch/arm/mach-zynq/common.c
    +++ b/arch/arm/mach-zynq/common.c
    @@ -38,7 +38,6 @@
    #include <asm/mach-types.h>
    #include <asm/page.h>
    #include <asm/pgtable.h>
    -#include <asm/smp_scu.h>
    #include <asm/system_info.h>
    #include <asm/hardware/cache-l2x0.h>

    @@ -48,8 +47,6 @@
    #define ZYNQ_DEVCFG_PS_VERSION_SHIFT 28
    #define ZYNQ_DEVCFG_PS_VERSION_MASK 0xF

    -void __iomem *zynq_scu_base;
    -
    /**
    * zynq_memory_init - Initialize special memory
    *
    @@ -153,33 +150,6 @@ static void __init zynq_timer_init(void)
    clocksource_probe();
    }

    -static struct map_desc zynq_cortex_a9_scu_map __initdata = {
    - .length = SZ_256,
    - .type = MT_DEVICE,
    -};
    -
    -static void __init zynq_scu_map_io(void)
    -{
    - unsigned long base;
    -
    - base = scu_a9_get_base();
    - zynq_cortex_a9_scu_map.pfn = __phys_to_pfn(base);
    - /* Expected address is in vmalloc area that's why simple assign here */
    - zynq_cortex_a9_scu_map.virtual = base;
    - iotable_init(&zynq_cortex_a9_scu_map, 1);
    - zynq_scu_base = (void __iomem *)base;
    - BUG_ON(!zynq_scu_base);
    -}
    -
    -/**
    - * zynq_map_io - Create memory mappings needed for early I/O.
    - */
    -static void __init zynq_map_io(void)
    -{
    - debug_ll_io_init();
    - zynq_scu_map_io();
    -}
    -
    static void __init zynq_irq_init(void)
    {
    zynq_early_slcr_init();
    @@ -196,7 +166,7 @@ DT_MACHINE_START(XILINX_EP107, "Xilinx Zynq Platform")
    .l2c_aux_val = 0x00400000,
    .l2c_aux_mask = 0xffbfffff,
    .smp = smp_ops(zynq_smp_ops),
    - .map_io = zynq_map_io,
    + .map_io = debug_ll_io_init,
    .init_irq = zynq_irq_init,
    .init_machine = zynq_init_machine,
    .init_late = zynq_init_late,
    diff --git a/arch/arm/mach-zynq/common.h b/arch/arm/mach-zynq/common.h
    index e771933..7c2f008 100644
    --- a/arch/arm/mach-zynq/common.h
    +++ b/arch/arm/mach-zynq/common.h
    @@ -33,8 +33,6 @@ extern int zynq_cpun_start(u32 address, int cpu);
    extern const struct smp_operations zynq_smp_ops;
    #endif

    -extern void __iomem *zynq_scu_base;
    -
    void zynq_pm_late_init(void);

    static inline void zynq_core_pm_init(void)
    diff --git a/arch/arm/mach-zynq/platsmp.c b/arch/arm/mach-zynq/platsmp.c
    index 7cd9865..2d09119 100644
    --- a/arch/arm/mach-zynq/platsmp.c
    +++ b/arch/arm/mach-zynq/platsmp.c
    @@ -33,6 +33,7 @@
    * be called from zynq_cpun_start() because it is not in __init section.
    */
    static int ncores;
    +static void __iomem *zynq_scu_base;

    int zynq_cpun_start(u32 address, int cpu)
    {
    @@ -108,6 +109,7 @@ static void __init zynq_smp_init_cpus(void)

    static void __init zynq_smp_prepare_cpus(unsigned int max_cpus)
    {
    + zynq_scu_base = of_scu_get_base();
    scu_enable(zynq_scu_base);
    }

    --
    2.7.4
    \
     
     \ /
      Last update: 2016-11-14 06:01    [W:4.235 / U:0.816 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site