linux/drivers/staging
Linus Torvalds 114b5f8f7e This is the bulk of GPIO changes for the v4.20 series:
Core changes:
 
 - A patch series from Hans Verkuil to make it possible to
   enable/disable IRQs on a GPIO line at runtime and drive GPIO
   lines as output without having to put/get them from scratch.
   The irqchip callbacks have been improved so that they can
   use only the fastpatch callbacks to enable/disable irqs
   like any normal irqchip, especially the gpiod_lock_as_irq()
   has been improved to be callable in fastpath context.
   A bunch of rework had to be done to achieve this but it is
   a big win since I never liked to restrict this to slowpath.
   The only call requireing slowpath was try_module_get() and
   this is kept at the .request_resources() slowpath callback.
   In the GPIO CEC driver this is a big win sine a single
   line is used for both outgoing and incoming traffic, and
   this needs to use IRQs for incoming traffic while actively
   driving the line for outgoing traffic.
 
 - Janusz Krzysztofik improved the GPIO array API to pass a
   "cookie" (struct gpio_array) and a bitmap for setting or
   getting multiple GPIO lines at once. This improvement
   orginated in a specific need to speed up an OMAP1 driver and
   has led to a much better API and real performance gains
   when the state of the array can be used to bypass a lot
   of checks and code when we want things to go really fast.
   The previous code would minimize the number of calls
   down to the driver callbacks assuming the CPU speed was
   orders of magnitude faster than the I/O latency, but this
   assumption was wrong on several platforms: what we needed
   to do was to profile and improve the speed on the hot
   path of the array functions and this change is now
   completed.
 
 - Clean out the painful and hard to grasp BNF experiments
   from the device tree bindings. Future approaches are looking
   into using JSON schema for this purpose. (Rob Herring
   is floating a patch series.)
 
 New drivers:
 
 - The RCAR driver now supports r8a774a1 (RZ/G2M).
 
 - Synopsys GPIO via CREGs driver.
 
 Major improvements:
 
 - Modernization of the EP93xx driver to use irqdomain and
   other contemporary concepts.
 
 - The ingenic driver has been merged into the Ingenic pin
   control driver and removed from the GPIO subsystem.
 
 - Debounce support in the ftgpio010 driver.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJbzdyOAAoJEEEQszewGV1zfYcP/0HBEAOPhHD/i5OQxfKs1msh
 mFT/t/IbTmRpCgbEv4CDx4Kc/InE0sUnQr1TL/1WvU6uObM6Ncxq5Z90MvyrgzYu
 BqQHq2k2tORvkVSNRxcfD/BAAoo1EerXts1kDhutvdKfepfS6DxpENwzvsFgkVlq
 2jj1cdZztjv8A+9cspHDpQP+jDvl1VSc10nR5fRu1TttSpUwzRJaB30NBNXJmMJc
 5KUr67lEbsQRPsBvFErU11bydPqhfT+pXmODcfIwS0EtATQ8WC5mkSb/Ooei0fvT
 oZ7uR3Os8tMf7isOKssEyFabKwhnfOEt6TBt9em0TfUtInOo0Dc7r8TfBcn57fyZ
 xg2R9DQEVRfac8bjhF/BI5KHuN9IMGDDvj6XApumQVliZbISRjMnh3jte6RpcV0A
 Ejqz8FeDY13qvEdOnW1EPpwmXdDVWiEAq0ebGLStKNls+/4gB2HmyxGUOzJf+og5
 hujsxcJzGQqjCe0moeY/1d7vsy0ZjbHoS+p5fy79U212y2O7onEzFU92AX89bxKC
 rx2eCNmiZxCUy1nqu8edO62VnH6QdnqG3o+a4DJfCSHPvFM/E/NX9zHemZubQQ4I
 rYXNy4bL4tEG9cqWMfBxWrpiDZw7H6l8kXwdZG8IMyRU9BcKu96amgZ+jBXwzoaB
 JZelAAUWB9APghJYFr7o
 =YosT
 -----END PGP SIGNATURE-----

Merge tag 'gpio-v4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio

