--- /dev/null
+From c95f121142a41c951fd62683a5574f2a7b37c573 Mon Sep 17 00:00:00 2001
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+Date: Wed, 15 Nov 2017 17:31:18 -0800
+Subject: m32r: fix endianness constraints
+
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+
+commit c95f121142a41c951fd62683a5574f2a7b37c573 upstream.
+
+The m32r Kconfig provides both CPU_BIG_ENDIAN and CPU_LITTLE_ENDIAN
+configuration options. As they are user-selectable and independent,
+this allows invalid configurations:
+
+ - All m32r defconfigs build a big endian kernel, but CPU_BIG_ENDIAN is
+ not set, causing compiler warnings like:
+
+ include/linux/byteorder/big_endian.h:7:2: warning: #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp]
+ #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
+ ^
+
+ - Since commit 5bdfca6435b82944 ("m32r: define CPU_BIG_ENDIAN"),
+ building an allmodconfig or allyesconfig enables both
+ CONFIG_CPU_BIG_ENDIAN and CONFIG_CPU_LITTLE_ENDIAN.
+ While this did get rid of the warning above, both options are
+ obviously mutually exclusive.
+
+Fix this by making only CPU_LITTLE_ENDIAN configurable by the user, as
+before, and by making sure exactly one of CPU_BIG_ENDIAN and
+CPU_LITTLE_ENDIAN is always enabled.
+
+Link: http://lkml.kernel.org/r/1509361505-18150-1-git-send-email-geert@linux-m68k.org
+Fixes: 5bdfca6435b82944 ("m32r: define CPU_BIG_ENDIAN")
+Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
+Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/m32r/Kconfig | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/m32r/Kconfig
++++ b/arch/m32r/Kconfig
+@@ -196,8 +196,8 @@ config TIMER_DIVIDE
+ default "128"
+
+ config CPU_BIG_ENDIAN
+- bool "Generate big endian code"
+- default n
++ bool
++ default !CPU_LITTLE_ENDIAN
+
+ config CPU_LITTLE_ENDIAN
+ bool "Generate little endian code"
--- /dev/null
+From 71e7673dadfdae0605d4c1f66ecb4b045c79fe0f Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Tue, 2 Jan 2018 12:47:19 +0100
+Subject: microblaze: fix endian handling
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit 71e7673dadfdae0605d4c1f66ecb4b045c79fe0f upstream.
+
+Building an allmodconfig kernel fails horribly because of
+endian mismatch. It turns out that the -mlittle-endian
+switch was not honored at all as we were using the wrong
+Kconfig symbol and failing to apply CPUFLAGS to the CFLAGS.
+Finally, the linker flags did not get set right.
+
+This addresses all three of those issues, which now lets
+me build both big-endian and little-endian kernels for
+testing.
+
+Fixes: 428dbf156cc5 ("arch: change default endian for microblaze")
+Fixes: 206d3642d8ee ("arch/microblaze: add choice for endianness and update Makefile")
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Michal Simek <michal.simek@xilinx.com>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/microblaze/Makefile | 17 +++++++++++------
+ 1 file changed, 11 insertions(+), 6 deletions(-)
+
+--- a/arch/microblaze/Makefile
++++ b/arch/microblaze/Makefile
+@@ -36,16 +36,21 @@ endif
+ CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) += -mno-xl-soft-div
+ CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARREL) += -mxl-barrel-shift
+ CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR) += -mxl-pattern-compare
+-CPUFLAGS-$(CONFIG_BIG_ENDIAN) += -mbig-endian
+-CPUFLAGS-$(CONFIG_LITTLE_ENDIAN) += -mlittle-endian
++
++ifdef CONFIG_CPU_BIG_ENDIAN
++KBUILD_CFLAGS += -mbig-endian
++KBUILD_AFLAGS += -mbig-endian
++LD += -EB
++else
++KBUILD_CFLAGS += -mlittle-endian
++KBUILD_AFLAGS += -mlittle-endian
++LD += -EL
++endif
+
+ CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER))
+
+ # r31 holds current when in kernel mode
+-KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-1) $(CPUFLAGS-2)
+-
+-LDFLAGS :=
+-LDFLAGS_vmlinux :=
++KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-y) $(CPUFLAGS-1) $(CPUFLAGS-2)
+
+ head-y := arch/microblaze/kernel/head.o
+ libs-y += arch/microblaze/lib/
drm-amdgpu-avoid-leaking-pm-domain-on-driver-unbind-v2.patch
drm-amdgpu-add-new-device-to-use-atpx-quirk.patch
drm-i915-breadcrumbs-ignore-unsubmitted-signalers.patch
+m32r-fix-endianness-constraints.patch
+microblaze-fix-endian-handling.patch