lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20231017120431.68847-1-brgl@bgdev.pl>
Date:   Tue, 17 Oct 2023 14:03:18 +0200
From:   Bartosz Golaszewski <brgl@...ev.pl>
To:     Linus Walleij <linus.walleij@...aro.org>,
        Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
Cc:     linux-kernel@...r.kernel.org, linux-gpio@...r.kernel.org,
        Bartosz Golaszewski <bartosz.golaszewski@...aro.org>
Subject: [PATCH v3 00/73] pinctrl: don't use GPIOLIB global numberspace in helpers

From: Bartosz Golaszewski <bartosz.golaszewski@...aro.org>

We have a set of pinctrl helpers for GPIOLIB drivers that take a number
from the global GPIO numberspace as argument. We are trying to get rid
of this global numbering. Let's rework these helpers to use the
recommended gpio_chip + controller-relative offset instead.

This work is split into phases: first let's introduce the new variants
of the helpers. Next: let's convert all users one-by-one for easier
review. After that let's remove the old helpers and rename the new
variants to take the place of the old ones. Finally convert static
functions in pinctrl/core.c to using the same signature and to top it
off, let's remove now redundant wrappers around the pinctrl_helpers.

This series introduces no functional changes in drivers so I decided to
not spam every single driver maintainer anymore.

As this is a big series and there already are conflicts between it and
current pinctrl tree, I plan on sending it as a separate PR later in the
merge window once the bulk of GPIO and pinctrl changes are already
in master.

v2 -> v3:
- split patches modifying multiple drivers at once into separate
  changesets
- fix build errors reported by autobuilders

v1 -> v2:
- drop the conversion to using cleanup.h helpers as this is not the
  subject of this series
- split the patch renaming the new variants to the old names into
  several patches that perform the operation step by step for easier
  review
- collect review tags and acks
- add follow-up patches that drop the wrappers around pinctrl helpers
  where applicable (where all the wrappers do is call the helper)
- fix build error with PINCTRL disabled

