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

Commit 5839fec9 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge branch 'depends/rmk/memory_h' into next/fixes



Fix up all conflicts between the memory.h cleanup and bug fixes.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 43872fa7 0cdc8b92
Loading
Loading
Loading
Loading
+36 −10
Original line number Diff line number Diff line
@@ -195,7 +195,8 @@ config VECTORS_BASE
	  The base address of exception vectors.

config ARM_PATCH_PHYS_VIRT
	bool "Patch physical to virtual translations at runtime"
	bool "Patch physical to virtual translations at runtime" if EMBEDDED
	default y
	depends on !XIP_KERNEL && MMU
	depends on !ARCH_REALVIEW || !SPARSEMEM
	help
@@ -204,16 +205,25 @@ config ARM_PATCH_PHYS_VIRT
	  kernel in system memory.

	  This can only be used with non-XIP MMU kernels where the base
	  of physical memory is at a 16MB boundary, or theoretically 64K
	  for the MSM machine class.
	  of physical memory is at a 16MB boundary.

config ARM_PATCH_PHYS_VIRT_16BIT
	def_bool y
	depends on ARM_PATCH_PHYS_VIRT && ARCH_MSM
	  Only disable this option if you know that you do not require
	  this feature (eg, building a kernel for a single machine) and
	  you need to shrink the kernel to the minimal size.

config NEED_MACH_MEMORY_H
	bool
	help
	  Select this when mach/memory.h is required to provide special
	  definitions for this platform.  The need for mach/memory.h should
	  be avoided when possible.

config PHYS_OFFSET
	hex "Physical address of main memory"
	depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H
	help
	  This option extends the physical to virtual translation patching
	  to allow physical memory down to a theoretical minimum of 64K
	  boundaries.
	  Please provide the physical address corresponding to the
	  location of main memory in your system.

source "init/Kconfig"

@@ -246,6 +256,7 @@ config ARCH_INTEGRATOR
	select GENERIC_CLOCKEVENTS
	select PLAT_VERSATILE
	select PLAT_VERSATILE_FPGA_IRQ
	select NEED_MACH_MEMORY_H
	help
	  Support for ARM's Integrator platform.

@@ -261,6 +272,7 @@ config ARCH_REALVIEW
	select PLAT_VERSATILE_CLCD
	select ARM_TIMER_SP804
	select GPIO_PL061 if GPIOLIB
	select NEED_MACH_MEMORY_H
	help
	  This enables support for ARM Ltd RealView boards.

@@ -301,7 +313,6 @@ config ARCH_AT91
	select ARCH_REQUIRE_GPIOLIB
	select HAVE_CLK
	select CLKDEV_LOOKUP
	select ARM_PATCH_PHYS_VIRT if MMU
	help
	  This enables support for systems based on the Atmel AT91RM9200,
	  AT91SAM9 and AT91CAP9 processors.
@@ -322,6 +333,7 @@ config ARCH_CLPS711X
	bool "Cirrus Logic CLPS711x/EP721x-based"
	select CPU_ARM720T
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	  Support for Cirrus Logic 711x/721x based boards.

@@ -362,6 +374,7 @@ config ARCH_EBSA110
	select ISA
	select NO_IOPORT
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	  This is an evaluation board for the StrongARM processor available
	  from Digital. It has limited hardware on-board, including an
@@ -377,6 +390,7 @@ config ARCH_EP93XX
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_HAS_HOLES_MEMORYMODEL
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MEMORY_H
	help
	  This enables support for the Cirrus EP93xx series of CPUs.

@@ -385,6 +399,7 @@ config ARCH_FOOTBRIDGE
	select CPU_SA110
	select FOOTBRIDGE
	select GENERIC_CLOCKEVENTS
	select NEED_MACH_MEMORY_H
	help
	  Support for systems based on the DC21285 companion chip
	  ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
@@ -434,6 +449,7 @@ config ARCH_IOP13XX
	select PCI
	select ARCH_SUPPORTS_MSI
	select VMSPLIT_1G
	select NEED_MACH_MEMORY_H
	help
	  Support for Intel's IOP13XX (XScale) family of processors.

@@ -464,6 +480,7 @@ config ARCH_IXP23XX
	select CPU_XSC3
 	select PCI
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	  Support for Intel's IXP23xx (XScale) family of processors.

@@ -473,6 +490,7 @@ config ARCH_IXP2000
	select CPU_XSCALE
	select PCI
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	  Support for Intel's IXP2400/2800 (XScale) family of processors.

@@ -566,6 +584,7 @@ config ARCH_KS8695
	select CPU_ARM922T
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	  Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
	  System-on-Chip devices.
@@ -657,6 +676,7 @@ config ARCH_SHMOBILE
	select SPARSE_IRQ
	select MULTI_IRQ_HANDLER
	select PM_GENERIC_DOMAINS if PM
	select NEED_MACH_MEMORY_H
	help
	  Support for Renesas's SH-Mobile and R-Mobile ARM platforms.

@@ -671,6 +691,7 @@ config ARCH_RPC
	select NO_IOPORT
	select ARCH_SPARSEMEM_ENABLE
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	  On the Acorn Risc-PC, Linux can support the internal IDE disk and
	  CD-ROM interface, serial and parallel port, and the floppy drive.
