From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754224AbcBHNmA (ORCPT ); Mon, 8 Feb 2016 08:42:00 -0500 Received: from mezzanine.sirena.org.uk ([106.187.55.193]:39996 "EHLO mezzanine.sirena.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753510AbcBHNl6 (ORCPT ); Mon, 8 Feb 2016 08:41:58 -0500 Date: Mon, 8 Feb 2016 13:41:51 +0000 From: Mark Brown To: Linus Torvalds Cc: linux-kernel@vger.kernel.org Message-ID: <20160208134151.GB7265@sirena.org.uk> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="JYK4vJDZwFMowpUq" Content-Disposition: inline X-Cookie: All work and no pay makes a housewife. User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: 2a01:348:6:8808:fab::3 X-SA-Exim-Mail-From: broonie@sirena.org.uk Subject: [GIT PULL] regmap fix for v4.5 X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000) X-SA-Exim-Scanned: Yes (on mezzanine.sirena.org.uk) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --JYK4vJDZwFMowpUq Content-Type: text/plain; charset=us-ascii Content-Disposition: inline The following changes since commit 92e963f50fc74041b5e9e744c330dca48e04f08d: Linux 4.5-rc1 (2016-01-24 13:06:47 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git tags/regmap-fix-v4.5-big-endian for you to fetch changes up to 320549a22484952d88d4e0320218765b16cd2174: regmap: mmio: Revert to v4.4 endianness handling (2016-02-05 11:22:04 +0000) ---------------------------------------------------------------- regmap: mmio: Revert to v4.4 endianness handling Commit 29bb45f25ff3 (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. ---------------------------------------------------------------- Mark Brown (1): regmap: mmio: Revert to v4.4 endianness handling arch/mips/boot/dts/brcm/bcm6328.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7125.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7346.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7358.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7360.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7362.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7420.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7425.dtsi | 1 + arch/mips/boot/dts/brcm/bcm7435.dtsi | 1 + drivers/base/regmap/regmap-mmio.c | 16 ++++++++-------- 10 files changed, 17 insertions(+), 8 deletions(-) --JYK4vJDZwFMowpUq Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJWuJseAAoJECTWi3JdVIfQPEkH/RPgJ+Cf9i5Dmb+ZqXVEEHt7 WYLrTaZlSWaXV95S9I61LnOsQ9+ytndZOOP4L95G8yfC2R+cR6p5ytnKXVEmTmg+ hzRoi6AP0yOnNZIw/iNZHmIgWctA3t4L9lxqA/AE7V2H5lyVdLeIMJy0rS27LVCN Ma80ldjsuyBI9L10fZTVnT/L9nuAe3TDWromUQMo5ps1jQnCKymQMTT540CWsveF LGiIgz9btAvtHxBsAfZUkiQmoo9g7DVffG1CKR8HhyNjS6hitIa8IJzoTvxS1ctj hAKg/0Da4bxEi1mZIVr/gZ9f1PovxDf/RtXxXGvzLkisKyvy0FZ0wcDkVQ50T+Q= =0WPL -----END PGP SIGNATURE----- --JYK4vJDZwFMowpUq--