[GIT PULL] regmap updates for v6.4

From: Mark Brown
Date: Mon Apr 24 2023 - 09:10:30 EST


The following changes since commit e8d018dd0257f744ca50a729e3d042cf2ec9da65:

Linux 6.3-rc3 (2023-03-19 13:27:55 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git tags/regmap-v6.4

for you to fetch changes up to 4a670ac3e75e517c96cbd01ef870dbd598c3ce71:

regmap: allow upshifting register addresses before performing operations (2023-04-07 17:28:19 +0100)

----------------------------------------------------------------
regmap: Updates for v6.4

This is a much bigger change for regmap than is normal, the main things
being the addition of some KUnit coverage and a maple tree based
register cache which longer term is likely to replace the rbtree cache
except possibly for very small register maps. While it's complete
overkill for most applications the code for maple trees is there and
there are some larger, sparser devices where the data structure is a
better fit.

The maple tree support is still a work in progress but already useful,
there's some conversions of drivers ready to go after the merge window.

- Support for shifting register addresses up as well as down, there's a
use cases with memory mapped MDIO.
- Refactoring of the type configuration in regmap-irq to allow access
to driver data in the handler, needed by some GPIO devices.
- Some initial KUnit coverage, the bulk of the driver facing API is
covered but there's holes and things like the data marshalling for
bytestream buses are just not covered in the slightest.
- Removal of the compressed cache type, it had zero users and was
getting in the way of KUnit.
- Addition of a maple tree based register cache, there's more work to
do but it's already useful for some devices with a flatter data
structure than rbtree and getting to use all the optimisation work
Liam is doing.

----------------------------------------------------------------
Alexander Stein (2):
regmap: cache: Return error in cache sync operations for REGCACHE_NONE
regmap: cache: Silence checkpatch warning

Andy Shevchenko (1):
regmap-irq: Place kernel doc of struct regmap_irq_chip in order

Charles Keepax (1):
regmap: sdw: Update misleading comment

Lucas Tanure (1):
regmap: sdw: Remove 8-bit value size restriction

Mark Brown (15):
Minor SoundWire Regmap Tweaks
regmap: Add support for devices with no interrupt readback
Merge tag 'v6.3-rc2' into regmap-6.4 to fix clock related boot issues
Introduce a helper to translate register addresses
regmap: Handle sparse caches in the default sync
regmap: Clarify error for unknown cache types
regmap: Support paging for buses with reg_read()/reg_write()
regmap: Removed compressed cache support
regmap: Add RAM backed register map
regmap: Add some basic kunit tests
regmap: Factor out single value register syncing
regmap: Add maple tree based register cache
regmap: Fix double unlock in the maple cache
regmap: Use mas_walk() instead of mas_find()
Migrate the PCIe-IDIO-24 and WS16C48 GPIO drivers

Maxime Chevallier (2):
regmap: add a helper to translate the register address
regmap: allow upshifting register addresses before performing operations

William Breathitt Gray (2):
regmap-irq: Add no_status support
regmap: Pass irq_drv_data as a parameter for set_type_config()

drivers/base/regmap/Kconfig | 13 +-
drivers/base/regmap/Makefile | 5 +-
drivers/base/regmap/internal.h | 24 +-
drivers/base/regmap/regcache-lzo.c | 368 -----------------
drivers/base/regmap/regcache-maple.c | 279 +++++++++++++
drivers/base/regmap/regcache.c | 56 ++-
drivers/base/regmap/regmap-irq.c | 30 +-
drivers/base/regmap/regmap-kunit.c | 739 +++++++++++++++++++++++++++++++++++
drivers/base/regmap/regmap-ram.c | 85 ++++
drivers/base/regmap/regmap-sdw.c | 41 +-
drivers/base/regmap/regmap.c | 53 ++-
drivers/mfd/ocelot-spi.c | 2 +-
include/linux/regmap.h | 36 +-
13 files changed, 1284 insertions(+), 447 deletions(-)
delete mode 100644 drivers/base/regmap/regcache-lzo.c
create mode 100644 drivers/base/regmap/regcache-maple.c
create mode 100644 drivers/base/regmap/regmap-kunit.c
create mode 100644 drivers/base/regmap/regmap-ram.c