tree 42b5b22becc9e9542923be3bc78525e0d9f5c67c
parent d16605c9128a498f9b8575b5c43be95c45dbcfab
parent 02b6bddb0b0a4e27fad6623d82579f2a1e35d3d3
author Linus Torvalds <torvalds@linux-foundation.org> 1504637388 -0700
committer Linus Torvalds <torvalds@linux-foundation.org> 1504637388 -0700
mergetag object 02b6bddb0b0a4e27fad6623d82579f2a1e35d3d3
 type commit
 tag gpio-v4.14-1
 tagger Linus Walleij <linus.walleij@linaro.org> 1504599554 +0200
 
 This is the bulk of the GPIO changes for the v4.14 cycle:
 
 Core changes
 - Allow the GPIO irqchip to allocate IRQs dynamically. This is
   an important change on systems where only a restricted number
   of IRQs, lesser than the number of GPIO lines, can be utilized.
   Now we can allocate these on a first-come-first-served basis
   instead of hogging up valuable IRQ lines.
 - Serious fix-up of the kerneldoc documentation and inclusion
   into the kerneldoc builds.
 - Pulled in the IRQ simulator from the IRQ core tree and use
   this in the GPIO mockup driver for exhaustive testing of
   interrupt abilities.
 
 New drivers
 - New driver for ThunderX and OCTEON-TX. This is especially
   interesting as it picks up improvements from the IRQ core that
   allow us to handle fasteoi ACKs upwards in a hierarchy when
   there are IRQ flag latches on several levels in a hierarchy.
   Very interesting work here.
 - New subdriver for Renesas R-Car r8a7745 (RZ/G1E).
 
 Misc
 - Several fixes and improvements for Xilinx Zynq GPIO.
 - Support an enablement GPIO for the 74x164 GPIO.
 - Switch a bunch of chips to use devres to allocate irq
   descriptors.
 - A bunch of constification fixes.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJZrmRvAAoJEEEQszewGV1zFd8P/0wwsPFfCY5tjqMwYcu2VIzA
 ZEPlN/Z14Xr/JC7X5N18qWaZSdqAP94do8fn1Utqr6mEOY71BAAmt1dRH3M651nz
 dyAnb5s8IlnFNrv2C3ksG4ArQP72y3uag7b/9fcDPSFBjQKHXP9zI5qhvxJI8XFY
 iesWkwkQayDzbKvm/bFWugclYjSNZCwtzGn2OD0zhh8vKchQBEdLYuiV06iEuvh4
 dkfpH5UhingJ0gMgMj3VLXvnaSPOQy321mnnF8cmHIwelZR8ij3JPQzirKB/cvTe
 fj/INc9/gXFOepFcEaQcWwspeXOXCjOajqfCyeLKLigj44E7pbv4HeTLJmQtCWv/
 fBlHnzjEJG7zZi8JOuKeMwMSc/6GPHBhlmZ4GjpMtIeNXQ8V2oosLbvSd5/whtPg
 u9QuDDeTJwjm1HY3kBNa50BKYrAAKIATHxnYAlGrDTf/9ea5Ld7AT/IfeGHS2AQR
 nV6I0byRYCxEVZUTPeYOMoHDNGgVgA9VPAhUUjLj6r6Kx2bS4Pn7KNvSNx24SQTU
 wP+rWDXRNJzIMr9+sWj3yAksYZPQSpV2+y/VizeHZA7ssv3ZzqKzfWPARhQy/ypF
 GN72LObdxaW01GjN9bJ8x4KxBj+tIo2lLXYIK5TdKZy+LRxnsbCK6JGa5gFxopQh
 325SOqkLlhaS2P6A2nHC
 =TYNw
 -----END PGP SIGNATURE-----

Merge tag 'gpio-v4.14-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 the GPIO changes for the v4.14 cycle.

  Not so much changes this time, phew. David Daney and Bartosz
  Golaszewski did all the really interesting work in infrastructure
  improvement across GPIO and IRQ core, hats off for them and to tglx
  and Marc Z for general help with these patch sets.

  Core changes:

   - Allow the GPIO irqchip to allocate IRQs dynamically. This is an
     important change on systems where only a restricted number of IRQs,
     lesser than the number of GPIO lines, can be utilized. Now we can
     allocate these on a first-come-first-served basis instead of
     hogging up valuable IRQ lines.

   - Serious fix-up of the kerneldoc documentation and inclusion into
     the kerneldoc builds.

   - Pulled in the IRQ simulator from the IRQ core tree and use this in
     the GPIO mockup driver for exhaustive testing of interrupt
     abilities.

  New drivers:

   - New driver for ThunderX and OCTEON-TX. This is especially
     interesting as it picks up improvements from the IRQ core that
     allow us to handle fasteoi ACKs upwards in a hierarchy when there
     are IRQ flag latches on several levels in a hierarchy. Very
     interesting work here.

   - New subdriver for Renesas R-Car r8a7745 (RZ/G1E).

  Misc:

   - Several fixes and improvements for Xilinx Zynq GPIO.

   - Support an enablement GPIO for the 74x164 GPIO.

   - Switch a bunch of chips to use devres to allocate irq descriptors.

   - A bunch of constification fixes"

* tag 'gpio-v4.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (63 commits)
  gpio: mockup: remove unused variable gc
  gpio: pl061: constify amba_id
  Revert "gpiolib: request the gpio before querying its direction"
  gpio: twl6040: remove unneeded forward declaration
  gpio: zevio: make gpio_chip const
  gpio: add gpio_add_lookup_tables() to add several tables at once
  gpio: rcar: Add r8a7745 (RZ/G1E) support
  gpio: brcmstb: check return value of gpiochip_irqchip_add()
  MAINTAINERS: Add entry for THUNDERX GPIO Driver.
  gpio: Add gpio driver support for ThunderX and OCTEON-TX
  gpio: mockup: use irq_sim
  gpio: mxs: use devres for irq generic chip
  gpio: mxc: use devres for irq generic chip
  gpio: pch: use devres for irq generic chip
  gpio: ml-ioh: use devres for irq generic chip
  gpio: sta2x11: use devres for irq generic chip
  gpio: sta2x11: disallow unbinding the driver
  gpio: mxs: disallow unbinding the driver
  gpio: mxc: disallow unbinding the driver
  gpio: aspeed: Remove reference to clock name in debounce warning message
  ...
