[PATCH 00/11] regmap: align regmap_bulk_read/write API with Linux
Ahmad Fatoum
a.fatoum at pengutronix.de
Fri Oct 20 00:18:42 PDT 2023
Since its inception in 2016, barebox regmap_bulk_read and
regmap_bulk_write expected the last argument to be the total
length of data to access in bytes.
Its namesake Linux version has the same prototype, but interprets the
last argument as number of elements to write, i.e.
bytes / regmap_get_val_bytes(map).
This went unnoticed so far, because barebox users are either using
1-byte regmaps, the code was written specifically for barebox
or the code is yet unused such as the KSZ switch 64-bit accessors.
Avoid nasty future surprises by switching implementation and users
to the Linux interpretation of the last argument. As courtesy for
out-of-tree board code, we poison the symbol when regmap.h is included,
so out of tree code doesn't silently run into the inverse issue.
AFAICS, this doesn't fix any bugs, so it doesn't need to go into master.
Ahmad Fatoum (11):
regmap: add support for bulk 64-bit reads and writes
nvmem: regmap: do not use regmap_bulk_read
regmap: move regmap.h content to linux/regmap.h
regmap: align regmap_bulk_read/write API with Linux
mfd: syscon: do not include regmap.h from mfd/syscon.h
mfd: axp20x: remove dependency on regmap.h
mfd: pfuze: disable mfd/pfuze.h dependency on regmap.h
mfd: atmel-smc: remove dependency of mfd/syscon/atmel-smc.h on
regmap.h
mfd: atmel-smc: include needed headers directly
mfd: stm32-timers: remove dependency of mfd/stm32-timers.h on regmap.h
treewide: switch regmap.h include to linux/regmap.h
arch/arm/boards/phytec-som-imx8mq/board.c | 1 +
arch/arm/boards/protonic-imx6/board.c | 2 +-
arch/arm/mach-imx/iim.c | 2 +-
arch/arm/mach-rockchip/dmc.c | 2 +-
arch/kvx/cpu/reset.c | 2 +-
drivers/base/regmap/regmap-fmt.c | 2 +-
drivers/base/regmap/regmap-i2c.c | 2 +-
drivers/base/regmap/regmap-mmio.c | 2 +-
drivers/base/regmap/regmap-multi.c | 6 +-
drivers/base/regmap/regmap-spi.c | 2 +-
drivers/base/regmap/regmap.c | 39 ++-
drivers/clk/at91/at91rm9200.c | 2 +-
drivers/clk/at91/at91sam9260.c | 2 +-
drivers/clk/at91/at91sam9g45.c | 2 +-
drivers/clk/at91/at91sam9n12.c | 2 +-
drivers/clk/at91/at91sam9rl.c | 2 +-
drivers/clk/at91/at91sam9x5.c | 2 +-
drivers/clk/at91/clk-audio-pll.c | 2 +-
drivers/clk/at91/clk-generated.c | 2 +-
drivers/clk/at91/clk-h32mx.c | 2 +-
drivers/clk/at91/clk-i2s-mux.c | 2 +-
drivers/clk/at91/clk-main.c | 2 +-
drivers/clk/at91/clk-master.c | 2 +-
drivers/clk/at91/clk-peripheral.c | 2 +-
drivers/clk/at91/clk-pll.c | 2 +-
drivers/clk/at91/clk-plldiv.c | 2 +-
drivers/clk/at91/clk-programmable.c | 2 +-
drivers/clk/at91/clk-sam9x60-pll.c | 2 +-
drivers/clk/at91/clk-slow.c | 2 +-
drivers/clk/at91/clk-smd.c | 2 +-
drivers/clk/at91/clk-system.c | 2 +-
drivers/clk/at91/clk-usb.c | 2 +-
drivers/clk/at91/clk-utmi.c | 2 +-
drivers/clk/at91/pmc.c | 2 +-
drivers/clk/at91/sam9x60.c | 2 +-
drivers/clk/at91/sama5d2.c | 2 +-
drivers/clk/at91/sama5d3.c | 2 +-
drivers/clk/at91/sama5d4.c | 2 +-
drivers/clk/at91/sckc.c | 2 +-
drivers/clk/clk-stm32f4.c | 2 +-
drivers/clk/rockchip/clk-inverter.c | 2 +-
drivers/clk/rockchip/clk-muxgrf.c | 2 +-
drivers/clk/rockchip/clk-pll.c | 2 +-
drivers/clk/rockchip/clk.c | 2 +-
drivers/clk/socfpga/clk-gate-a10.c | 2 +-
drivers/gpio/gpio-sx150x.c | 2 +-
drivers/hab/hab.c | 2 +-
drivers/i2c/busses/i2c-cadence.c | 2 +-
drivers/i2c/busses/i2c-rockchip.c | 2 +-
drivers/i2c/busses/i2c-stm32.c | 2 +-
drivers/memory/atmel-ebi.c | 2 +-
drivers/mfd/atmel-smc.c | 2 +
drivers/mfd/axp20x-i2c.c | 2 +-
drivers/mfd/axp20x.c | 2 +-
drivers/mfd/mc13xxx.c | 2 +-
drivers/mfd/rk808.c | 2 +-
drivers/mfd/rn5t568.c | 2 +-
drivers/mfd/rohm-bd718x7.c | 2 +-
drivers/mfd/stm32-timers.c | 1 +
drivers/mfd/stpmic1.c | 2 +-
drivers/mfd/superio.c | 2 +-
drivers/mfd/syscon.c | 1 +
drivers/mtd/nand/atmel/nand-controller.c | 2 +-
drivers/net/designware_imx8.c | 2 +-
drivers/net/designware_rockchip.c | 2 +-
drivers/net/designware_starfive.c | 1 +
drivers/net/designware_stm32.c | 1 +
drivers/net/ksz8873.c | 2 +-
drivers/net/ksz_common.h | 2 +-
drivers/net/realtek-dsa/realtek-mdio.c | 2 +-
drivers/net/realtek-dsa/realtek-smi.c | 2 +-
drivers/net/realtek-dsa/rtl8365mb.c | 2 +-
drivers/net/realtek-dsa/rtl8366rb.c | 2 +-
drivers/nvmem/bsec.c | 4 +-
drivers/nvmem/ocotp.c | 8 +-
drivers/nvmem/regmap.c | 16 +-
drivers/nvmem/snvs_lpgpr.c | 6 +-
drivers/nvmem/starfive-otp.c | 2 +-
drivers/pci/pci-layerscape.c | 2 +-
drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 1 +
.../rockchip/phy-rockchip-naneng-combphy.c | 1 +
drivers/pinctrl/pinctrl-rockchip.c | 1 +
drivers/power/reset/syscon-poweroff.c | 1 +
drivers/power/reset/syscon-reboot-mode.c | 2 +-
drivers/power/reset/syscon-reboot.c | 1 +
drivers/pwm/pwm-stm32.c | 1 +
drivers/regulator/anatop-regulator.c | 2 +-
drivers/regulator/helpers.c | 2 +-
drivers/regulator/pfuze.c | 2 +-
drivers/regulator/rk808-regulator.c | 2 +-
drivers/regulator/stpmic1_regulator.c | 2 +-
drivers/remoteproc/imx_rproc.c | 2 +-
drivers/remoteproc/stm32_rproc.c | 2 +-
drivers/reset/reset-imx7.c | 2 +-
drivers/rtc/rtc-pcf85363.c | 2 +-
drivers/serial/serial_clps711x.c | 1 +
drivers/soc/imx/gpcv2.c | 2 +-
drivers/soc/rockchip/io-domain.c | 2 +-
drivers/spi/spi-fsl-dspi.c | 2 +-
drivers/spi/spi-nxp-fspi.c | 2 +-
drivers/usb/typec/tusb320.c | 2 +-
drivers/watchdog/rn5t568_wdt.c | 2 +-
drivers/watchdog/stpmic1_wdt.c | 1 +
include/linux/mfd/axp20x.h | 26 +-
include/linux/mfd/stm32-timers.h | 3 +-
include/linux/mfd/syscon/atmel-smc.h | 3 +-
include/linux/regmap.h | 260 ++++++++++++++++++
include/mfd/pfuze.h | 2 +-
include/mfd/syscon.h | 2 +-
include/regmap.h | 256 ++---------------
110 files changed, 436 insertions(+), 376 deletions(-)
create mode 100644 include/linux/regmap.h
--
2.39.2
More information about the barebox
mailing list