Pull GPIO updates from Linus Walleij:
 "This is the bulk of GPIO changes for the v4.20 series:

  Core changes:

   - A patch series from Hans Verkuil to make it possible to
     enable/disable IRQs on a GPIO line at runtime and drive GPIO lines
     as output without having to put/get them from scratch.

     The irqchip callbacks have been improved so that they can use only
     the fastpatch callbacks to enable/disable irqs like any normal
     irqchip, especially the gpiod_lock_as_irq() has been improved to be
     callable in fastpath context.

     A bunch of rework had to be done to achieve this but it is a big
     win since I never liked to restrict this to slowpath. The only call
     requireing slowpath was try_module_get() and this is kept at the
     .request_resources() slowpath callback. In the GPIO CEC driver this
     is a big win sine a single line is used for both outgoing and
     incoming traffic, and this needs to use IRQs for incoming traffic
     while actively driving the line for outgoing traffic.

   - Janusz Krzysztofik improved the GPIO array API to pass a "cookie"
     (struct gpio_array) and a bitmap for setting or getting multiple
     GPIO lines at once.

     This improvement orginated in a specific need to speed up an OMAP1
     driver and has led to a much better API and real performance gains
     when the state of the array can be used to bypass a lot of checks
     and code when we want things to go really fast.

     The previous code would minimize the number of calls down to the
     driver callbacks assuming the CPU speed was orders of magnitude
     faster than the I/O latency, but this assumption was wrong on
     several platforms: what we needed to do was to profile and improve
     the speed on the hot path of the array functions and this change is
     now completed.

   - Clean out the painful and hard to grasp BNF experiments from the
     device tree bindings. Future approaches are looking into using JSON
     schema for this purpose. (Rob Herring is floating a patch series.)

  New drivers:

   - The RCAR driver now supports r8a774a1 (RZ/G2M).

   - Synopsys GPIO via CREGs driver.

  Major improvements:

   - Modernization of the EP93xx driver to use irqdomain and other
     contemporary concepts.

   - The ingenic driver has been merged into the Ingenic pin control
     driver and removed from the GPIO subsystem.

   - Debounce support in the ftgpio010 driver"

* tag 'gpio-v4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (116 commits)
  gpio: Clarify kerneldoc on gpiochip_set_chained_irqchip()
  gpio: Remove unused 'irqchip' argument to gpiochip_set_cascaded_irqchip()
  gpio: Drop parent irq assignment during cascade setup
  mmc: pwrseq_simple: Fix incorrect handling of GPIO bitmap
  gpio: fix SNPS_CREG kconfig dependency warning
  gpiolib: Initialize gdev field before is used
  gpio: fix kernel-doc after devres.c file rename
  gpio: fix doc string for devm_gpiochip_add_data() to not talk about irq_chip
  gpio: syscon: Fix possible NULL ptr usage
  gpiolib: Show correct direction from the beginning
  pinctrl: msm: Use init_valid_mask exported function
  gpiolib: Add init_valid_mask exported function
  GPIO: add single-register GPIO via CREG driver
  dt-bindings: Document the Synopsys GPIO via CREG bindings
  gpio: mockup: use device properties instead of platform_data
  gpio: Slightly more helpful debugfs
  gpio: omap: Remove set but not used variable 'dev'
  gpio: omap: drop omap_gpio_list
  Accept partial 'gpio-line-names' property.
  gpio: omap: get rid of the conditional PM runtime calls
  ...
