Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3616257f authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'highbank-for-3.12' of git://sources.calxeda.com/kernel/linux into late/all

From Rob Herring:
Updates for Highbank for 3.12:
- A couple of fixes to enable LPAE.
- pl08x driver fixes to make it build with ARCH_DMA_ADDR_T_64BIT.
- Avoid L2 related smc calls on Midway.
- Add selecting of necesssary ARM errata.

* tag 'highbank-for-3.12' of git://sources.calxeda.com/kernel/linux

:
  ARM: highbank: clean-up some unused includes
  ARM: highbank: avoid L2 cache smc calls when PL310 is not present
  ARM: move outer_cache declaration out of ifdef
  ARM: highbank: select ARCH_DMA_ADDR_T_64BIT for LPAE
  DMA: fix printk warning in AMBA PL08x DMA driver
  DMA: fix AMBA PL08x compilation issue with 64bit DMA address type
  ARM: highbank: select required errata work-arounds
  ARM: highbank: select ARCH_HAS_HOLES_MEMORYMODEL
  ARM: highbank: enable DMA zone for LPAE
  ARM: use phys_addr_t for DMA zone sizes

Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 6f244c9c e7dc0796
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ struct machine_desc {
	unsigned int		nr_irqs;	/* number of IRQs */

#ifdef CONFIG_ZONE_DMA
	unsigned long		dma_zone_size;	/* size of DMA-able area */
	phys_addr_t		dma_zone_size;	/* size of DMA-able area */
#endif

	unsigned int		video_start;	/* start of video RAM	*/
+2 −2
Original line number Diff line number Diff line
@@ -37,10 +37,10 @@ struct outer_cache_fns {
	void (*resume)(void);
};

#ifdef CONFIG_OUTER_CACHE

extern struct outer_cache_fns outer_cache;

#ifdef CONFIG_OUTER_CACHE

static inline void outer_inv_range(phys_addr_t start, phys_addr_t end)
{
	if (outer_cache.inv_range)
+6 −0
Original line number Diff line number Diff line
config ARCH_HIGHBANK
	bool "Calxeda ECX-1000/2000 (Highbank/Midway)" if ARCH_MULTI_V7
	select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
	select ARCH_HAS_CPUFREQ
	select ARCH_HAS_HOLES_MEMORYMODEL
	select ARCH_HAS_OPP
	select ARCH_WANT_OPTIONAL_GPIOLIB
	select ARM_AMBA
	select ARM_ERRATA_764369
	select ARM_ERRATA_775420
	select ARM_ERRATA_798181
	select ARM_GIC
	select ARM_TIMER_SP804
	select CACHE_L2X0
@@ -18,3 +23,4 @@ config ARCH_HIGHBANK
	select PL320_MBOX
	select SPARSE_IRQ
	select USE_OF
	select ZONE_DMA if ARM_LPAE
+9 −11
Original line number Diff line number Diff line
@@ -18,14 +18,11 @@
#include <linux/clocksource.h>
#include <linux/dma-mapping.h>
#include <linux/io.h>
#include <linux/irq.h>
#include <linux/irqchip.h>
#include <linux/irqdomain.h>
#include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/of_platform.h>
#include <linux/of_address.h>
#include <linux/smp.h>
#include <linux/amba/bus.h>
#include <linux/clk-provider.h>

@@ -35,7 +32,6 @@
#include <asm/hardware/cache-l2x0.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/time.h>

#include "core.h"
#include "sysregs.h"
@@ -65,13 +61,11 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr)
			  HB_JUMP_TABLE_PHYS(cpu) + 15);
}

#ifdef CONFIG_CACHE_L2X0
static void highbank_l2x0_disable(void)
{
	/* Disable PL310 L2 Cache controller */
	highbank_smc1(0x102, 0x0);
}
#endif

static void __init highbank_init_irq(void)
{
@@ -80,12 +74,13 @@ static void __init highbank_init_irq(void)
	if (of_find_compatible_node(NULL, NULL, "arm,cortex-a9"))
		highbank_scu_map_io();

#ifdef CONFIG_CACHE_L2X0
	/* Enable PL310 L2 Cache controller */
	if (IS_ENABLED(CONFIG_CACHE_L2X0) &&
	    of_find_compatible_node(NULL, NULL, "arm,pl310-cache")) {
		highbank_smc1(0x102, 0x1);
		l2x0_of_init(0, ~0UL);
		outer_cache.disable = highbank_l2x0_disable;
#endif
	}
}

static void __init highbank_timer_init(void)
@@ -176,6 +171,9 @@ static const char *highbank_match[] __initconst = {
};

DT_MACHINE_START(HIGHBANK, "Highbank")
#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)
	.dma_zone_size	= (4ULL * SZ_1G),
#endif
	.smp		= smp_ops(highbank_smp_ops),
	.init_irq	= highbank_init_irq,
	.init_time	= highbank_timer_init,
+1 −1
Original line number Diff line number Diff line
@@ -207,7 +207,7 @@ static void __init arm_bootmem_init(unsigned long start_pfn,

#ifdef CONFIG_ZONE_DMA

unsigned long arm_dma_zone_size __read_mostly;
phys_addr_t arm_dma_zone_size __read_mostly;
EXPORT_SYMBOL(arm_dma_zone_size);

/*
Loading