@@ -689,6 +710,7 @@ config ARCH_SA1100
	select HAVE_SCHED_CLOCK
	select TICK_ONESHOT
	select ARCH_REQUIRE_GPIOLIB
	select NEED_MACH_MEMORY_H
	help
	  Support for StrongARM 11x0 based boards.

@@ -781,6 +803,7 @@ config ARCH_S5PV210
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C_RTC if RTC_CLASS
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select NEED_MACH_MEMORY_H
	help
	  Samsung S5PV210/S5PC110 series based systems

@@ -797,6 +820,7 @@ config ARCH_EXYNOS4
	select HAVE_S3C_RTC if RTC_CLASS
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select NEED_MACH_MEMORY_H
	help
	  Samsung EXYNOS4 series based systems

@@ -808,6 +832,7 @@ config ARCH_SHARK
	select ZONE_DMA
	select PCI
	select ARCH_USES_GETTIMEOFFSET
	select NEED_MACH_MEMORY_H
	help
	  Support for the StrongARM based Digital DNARD machine, also known
	  as "Shark" (<http://www.shark-linux.de/shark.html>).
@@ -836,6 +861,7 @@ config ARCH_U300
	select HAVE_MACH_CLKDEV
	select GENERIC_GPIO
	select ARCH_REQUIRE_GPIOLIB
	select NEED_MACH_MEMORY_H
	help
	  Support for ST-Ericsson U300 series mobile platforms.

+3 −0
Original line number Diff line number Diff line
@@ -128,6 +128,9 @@ textofs-$(CONFIG_PM_H1940) := 0x00108000
ifeq ($(CONFIG_ARCH_SA1100),y)
textofs-$(CONFIG_SA1111) := 0x00208000
endif
textofs-$(CONFIG_ARCH_MSM7X30) := 0x00208000
textofs-$(CONFIG_ARCH_MSM8X60) := 0x00208000
textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000

# Machine directory name.  This list is sorted alphanumerically
# by CONFIG_* macro name.
+7 −0
Original line number Diff line number Diff line
@@ -205,6 +205,13 @@ extern void *dma_alloc_writecombine(struct device *, size_t, dma_addr_t *,
int dma_mmap_writecombine(struct device *, struct vm_area_struct *,
		void *, dma_addr_t, size_t);

/*
 * This can be called during boot to increase the size of the consistent
 * DMA region above it's default value of 2MB. It must be called before the
 * memory allocator is initialised, i.e. before any core_initcall.
 */
extern void __init init_consistent_dma_size(unsigned long size);


#ifdef CONFIG_DMABOUNCE
/*
+1 −1
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ struct sys_timer;
struct machine_desc {
	unsigned int		nr;		/* architecture number	*/
	const char		*name;		/* architecture name	*/
	unsigned long		boot_params;	/* tagged list		*/
	unsigned long		atag_offset;	/* tagged list (relative) */
	const char		**dt_compat;	/* array of device tree
						 * 'compatible' strings	*/

+8 −17
Original line number Diff line number Diff line
@@ -16,9 +16,12 @@
#include <linux/compiler.h>
#include <linux/const.h>
#include <linux/types.h>
#include <mach/memory.h>
#include <asm/sizes.h>

#ifdef CONFIG_NEED_MACH_MEMORY_H
#include <mach/memory.h>
#endif

/*
 * Allow for constants defined here to be used from assembly code
 * by prepending the UL suffix only with actual C code compilation.
@@ -77,16 +80,7 @@
 */
#define IOREMAP_MAX_ORDER	24

/*
 * Size of DMA-consistent memory region.  Must be multiple of 2M,
 * between 2MB and 14MB inclusive.
 */
#ifndef CONSISTENT_DMA_SIZE
#define CONSISTENT_DMA_SIZE 	SZ_2M
#endif

#define CONSISTENT_END		(0xffe00000UL)
#define CONSISTENT_BASE		(CONSISTENT_END - CONSISTENT_DMA_SIZE)

#else /* CONFIG_MMU */

@@ -160,7 +154,6 @@
 * so that all we need to do is modify the 8-bit constant field.
 */
#define __PV_BITS_31_24	0x81000000
#define __PV_BITS_23_16	0x00810000

extern unsigned long __pv_phys_offset;
#define PHYS_OFFSET __pv_phys_offset
@@ -178,9 +171,6 @@ static inline unsigned long __virt_to_phys(unsigned long x)
{
	unsigned long t;
	__pv_stub(x, t, "add", __PV_BITS_31_24);
#ifdef CONFIG_ARM_PATCH_PHYS_VIRT_16BIT
	__pv_stub(t, t, "add", __PV_BITS_23_16);
#endif
	return t;
}

@@ -188,9 +178,6 @@ static inline unsigned long __phys_to_virt(unsigned long x)
{
	unsigned long t;
	__pv_stub(x, t, "sub", __PV_BITS_31_24);
#ifdef CONFIG_ARM_PATCH_PHYS_VIRT_16BIT
	__pv_stub(t, t, "sub", __PV_BITS_23_16);
#endif
	return t;
}
#else
@@ -200,7 +187,11 @@ static inline unsigned long __phys_to_virt(unsigned long x)
#endif

#ifndef PHYS_OFFSET
#ifdef PLAT_PHYS_OFFSET
#define PHYS_OFFSET	PLAT_PHYS_OFFSET
#else
#define PHYS_OFFSET	UL(CONFIG_PHYS_OFFSET)
#endif
#endif

/*
Loading