kernel-hacking-2024-linux-s.../drivers/base
Linus Torvalds 92e6edd685 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.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJWtIjbAAoJECTWi3JdVIfQs8QH/jNpfio4klDkdlH/KpPZXlrp
 FzASbGePNtLqZXFL5WcG//ni3EYdbaiXZIdLBKDx9K4F2ca9FAF8aAnZAZ5uefGx
 bnloYpV34DqQwS5f9FrrNsm+YVTTuUIt0dx4ZRGCEdMTzW7i3efs/9eVEITUixK6
 U1obTJovAl33bihadsC9hzJVwfOq3H4aFFWc/EFZzbQaU2/so2eiA1dhPr/YErRJ
 dMR8drWxpYXuBsrk5T647R0sUw7pA4Zw+WAF032TPQf/1Fy9Vk1/yXbTyccZzFzo
 bfupRA/HpeLNZ9cN9z9y3Fa0je4UNbBZh0poB5B773af84NnhX7Ytenjo+peVxI=
 =+Q6E
 -----END PGP SIGNATURE-----

Merge tag 'regmap-fix-v4.5-big-endian' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap

Pull regmap fix from Mark Brown:
 "A single revert back 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().  Sadly the fix makes
  things worse rather than better, so revert it for now"

* tag 'regmap-fix-v4.5-big-endian' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
  regmap: mmio: Revert to v4.4 endianness handling
2016-02-08 10:20:06 -08:00
..
power Merge branches 'pm-core' and 'pm-domains' 2016-02-06 00:34:01 +01:00
regmap regmap: mmio: Revert to v4.4 endianness handling 2016-02-05 11:22:04 +00:00
attribute_container.c
base.h PM / sleep: prohibit devices probing during suspend/hibernation 2015-11-30 14:47:22 +01:00
bus.c
cacheinfo.c
class.c
component.c component: add support for releasing match data 2015-12-07 00:02:05 +00:00
container.c
core.c driver core: Do not overwrite secondary fwnode with NULL if it is set 2015-12-07 02:29:23 +01:00
cpu.c drivers/base/cpu.c: use __cpu_*_mask directly 2016-01-20 17:09:18 -08:00
dd.c driver core: Avoid NULL pointer dereferences in device_is_bound() 2016-01-12 01:51:44 +01:00
devcoredump.c
devres.c
devtmpfs.c wrappers for ->i_mutex access 2016-01-22 18:04:28 -05:00
dma-coherent.c
dma-contiguous.c
dma-mapping.c dma-mapping: remove <asm-generic/dma-coherent.h> 2016-01-20 17:09:18 -08:00
driver.c
firmware.c
firmware_class.c firmware: actually return NULL on failed request_firmware_nowait() 2016-01-07 13:45:34 -07:00
hypervisor.c
init.c
isa.c
Kconfig
Makefile
map.c
memory.c mm: skip memory block registration for ZONE_DEVICE 2016-01-15 17:56:32 -08:00
module.c
node.c
pinctrl.c
platform-msi.c base: Export platform_msi_domain_[alloc,free]_irqs 2016-01-26 16:33:25 +01:00
platform.c base/platform: Fix platform drivers with no probe callback 2016-01-26 08:47:25 -08:00
property.c device property: avoid allocations of 0 length 2016-01-01 02:09:51 +01:00
soc.c
syscore.c
topology.c
transport_class.c