On Fri, Oct 20, 2023 at 09:18:42AM +0200, Ahmad Fatoum wrote: > 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 Applied, thanks Sascha > > 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 > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |