aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-02-02 12:48:36 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2018-02-02 12:48:36 -0500
commit44644391ff1817fa01b1ae4a7e52af8a23e0baa2 (patch)
treecaa93c353bbf80edb8e897ed34968a5614729b5b
parent4bf772b14675411a69b3c807f73006de0fe4b649 (diff)
parent7b6ce52be3f86520524711a6f33f3866f9339694 (diff)
Merge tag 'microblaze-4.16-rc1' of git://git.monstr.eu/linux-2.6-microblaze
Pull microblaze updates from Michal Simek: - Fix endian handling and Kconfig dependency - Fix iounmap prototype * tag 'microblaze-4.16-rc1' of git://git.monstr.eu/linux-2.6-microblaze: microblaze: Setup proper dependency for optimized lib functions microblaze: fix iounmap prototype microblaze: fix endian handling
-rw-r--r--arch/microblaze/Kconfig.platform1
-rw-r--r--arch/microblaze/Makefile17
-rw-r--r--arch/microblaze/include/asm/io.h2
-rw-r--r--arch/microblaze/mm/pgtable.c2
4 files changed, 14 insertions, 8 deletions
diff --git a/arch/microblaze/Kconfig.platform b/arch/microblaze/Kconfig.platform
index 1b3d8c849101..6996f397c16c 100644
--- a/arch/microblaze/Kconfig.platform
+++ b/arch/microblaze/Kconfig.platform
@@ -8,6 +8,7 @@ menu "Platform options"
8 8
9config OPT_LIB_FUNCTION 9config OPT_LIB_FUNCTION
10 bool "Optimalized lib function" 10 bool "Optimalized lib function"
11 depends on CPU_LITTLE_ENDIAN
11 default y 12 default y
12 help 13 help
13 Allows turn on optimalized library function (memcpy and memmove). 14 Allows turn on optimalized library function (memcpy and memmove).
diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
index 830ee7d42fa0..d269dd4b8279 100644
--- a/arch/microblaze/Makefile
+++ b/arch/microblaze/Makefile
@@ -36,16 +36,21 @@ endif
36CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) += -mno-xl-soft-div 36CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) += -mno-xl-soft-div
37CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARREL) += -mxl-barrel-shift 37CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARREL) += -mxl-barrel-shift
38CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR) += -mxl-pattern-compare 38CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR) += -mxl-pattern-compare
39CPUFLAGS-$(CONFIG_BIG_ENDIAN) += -mbig-endian 39
40CPUFLAGS-$(CONFIG_LITTLE_ENDIAN) += -mlittle-endian 40ifdef CONFIG_CPU_BIG_ENDIAN
41KBUILD_CFLAGS += -mbig-endian
42KBUILD_AFLAGS += -mbig-endian
43LD += -EB
44else
45KBUILD_CFLAGS += -mlittle-endian
46KBUILD_AFLAGS += -mlittle-endian
47LD += -EL
48endif
41 49
42CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER)) 50CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER))
43 51
44# r31 holds current when in kernel mode 52# r31 holds current when in kernel mode
45KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-1) $(CPUFLAGS-2) 53KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-y) $(CPUFLAGS-1) $(CPUFLAGS-2)
46
47LDFLAGS :=
48LDFLAGS_vmlinux :=
49 54
50head-y := arch/microblaze/kernel/head.o 55head-y := arch/microblaze/kernel/head.o
51libs-y += arch/microblaze/lib/ 56libs-y += arch/microblaze/lib/
diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
index 39b6315db82e..c7968139486f 100644
--- a/arch/microblaze/include/asm/io.h
+++ b/arch/microblaze/include/asm/io.h
@@ -36,7 +36,7 @@ extern resource_size_t isa_mem_base;
36#ifdef CONFIG_MMU 36#ifdef CONFIG_MMU
37#define page_to_bus(page) (page_to_phys(page)) 37#define page_to_bus(page) (page_to_phys(page))
38 38
39extern void iounmap(void __iomem *addr); 39extern void iounmap(volatile void __iomem *addr);
40 40
41extern void __iomem *ioremap(phys_addr_t address, unsigned long size); 41extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
42#define ioremap_nocache(addr, size) ioremap((addr), (size)) 42#define ioremap_nocache(addr, size) ioremap((addr), (size))
diff --git a/arch/microblaze/mm/pgtable.c b/arch/microblaze/mm/pgtable.c
index 4c0599239915..7f525962cdfa 100644
--- a/arch/microblaze/mm/pgtable.c
+++ b/arch/microblaze/mm/pgtable.c
@@ -127,7 +127,7 @@ void __iomem *ioremap(phys_addr_t addr, unsigned long size)
127} 127}
128EXPORT_SYMBOL(ioremap); 128EXPORT_SYMBOL(ioremap);
129 129
130void iounmap(void __iomem *addr) 130void iounmap(volatile void __iomem *addr)
131{ 131{
132 if ((__force void *)addr > high_memory && 132 if ((__force void *)addr > high_memory &&
133 (unsigned long) addr < ioremap_bot) 133 (unsigned long) addr < ioremap_bot)