linux/arch/mips
Mark Brown 320549a224 regmap: mmio: Revert to v4.4 endianness handling
Commit 29bb45f25f (regmap-mmio: Use native endianness for read/write)
attempted to fix some long standing bugs in the MMIO implementation for
big endian systems caused by duplicate byte swapping in both regmap and
readl()/writel() which affected MIPS systems as when they are in big
endian mode they flip the endianness of all registers in the system, not
just the CPU.  MIPS systems had worked around this by declaring regmap
using IPs as little endian which is inaccurate, unfortunately the issue
had not been reported.

Sadly the fix makes things worse rather than better.  By changing the
behaviour to match the documentation it caused behaviour changes for
other IPs which broke them and by using the __raw I/O accessors to avoid
the endianness swapping in readl()/writel() it removed some memory
ordering guarantees and could potentially generate unvirtualisable
instructions on some architectures.

Unfortunately sorting out all this mess in any half way sensible fashion
was far too invasive to go in during an -rc cycle so instead let's go
back to the old broken behaviour for v4.5, the better fixes are already
queued for v4.6.  This does mean that we keep the broken MIPS DTs for
another release but that seems the least bad way of handling the
situation.

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Mark Brown <broonie@kernel.org>
2016-02-05 11:22:04 +00:00
..
alchemy Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-01-24 12:50:56 -08:00
ar7 MIPS: ar7: Be sure to clamp return value 2016-01-24 02:21:47 +01:00
ath25 genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
ath79 MIPS: ath79: Remove some unused code from setup.c 2016-01-04 09:42:26 +01:00
bcm47xx Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-01-24 12:50:56 -08:00
bcm63xx MIPS: bcm63xx: nvram: Remove unused bcm63xx_nvram_get_psi_size() function 2016-01-24 03:49:27 +01:00
bmips MIPS: bmips: Support SMP on BCM63168 2016-01-04 09:42:26 +01:00
boot regmap: mmio: Revert to v4.4 endianness handling 2016-02-05 11:22:04 +00:00
cavium-octeon Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-11-15 09:10:53 -08:00
cobalt MIPS: Cobalt Don't use module_init in non-modular MTD registration. 2015-06-21 22:14:30 +02:00
configs MIPS: pic32mzda: Add initial PIC32MZDA Starter Kit defconfig 2016-01-24 02:54:32 +01:00
dec MIPS: DEC: Do not set up the FPU interrupt if no FPU 2015-04-08 01:10:46 +02:00
emma
fw
include Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-01-24 12:50:56 -08:00
jazz MIPS: Jazz: Migrate to new 'set-state' interface 2015-09-03 12:07:50 +02:00
jz4740 MIPS: JZ4740: Remove unused linux/leds_pwm.h include 2015-10-26 09:49:44 +01:00
kernel Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-01-24 12:50:56 -08:00
kvm Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-01-24 12:50:56 -08:00
lantiq MIPS: Make MIPS_CMDLINE_DTB default 2015-11-11 08:38:37 +01:00
lasat [mips] switch pvc_proc_cleanup() to remove_proc_subtree() 2015-12-23 10:41:38 -05:00
lib MIPS: Cleanup the unused __arch_local_irq_restore() function 2016-01-22 01:58:49 +01:00
loongson32 MIPS: loongsoon32: Migrate to new 'set-state' interface 2015-09-03 12:07:53 +02:00
loongson64 MIPS: hpet: Choose a safe value for the ETIME check 2016-01-22 02:00:49 +01:00
math-emu MIPS: math-emu: dsemul: Reduce `get_isa16_mode' clutter 2016-01-24 01:37:09 +01:00
mm Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-01-24 12:50:56 -08:00
mti-malta MIPS: Malta: Register UP SMP ops if all else fails 2015-11-11 08:35:49 +01:00
mti-sead3 LED/MIPS: Move SEAD3 LED driver to where it belongs. 2015-11-03 08:59:20 +01:00
net net: filter: make JITs zero A for SKF_AD_ALU_XOR_X 2016-01-06 00:43:52 -05:00
netlogic MIPS: Make MIPS_CMDLINE_DTB default 2015-11-11 08:38:37 +01:00
oprofile MIPS: Add cases for CPU_I6400 2015-08-26 15:23:03 +02:00
paravirt MIPS: SMP: Don't increment irq_count multiple times for call function IPIs 2015-08-03 09:25:12 +02:00
pci MIPS: pci: Add MT7620a PCIE driver 2016-01-20 00:39:20 +01:00
pic32 MIPS: dts: Add initial DTS for the PIC32MZDA Starter Kit 2016-01-24 02:54:00 +01:00
pistachio Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-11-15 09:10:53 -08:00
pmcs-msp71xx MIPS: Fix build error due to unused variables. 2015-12-22 15:21:18 +01:00
pnx833x mips: nand: make use of mtd_to_nand() where appropriate 2015-12-08 13:03:07 -08:00
power MIPS: Hibernate: flush TLB entries earlier 2015-04-10 15:41:52 +02:00
ralink MIPS: pci: Add MT7620a PCIE driver 2016-01-20 00:39:20 +01:00
rb532 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-01-24 12:50:56 -08:00
sgi-ip22
sgi-ip27 MIPS: IP27: Migrate to new 'set-state' interface 2015-09-03 12:07:54 +02:00
sgi-ip32 MIPS: IP32: Fix build errors in reset code in DS1685 platform hook. 2015-05-13 00:01:41 +02:00
sibyte MIPS: Sibyte: Move bus watcher from deprecated __initcall to device_initcall 2015-09-03 12:07:49 +02:00
sni MIPS: Fix build error due to unused variables. 2015-12-22 15:21:18 +01:00
txx9 MIPS: TXx9: iocled: Be sure to clamp return value 2016-01-24 02:23:08 +01:00
vdso Fix ld-version.sh to handle large 3rd version part 2016-01-04 10:22:52 +01:00
vr41xx MIPS/IRQCHIP: Move irq_chip from arch/mips to drivers/irqchip. 2015-06-21 21:52:50 +02:00
xilfpga Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-11-15 09:10:53 -08:00
Kbuild MIPS: Initial implementation of a VDSO 2015-11-11 08:36:36 +01:00
Kbuild.platforms MIPS: Add support for PIC32MZDA platform 2016-01-24 02:53:28 +01:00
Kconfig Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-01-24 12:50:56 -08:00
Kconfig.debug MIPS: CPS: Early debug using an ns16550-compatible UART 2015-11-11 08:34:25 +01:00
Makefile MIPS: Loongson-3: Improve -march option and move it to Platform 2016-01-22 01:59:18 +01:00