mbox series

[GIT,PULL] gpio: updates for v6.2

Message ID 20221215113050.34875-1-brgl@bgdev.pl
State New
Headers show
Series [GIT,PULL] gpio: updates for v6.2 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-updates-for-v6.2

Message

Bartosz Golaszewski Dec. 15, 2022, 11:30 a.m. UTC
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

Linus,

Here's the pull-request with updates for the next release from the GPIO
subsystem.

We have a new GPIO multiplexer driver, bunch of driver updates and refactoring
in the core GPIO library. Details are in the signed tag.

There are two merges, one is the regular one from Andy with ACPI changes, the
second pulls in the code from i2c that introduces the i2c_client_get_device_id()
helper used in commits converting i2c driver to using .probe_new().

I've also included the uAPI fixes for the user-space induced NULL-pointer
dereferences with the changes you requested (don't use semaphore trylocks).

Please pull,
Bartosz Golaszewski

The following changes since commit 9abf2313adc1ca1b6180c508c25f22f9395cc780:

  Linux 6.1-rc1 (2022-10-16 15:36:24 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-updates-for-v6.2

for you to fetch changes up to 11e47bbd700f31bd1ee9f8863381bc9e741c0e97:

  gpio: sim: set a limit on the number of GPIOs (2022-12-14 09:53:20 +0100)

----------------------------------------------------------------
gpio: updates for v6.2

GPIO core:
- teach gpiolib to work with software nodes for HW description
- remove ARCH_NR_GPIOS treewide as we no longer impose any limit on the number
  of GPIOS since the allocation became entirely dynamic
- add support for HW quirks for Cirrus CS42L56 codec, Marvell NFC controller,
  Freescale PCIe and Ethernet controller, Himax LCDs and Mediatek mt2701
- refactor OF quirk code
- some general refactoring of the OF and ACPI code, adding new helpers, minor
  tweaks and fixes, making fwnode usage consistent etc.

GPIO uAPI:
- fix an issue where the user-space can trigger a NULL-pointer dereference in
  the kernel by opening a device file, forcing a driver unbind and then calling
  one of the syscalls on the associated file descriptor

New drivers:
- add gpio-latch: a new GPIO multiplexer based on latches connected to other
  GPIOs

Driver updates:
- convert i2c GPIO expanders to using .probe_new()
- drop the gpio-sta2x11 driver
- factor out common code for the ACCES IDIO-16 family of controllers and use
  this new library wherever applicable in drivers
- add DT support to gpio-hisi
- allow building gpio-davinci as a module and increase its maxItems property
- add support for a new model to gpio-pca9570
- other minor changes to various drivers

----------------------------------------------------------------
Aidan MacDonald (1):
      gpio: sl28cpld: Replace irqchip mask_invert with unmask_base

Andy Shevchenko (11):
      gpio: merrifield: Use str_enable_disable() helper
      gpiolib: cdev: Fix typo in kernel doc for struct line
      gpio: exar: Allow IO port access
      gpiolib: of: Make use of device_match_of_node()
      gpio: Add Generic regmap GPIO conversion to the TODO list
      gpiolib: of: Prepare of_gpiochip_add() / of_gpiochip_remove() for fwnode
      gpiolib: of: Integrate of_gpiochip_init_valid_mask() into gpiochip_init_valid_mask()
      gpiolib: of: Prepare of_mm_gpiochip_add_data() for fwnode
      gpiolib: of: Drop redundant check in of_mm_gpiochip_remove()
      gpiolib: Unify access to the device properties
      gpiolib: Provide to_gpio_device() helper

Angel Iglesias (1):
      i2c: core: Introduce i2c_client_get_device_id helper function

Bartosz Golaszewski (5):
      Merge tag 'intel-gpio-v6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel into gpio/for-next
      Merge branch 'i2c/client_device_id_helper-immutable' of https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux into gpio/for-next
      gpiolib: cdev: fix NULL-pointer dereferences
      gpiolib: protect the GPIO device against being dropped while in use by user-space
      gpio: sim: set a limit on the number of GPIOs

Brian Masney (1):
      gpiolib: ensure that fwnode is properly set

Christophe JAILLET (1):
      gpio: Do not include <linux/kernel.h> when not really needed.

Christophe Leroy (8):
      gpio: aggregator: Stop using ARCH_NR_GPIOS
      gpio: davinci: Stop using ARCH_NR_GPIOS
      gpiolib: Warn on drivers still using static gpiobase allocation
      gpiolib: Get rid of ARCH_NR_GPIOS
      Documentation: gpio: Remove text about ARCH_NR_GPIOS
      x86: Remove CONFIG_ARCH_NR_GPIO
      arm: Remove CONFIG_ARCH_NR_GPIO
      arm64: Remove CONFIG_ARCH_NR_GPIO

Davide Ciminaghi (1):
      gpio: Remove sta2x11 GPIO driver

Dmitry Torokhov (21):
      gpiolib: of: add a quirk for legacy names in Mediatek mt2701-cs42448
      gpiolib: of: consolidate simple renames into a single quirk
      gpiolib: of: tighten selection of gpio renaming quirks
      gpiolib: of: add quirk for locating reset lines with legacy bindings
      gpiolib: of: add a quirk for reset line for Marvell NFC controller
      gpiolib: of: add a quirk for reset line for Cirrus CS42L56 codec
      gpiolib: of: add a quirk for legacy names in MOXA ART RTC
      gpiolib: of: factor out code overriding gpio line polarity
      gpiolib: of: add quirk for phy reset polarity for Freescale Ethernet
      gpiolib: of: add a quirk for reset line polarity for Himax LCDs
      gpiolib: of: factor out quirk setting polarity via separate property
      gpiolib: of: add polarity quirk for Freescale PCIe controller
      leds: gpio: switch to using devm_fwnode_gpiod_get()
      leds: lgm-sso: switch to using devm_fwnode_gpiod_get()
      gpiolib: remove devm_fwnode_get_[index_]gpiod_from_child()
      gpiolib: of: change of_find_gpio() to accept device node
      gpiolib: acpi: change acpi_find_gpio() to accept firmware node
      gpiolib: acpi: teach acpi_find_gpio() to handle data-only nodes
      gpiolib: acpi: avoid leaking ACPI details into upper gpiolib layers
      gpiolib: consolidate GPIO lookups
      gpiolib: add support for software nodes

Guillaume La Roque (1):
      gpio: davinci: add support of module build

Jeremy Kerr (1):
      gpio: ftgpio010: use device name for gpiochip name & label

Nishanth Menon (1):
      dt-bindings: gpio: gpio-davinci: Increase maxItems in gpio-line-names

Sascha Hauer (2):
      dt-bindings: gpio: Add gpio-latch binding document
      gpio: Add gpio latch driver

Shubhrajyoti Datta (3):
      dt-bindings: gpio: pca9570: Add compatible for slg7xl45106
      gpio: pca9570: add a platform data structure
      gpio: pca9570: add slg7xl45106 support

Stephen Kitt (1):
      drivers/gpio: use simple i2c probe

Thierry Reding (1):
      gpiolib: of: Use correct fwnode for DT-probed chips

Uwe Kleine-König (3):
      gpio: max732x: Convert to i2c's .probe_new()
      gpio: pca953x: Convert to i2c's .probe_new()
      gpio: pcf857x: Convert to i2c's .probe_new()

Weilong Chen (2):
      dt-bindings: gpio: add entry for hisilicon,ascend910-gpio
      gpio: hisi: Add initial device tree support

William Breathitt Gray (3):
      gpio: idio-16: Introduce the ACCES IDIO-16 GPIO library module
      gpio: 104-idio-16: Utilize the idio-16 GPIO library
      gpio: pci-idio-16: Utilize the idio-16 GPIO library

Xiang Yang (1):
      gpiolib: acpi: Use METHOD_NAME__AEI macro for acpi_walk_resources

 .../devicetree/bindings/gpio/gpio-davinci.yaml     |   2 +-
 .../devicetree/bindings/gpio/gpio-latch.yaml       |  94 +++++
 .../devicetree/bindings/gpio/gpio-pca9570.yaml     |   1 +
 .../bindings/gpio/hisilicon,ascend910-gpio.yaml    |  56 +++
 Documentation/driver-api/gpio/legacy.rst           |   5 -
 MAINTAINERS                                        |   8 +
 arch/arm/Kconfig                                   |  21 -
 arch/arm/include/asm/gpio.h                        |   1 -
 arch/arm64/Kconfig                                 |  12 -
 arch/x86/Kconfig                                   |   5 -
 drivers/gpio/Kconfig                               |  29 +-
 drivers/gpio/Makefile                              |   4 +-
 drivers/gpio/TODO                                  |   7 +
 drivers/gpio/gpio-104-idio-16.c                    |  88 +---
 drivers/gpio/gpio-aggregator.c                     |   7 +-
 drivers/gpio/gpio-davinci.c                        |  14 +-
 drivers/gpio/gpio-exar.c                           |   1 +
 drivers/gpio/gpio-ftgpio010.c                      |   2 +-
 drivers/gpio/gpio-gw-pld.c                         |   5 +-
 drivers/gpio/gpio-hisi.c                           |   7 +
 drivers/gpio/gpio-idio-16.c                        | 146 +++++++
 drivers/gpio/gpio-idio-16.h                        |  71 ++++
 drivers/gpio/gpio-latch.c                          | 219 ++++++++++
 drivers/gpio/gpio-max7300.c                        |   5 +-
 drivers/gpio/gpio-max732x.c                        |   6 +-
 drivers/gpio/gpio-merrifield.c                     |   3 +-
 drivers/gpio/gpio-pca953x.c                        |   6 +-
 drivers/gpio/gpio-pca9570.c                        |  49 ++-
 drivers/gpio/gpio-pcf857x.c                        |   6 +-
 drivers/gpio/gpio-pci-idio-16.c                    | 119 +-----
 drivers/gpio/gpio-sim.c                            |   4 +
 drivers/gpio/gpio-sl28cpld.c                       |   3 +-
 drivers/gpio/gpio-sta2x11.c                        | 411 -------------------
 drivers/gpio/gpio-tpic2810.c                       |   5 +-
 drivers/gpio/gpio-ts4900.c                         |   5 +-
 drivers/gpio/gpiolib-acpi.c                        | 134 +++---
 drivers/gpio/gpiolib-acpi.h                        |  54 +--
 drivers/gpio/gpiolib-cdev.c                        | 206 ++++++++--
 drivers/gpio/gpiolib-of.c                          | 452 ++++++++++++---------
 drivers/gpio/gpiolib-of.h                          |   9 +-
 drivers/gpio/gpiolib-swnode.c                      | 123 ++++++
 drivers/gpio/gpiolib-swnode.h                      |  14 +
 drivers/gpio/gpiolib.c                             | 295 +++++++-------
 drivers/gpio/gpiolib.h                             |  14 +-
 drivers/i2c/i2c-core-base.c                        |  14 +
 drivers/leds/blink/leds-lgm-sso.c                  |   5 +-
 drivers/leds/leds-gpio.c                           |   5 +-
 include/asm-generic/gpio.h                         |  55 +--
 include/linux/gpio/consumer.h                      |  21 -
 include/linux/gpio/property.h                      |  11 +
 include/linux/i2c.h                                |   1 +
 include/linux/of_gpio.h                            |   2 +-
 52 files changed, 1629 insertions(+), 1213 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/gpio/gpio-latch.yaml
 create mode 100644 Documentation/devicetree/bindings/gpio/hisilicon,ascend910-gpio.yaml
 create mode 100644 drivers/gpio/gpio-idio-16.c
 create mode 100644 drivers/gpio/gpio-idio-16.h
 create mode 100644 drivers/gpio/gpio-latch.c
 delete mode 100644 drivers/gpio/gpio-sta2x11.c
 create mode 100644 drivers/gpio/gpiolib-swnode.c
 create mode 100644 drivers/gpio/gpiolib-swnode.h
 create mode 100644 include/linux/gpio/property.h

Comments

pr-tracker-bot@kernel.org Dec. 15, 2022, 6:28 p.m. UTC | #1
The pull request you sent on Thu, 15 Dec 2022 12:30:50 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-updates-for-v6.2

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/c0f234ff90a211272138be1611ba53f3155ebd78

Thank you!