m68k: use io_no.h for MMU and non-MMU enabled ColdFire
authorGreg Ungerer <gerg@linux-m68k.org>
Sun, 25 Mar 2018 12:37:11 +0000 (22:37 +1000)
committerGreg Ungerer <gerg@linux-m68k.org>
Sun, 27 May 2018 23:45:26 +0000 (09:45 +1000)
Use the io_no.h IO access support for all ColdFire systems, no matter
whether configured with MMU enabled or disabled. Previously there was
subtle differences in IO access functions used in both cases, and these
resulted in broken behavior for some drivers.

As observed and reported by Angelo when using MMU enabled systems the
read/write family of functions was using little endian access, while the
non-MMU enabled systems were using native endian. This results in drivers
that are shared across Freescale processors (for some of the common
internal SoC peripherals) not working - since they are wired up for native
endian access.

This problem brings to light issues with PCI bus access and local
peripheral access - but these are not addressed with this fix.

Reported-by: Angelo Dureghello <angelo@sysam.it>
Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
Reviewed-by: Angelo Dureghello <angelo@sysam.it>
Tested-by: Angelo Dureghello <angelo@sysam.it>
arch/m68k/include/asm/io.h

index 00b45155969c81ab32d648d46bb20f51bc17343e..ca2849afb0877339e18866885b2e8f76401b6ccd 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: GPL-2.0 */
-#ifdef __uClinux__
+#if defined(__uClinux__) || defined(CONFIG_COLDFIRE)
 #include <asm/io_no.h>
 #else
 #include <asm/io_mm.h>