2018-10-23 08:45:05 +01:00
..
android Staging/IIO patches for 4.19-rc1 2018-08-18 11:00:00 -07:00
axis-fifo staging: fix platform_no_drv_owner.cocci warnings 2018-07-29 14:40:41 +02:00
board staging: board: Replace license boilerplate with SPDX identifiers 2018-05-06 19:11:23 -07:00
clocking-wizard staging: clocking-wizard: prefer 'help' in Kconfig 2018-06-17 09:05:13 +02:00
comedi staging: comedi: ni_mio_common: fix subdevice flags for PFI subdevice 2018-08-08 14:11:19 +02:00
dgnc staging: dgnc: dgnc_tty.c: Avoid '(' at the end of line 2018-07-24 14:00:54 +02:00
emxx_udc staging: emxx_udc: Add GPIO descriptor work to TODO 2018-04-23 14:36:10 +02:00
erofs staging: erofs: rename superblock flags (MS_xyz -> SB_xyz) 2018-09-10 10:12:21 +02:00
fbtft staging/fbtft: Update TODO and mailing lists 2018-09-10 10:39:19 +02:00
fsl-dpaa2 ARM: SoC driver updates 2018-08-23 13:52:46 -07:00
fwserial tty: replace ->proc_fops with ->proc_show 2018-05-16 07:24:30 +02:00
gasket staging: gasket: TODO: re-implement using UIO 2018-09-10 18:08:06 +02:00
gdm724x staging: gdm724x: redundant variables idProduct and idVendor 2018-07-11 13:12:34 +02:00
goldfish staging: goldfish: add a blank line into struct goldfish_audio 2018-07-12 21:49:24 +02:00
greybus treewide: Use array_size() in vmalloc() 2018-06-12 16:19:22 -07:00
gs_fpgaboot
iio gpiolib: Pass array info to get/set array functions 2018-09-13 11:16:54 +02:00
ks7010 Merge 4.18-rc7 into staging-next 2018-07-30 10:13:15 +02:00
media media: staging/media/mt9t031/Kconfig: remove bogus entry 2018-09-12 06:44:01 -04:00
most Staging/IIO patches for 4.19-rc1 2018-08-18 11:00:00 -07:00
mt29f_spinand mtd: rawnand: Deprecate ->{set,get}_features() hooks 2018-10-03 11:12:25 +02:00
mt7621-dma staging: mt7621-dma: Fixing parenthesis alignment 2018-03-23 16:00:18 +01:00
mt7621-dts staging: mt7621-dts: add pcie controller port registers 2018-08-08 14:08:41 +02:00
mt7621-eth drivers/staging/mt7621-eth: Use dma_zalloc_coherent to replace dma_alloc_coherent+memset 2018-08-01 20:00:53 +02:00
mt7621-mmc staging: mt7621-mmc: Use BIT macro instead of explicit shifting in board.h 2018-07-29 10:08:02 +02:00
mt7621-pci staging: mt7621-pci: remove remaining pci_legacy dependant code 2018-08-08 14:08:41 +02:00
mt7621-pinctrl Revert "staging: mt7621-pinctrl: replace core_initcall_sync with builtin_platform_driver" 2018-07-10 12:36:28 +02:00
mt7621-spi staging: mt7621-spi: Remove unnecessary braces {} from single statement if block. 2018-06-17 09:05:12 +02:00
netlogic net: Add generic ndo_select_queue functions 2018-07-09 13:15:34 -07:00
nvec Revert "staging: nvec: Augment TODO file with GPIO work item" 2018-04-23 18:49:51 +02:00
octeon
octeon-usb Staging: octeon-usb: Adding SPDX license identifier 2018-07-27 17:18:14 +02:00
olpc_dcon staging: olpc_dcon: add missing identifier names 2018-07-16 10:19:14 +02:00
pi433 staging: pi433: fix error return code in pi433_probe() 2018-07-12 21:49:24 +02:00
rtl8188eu Staging/IIO patches for 4.19-rc1 2018-08-18 11:00:00 -07:00
rtl8192e staging: rtl8192e: ieee80211: Convert from ahash to shash 2018-07-29 10:05:23 +02:00
rtl8192u staging:rtl8192u: Remove unused macro definitions - Style 2018-08-08 14:27:03 +02:00
rtl8712 Staging/IIO patches for 4.19-rc1 2018-08-18 11:00:00 -07:00
rtl8723bs Staging/IIO patches for 4.19-rc1 2018-08-18 11:00:00 -07:00
rtlwifi Staging/IIO patches for 4.19-rc1 2018-08-18 11:00:00 -07:00
rts5208 staging: rts5208: xd.c fixed a brace coding style issue 2018-07-21 08:54:11 +02:00
sm750fb staging: sm750fb: remove redundant pointer 'output' 2018-07-11 14:45:54 +02:00
speakup Merge 4.18-rc7 into staging-next 2018-07-30 10:13:15 +02:00
unisys treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
vboxvideo staging: vboxvideo: Change address of scanout buffer on page-flip 2018-09-11 18:39:54 +02:00
vc04_services Staging/IIO patches for 4.19-rc1 2018-08-18 11:00:00 -07:00
vme staging: vme: vme_user: Fix some error handling paths in 'vme_user_probe()' 2018-03-23 15:55:21 +01:00
vt6655 staging: vt6655: remove some redundant variables 2018-07-11 14:47:08 +02:00
vt6656 staging: vt6655: remove some redundant variables 2018-07-11 14:47:08 +02:00
wilc1000 staging: wilc1000: revert "fix TODO to compile spi and sdio components in single module" 2018-08-27 19:12:59 +02:00
wlan-ng staging: wlan-ng: remove unused definitions from p80211types.h 2018-08-05 16:12:42 +02:00
xgifb Staging: xgifb: XGI_main_26.c: Refactored the function 2018-03-22 18:29:50 +01:00
Kconfig ARM: SoC driver updates 2018-08-23 13:52:46 -07:00
Makefile ARM: SoC driver updates 2018-08-23 13:52:46 -07:00