mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Subject: [PATCH 00/11] regmap: align regmap_bulk_read/write API with Linux
Date: Fri, 20 Oct 2023 09:18:42 +0200	[thread overview]
Message-ID: <20231020071853.2826528-1-a.fatoum@pengutronix.de> (raw)

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




             reply	other threads:[~2023-10-20  7:20 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-20  7:18 Ahmad Fatoum [this message]
2023-10-20  7:18 ` [PATCH 01/11] regmap: add support for bulk 64-bit reads and writes Ahmad Fatoum
2023-10-20  7:18 ` [PATCH 02/11] nvmem: regmap: do not use regmap_bulk_read Ahmad Fatoum
2023-10-20  7:18 ` [PATCH 03/11] regmap: move regmap.h content to linux/regmap.h Ahmad Fatoum
2023-10-20  7:18 ` [PATCH 04/11] regmap: align regmap_bulk_read/write API with Linux Ahmad Fatoum
2023-10-20  7:18 ` [PATCH 05/11] mfd: syscon: do not include regmap.h from mfd/syscon.h Ahmad Fatoum
2023-10-20  7:18 ` [PATCH 06/11] mfd: axp20x: remove dependency on regmap.h Ahmad Fatoum
2023-10-20  7:18 ` [PATCH 07/11] mfd: pfuze: disable mfd/pfuze.h " Ahmad Fatoum
2023-10-20  7:18 ` [PATCH 08/11] mfd: atmel-smc: remove dependency of mfd/syscon/atmel-smc.h " Ahmad Fatoum
2023-10-20  7:18 ` [PATCH 09/11] mfd: atmel-smc: include needed headers directly Ahmad Fatoum
2023-10-20  7:18 ` [PATCH 10/11] mfd: stm32-timers: remove dependency of mfd/stm32-timers.h on regmap.h Ahmad Fatoum
2023-10-20  7:18 ` [PATCH 11/11] treewide: switch regmap.h include to linux/regmap.h Ahmad Fatoum
2023-10-23  9:45 ` [PATCH 00/11] regmap: align regmap_bulk_read/write API with Linux Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231020071853.2826528-1-a.fatoum@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox