mbox series

[v4,0/4] Migrate IDIO-16 GPIO drivers to regmap API

Message ID cover.1680296343.git.william.gray@linaro.org
Headers show
Series Migrate IDIO-16 GPIO drivers to regmap API | expand

Message

William Breathitt Gray March 31, 2023, 9:05 p.m. UTC
Changes in v4:
 - Remove superfluous base check in idio_16_reg_mask_xlate()
 - Format idio_16_names[] to 8 GPIO per line
 - Utilize dev_err_probe() in idio_16_regmap_register()

The regmap API supports IO port accessors so we can take advantage of
regmap abstractions rather than handling access to the device registers
directly in the driver. The 104-idio-16 and pci-idio-16 modules depend
on the IDIO-16 library and are thus updated accordingly.

By leveraging the regmap API, the idio-16 library is reduced to simply a
devm_idio_16_regmap_register() function and a configuration structure
struct idio_16_regmap_config.

This patchset depends on the "Drop map from handle_mask_sync()
parameters" patchset [0].

[0] https://lore.kernel.org/all/cover.1679323449.git.william.gray@linaro.org/

William Breathitt Gray (4):
  gpio: idio-16: Migrate to the regmap API
  gpio: 104-idio-16: Migrate to the regmap API
  gpio: pci-idio-16: Migrate to the regmap API
  gpio: idio-16: Remove unused legacy interface

 drivers/gpio/Kconfig            |   7 +-
 drivers/gpio/gpio-104-idio-16.c | 286 +++++++------------------------
 drivers/gpio/gpio-idio-16.c     | 254 ++++++++++++++-------------
 drivers/gpio/gpio-idio-16.h     |  79 +++------
 drivers/gpio/gpio-pci-idio-16.c | 294 +++++++-------------------------
 5 files changed, 289 insertions(+), 631 deletions(-)


base-commit: 4ea0c97776bf8c63805eb0f8182d9c20072219d9
prerequisite-patch-id: cd19046150b7cff1be4ac7152198777aa960a3df
prerequisite-patch-id: bd3e3830d9ce4f3876a77483364d7190b7fdffa7

Comments

William Breathitt Gray April 3, 2023, 6:06 p.m. UTC | #1
On Fri, Mar 31, 2023 at 05:05:22PM -0400, William Breathitt Gray wrote:
> Changes in v4:
>  - Remove superfluous base check in idio_16_reg_mask_xlate()
>  - Format idio_16_names[] to 8 GPIO per line
>  - Utilize dev_err_probe() in idio_16_regmap_register()
> 
> The regmap API supports IO port accessors so we can take advantage of
> regmap abstractions rather than handling access to the device registers
> directly in the driver. The 104-idio-16 and pci-idio-16 modules depend
> on the IDIO-16 library and are thus updated accordingly.
> 
> By leveraging the regmap API, the idio-16 library is reduced to simply a
> devm_idio_16_regmap_register() function and a configuration structure
> struct idio_16_regmap_config.
> 
> This patchset depends on the "Drop map from handle_mask_sync()
> parameters" patchset [0].
> 
> [0] https://lore.kernel.org/all/cover.1679323449.git.william.gray@linaro.org/
> 
> William Breathitt Gray (4):
>   gpio: idio-16: Migrate to the regmap API
>   gpio: 104-idio-16: Migrate to the regmap API
>   gpio: pci-idio-16: Migrate to the regmap API
>   gpio: idio-16: Remove unused legacy interface
> 
>  drivers/gpio/Kconfig            |   7 +-
>  drivers/gpio/gpio-104-idio-16.c | 286 +++++++------------------------
>  drivers/gpio/gpio-idio-16.c     | 254 ++++++++++++++-------------
>  drivers/gpio/gpio-idio-16.h     |  79 +++------
>  drivers/gpio/gpio-pci-idio-16.c | 294 +++++++-------------------------
>  5 files changed, 289 insertions(+), 631 deletions(-)
> 
> 
> base-commit: 4ea0c97776bf8c63805eb0f8182d9c20072219d9
> prerequisite-patch-id: cd19046150b7cff1be4ac7152198777aa960a3df
> prerequisite-patch-id: bd3e3830d9ce4f3876a77483364d7190b7fdffa7
> -- 
> 2.39.2

The 104-idio-16 and pci-idio-16 drivers here likely need
use_raw_spinlock enabled for their respective regmap_config structures
to prevent deadlocks as described in the i8255 fixes patchset [0]. I'll
submit a v5 of this patchset to fix that.

[0] https://lore.kernel.org/all/cover.1680543810.git.william.gray@linaro.org/