Bartosz Golaszewski (73):
  pinctrl: remove unneeded extern specifiers from consumer.h
  pinctrl: provide new GPIO-to-pinctrl glue helpers
  gpiolib: generic: use new pinctrl GPIO helpers
  gpio: cdev: use pinctrl_gpio_can_use_line_new()
  gpio: rcar: use new pinctrl GPIO helpers
  gpio: tegra: use new pinctrl GPIO helpers
  gpio: em: use new pinctrl GPIO helpers
  gpio: aspeed: use new pinctrl GPIO helpers
  gpio: mvebu: use new pinctrl GPIO helpers
  gpio: pxa: use new pinctrl GPIO helpers
  gpio: rockchip: use new pinctrl GPIO helpers
  gpio: vf610: use new pinctrl GPIO helpers
  pinctrl: nuvoton: npcm7xx: use new pinctrl GPIO helpers
  pinctrl: nuvoton: npcm8xx: use new pinctrl GPIO helpers
  pinctrl: renesas: use new pinctrl GPIO helpers
  pinctrl: bcm: use new pinctrl GPIO helpers
  pinctrl: stm32: use new pinctrl GPIO helpers
  pinctrl: spear: use new pinctrl GPIO helpers
  pinctrl: starfive: jh7100: use new pinctrl GPIO helpers
  pinctrl: starfive: jh7110: use new pinctrl GPIO helpers
  pinctrl: ocelot: use new pinctrl GPIO helpers
  pinctrl: rk805: use new pinctrl GPIO helpers
  pinctrl: cirrus: use new pinctrl GPIO helpers
  pinctrl: mediatek: moore: use new pinctrl GPIO helpers
  pinctrl: mediatek: common: use new pinctrl GPIO helpers
  pinctrl: mediatek: paris: use new pinctrl GPIO helpers
  pinctrl: axp209: use new pinctrl GPIO helpers
  pinctrl: vt8500: use new pinctrl GPIO helpers
  pinctrl: cy8c95x0: use new pinctrl GPIO helpers
  pinctrl: as3722: use new pinctrl GPIO helpers
  pinctrl: ingenic: use new pinctrl GPIO helpers
  pinctrl: intel: cherryview: use new pinctrl GPIO helpers
  pinctrl: intel: use new pinctrl GPIO helpers
  pinctrl: intel: lynxpoint: use new pinctrl GPIO helpers
  pinctrl: st: use new pinctrl GPIO helpers
  pinctrl: remove pinctrl_gpio_can_use_line()
  pinctrl: remove pinctrl_gpio_request()
  pinctrl: remove pinctrl_gpio_free()
  pinctrl: remove pinctrl_gpio_direction_input()
  pinctrl: remove pinctrl_gpio_direction_output()
  pinctrl: remove pinctrl_gpio_set_config()
  treewide: rename pinctrl_gpio_can_use_line_new()
  treewide: rename pinctrl_gpio_request_new()
  treewide: rename pinctrl_gpio_free_new()
  treewide: rename pinctrl_gpio_direction_input_new()
  treewide: rename pinctrl_gpio_direction_output_new()
  treewide: rename pinctrl_gpio_set_config_new()
  pinctrl: change the signature of pinctrl_gpio_direction()
  pinctrl: change the signature of pinctrl_get_device_gpio_range()
  pinctrl: change the signature of pinctrl_match_gpio_range()
  pinctrl: change the signature of gpio_to_pin()
  pinctrl: change the signature of pinctrl_ready_for_gpio_range()
  pinctrl: intel: lynxpoint: drop the wrappers around
    pinctrl_gpio_direction_input()
  pinctrl: intel: drop the wrappers around
    pinctrl_gpio_direction_input()
  pinctrl: intel: cherryview: drop the wrappers around
    pinctrl_gpio_direction_input()
  pinctrl: st: drop the wrapper around pinctrl_gpio_direction_input()
  pinctrl: ingenic: drop the wrapper around
    pinctrl_gpio_direction_input()
  pinctrl: as3722: drop the wrapper around
    pinctrl_gpio_direction_input()
  pinctrl: cy8c95x0: drop the wrapper around
    pinctrl_gpio_direction_input()
  pinctrl: vt8500: drop the wrapper around
    pinctrl_gpio_direction_input()
  pinctrl: axp209: drop the wrapper around
    pinctrl_gpio_direction_input()
  pinctrl: rk805: drop the wrapper around pinctrl_gpio_direction_input()
  pinctrl: mediatek: moore: drop the wrappers around
    pinctrl_gpio_direction_input()
  pinctrl: mediatek: common: drop the wrappers around
    pinctrl_gpio_direction_input()
  pinctrl: cirrus: drop the wrapper around
    pinctrl_gpio_direction_input()
  pinctrl: ocelot: drop the wrapper around
    pinctrl_gpio_direction_input()
  pinctrl: starfive: jh7100: drop wrappers around
    pinctrl_gpio_request/free()
  pinctrl: starfive: jh7110: drop wrappers around
    pinctrl_gpio_request/free()
  pinctrl: stm32: drop wrappers around pinctrl_gpio_free/input()
  pinctrl: nuvoton: npcm7xx: drop wrappers around
    pinctrl_gpio_request/free()
  pinctrl: nuvoton: npcm8xx: drop wrappers around
    pinctrl_gpio_request/free()
  pinctrl: em: drop the wrapper around pinctrl_gpio_request()
  pinctrl: tegra: drop the wrapper around pinctrl_gpio_request()

 drivers/gpio/gpio-aspeed.c                    |   6 +-
 drivers/gpio/gpio-em.c                        |   9 +-
 drivers/gpio/gpio-mvebu.c                     |   4 +-
 drivers/gpio/gpio-pxa.c                       |   4 +-
 drivers/gpio/gpio-rcar.c                      |   4 +-
 drivers/gpio/gpio-rockchip.c                  |   4 +-
 drivers/gpio/gpio-tegra.c                     |  13 +-
 drivers/gpio/gpio-vf610.c                     |   4 +-
 drivers/gpio/gpiolib-cdev.c                   |   3 +-
 drivers/gpio/gpiolib.c                        |   6 +-
 drivers/pinctrl/bcm/pinctrl-iproc-gpio.c      |   6 +-
 drivers/pinctrl/cirrus/pinctrl-cs42l43.c      |   9 +-
 drivers/pinctrl/cirrus/pinctrl-lochnagar.c    |   2 +-
 drivers/pinctrl/core.c                        | 133 ++++++++++--------
 drivers/pinctrl/intel/pinctrl-cherryview.c    |   9 +-
 drivers/pinctrl/intel/pinctrl-intel.c         |   9 +-
 drivers/pinctrl/intel/pinctrl-lynxpoint.c     |   9 +-
 drivers/pinctrl/mediatek/pinctrl-moore.c      |   9 +-
 drivers/pinctrl/mediatek/pinctrl-mtk-common.c |  10 +-
 drivers/pinctrl/mediatek/pinctrl-paris.c      |   4 +-
 drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c     |  14 +-
 drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c     |  13 +-
 drivers/pinctrl/pinctrl-as3722.c              |   9 +-
 drivers/pinctrl/pinctrl-axp209.c              |   7 +-
 drivers/pinctrl/pinctrl-cy8c95x0.c            |   9 +-
 drivers/pinctrl/pinctrl-ingenic.c             |  19 ++-
 drivers/pinctrl/pinctrl-ocelot.c              |  10 +-
 drivers/pinctrl/pinctrl-rk805.c               |  10 +-
 drivers/pinctrl/pinctrl-st.c                  |  13 +-
 drivers/pinctrl/renesas/gpio.c                |   8 +-
 drivers/pinctrl/renesas/pinctrl-rzg2l.c       |   4 +-
 drivers/pinctrl/renesas/pinctrl-rzv2m.c       |   4 +-
 drivers/pinctrl/spear/pinctrl-plgpio.c        |   8 +-
 .../starfive/pinctrl-starfive-jh7100.c        |  14 +-
 .../starfive/pinctrl-starfive-jh7110.c        |  14 +-
 drivers/pinctrl/stm32/pinctrl-stm32.c         |  20 +--
 drivers/pinctrl/vt8500/pinctrl-wmt.c          |   9 +-
 include/linux/pinctrl/consumer.h              |  57 +++++---
 38 files changed, 196 insertions(+), 303 deletions(-)

-- 
2.39.2

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