mirror of https://gitee.com/openkylin/linux.git
80fb974798
- We are finalizing and fixing up the gpiochip irqchip helpers bringing a helpful irqchip implementation into the gpiolib core and avoiding duplicate code and, more importantly, duplicate bug fixes: - Support for using the helpers with threaded interrupt handlers as used on sleeping GPIO-irqchips - Do not set up hardware triggers for edges or levels if the default IRQ type is IRQ_TYPE_NONE - some drivers would exploit the fact that you could get default initialization of the IRQ type from the core at probe() but if no default type is set up from the helper, we should not call the driver to configure anything. Wait until a consumer requests the interrupt instead. - Make the irqchip helpers put the GPIO irqs into their own lock class. The GPIO irqchips can often emit (harmless, but annoying) lockdep warnings about recursions when they are in fact just cascaded IRQs. By putting them into their own lock class we help the lockdep core to keep track of things. - Switch the tc3589x GPIO expanders to use the irqchip helpers - Switch the OMAP GPIO driver to use the irqchip helpers - Add some documentation for the irqchip helpers - select IRQ_DOMAIN when using the helpers since some platforms may not be using this by default and it's a strict dependency. - Continued GPIO descriptor refactoring: - Remove the one instance of gpio_to_desc() from the device tree code, making the OF GPIO code use GPIO descriptors only. - Introduce gpiod_get_optional() and gpiod_get_optional_index() akin to the similar regulator functions for cases where the use of GPIO is optional and not strictly required. - Make of_get_named_gpiod_flags() private - we do not want to unnecessarily expose APIs to drivers that make the gpiolib harder than necessary to maintain and refactor. Privatize this function. - Support "-gpio" suffix for the OF GPIO retrieveal path. We used to look for "foo-gpios" or just "gpios" in device tree nodes, but it turns out that some drivers with a single GPIO line will just state "foo-gpio" (singularis). Sigh. Support this with a fallback looking for it, as this simplifies driver code and handles it in core code. - Switch the ACPI GPIO core to fetch GPIOs with the *_cansleep function variants as the GPIO operation region handler can sleep, and shall be able to handle gpiochips that sleep. - Tons of cleanups and janitorial work from Jingoo Han, Axel Lin, Javier Martinez Canillas and Abdoulaye Berthe. Notably Jingoo cut off a ton of pointless OOM messages. - Incremental development and fixes for various drivers, nothing really special here. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJTjDSbAAoJEEEQszewGV1zcwcQAI/fwAw2B8kelDMaB1ggQeAU cyXrr9vVXYMztOoYkYcbZq0stuvZT+CDCVJPqPqntYYssAJf/2m3xWEhz4XFcGui THTNIaFLc9f7JvTFfWS0VzwPzqPp/XkUiAyDzYMK0Wso6AP853IB4LlHDMvC9jpM brMo+zdhnASayhumAL8kp0XVal7d/3IAy/v7Q6ebpqoP5AnhC8NT8ysh2raGdVLa 4+W9hMtflq8u+gllxul71Mf1L3CD0x3UybMbsx4k0Z+60uYjiIhhbHdGxRVH3YAU DZ40RW6ARU1mXuUlSjBIbgN1fzxCKNQFR7MsDruiSR0ohHEa8dc3o1AktdRKGoQl +sUMSQI3G4tlLOhVYIOx+kOF4DJWNNFYNdvT/ut0NwKohma2nZt9LDyqp92XZKt9 gVufvJzFe94re/bAMAz41PRm3wnzmuUSAq649r0RIQ4Yp74f5n5EO9WnnI/CIVlw pAFsLJZZhh47I6IxMmIPBjiy8QWVdvRwsBIrV0pDoZGQjjm2S1MHi+5pLghHRROq qtrRG1SIAptoaEDWM0WdVPT4Jcx+3QzU9YjlCiXxd8qQl4lRHAJRCYbxGYsK0a8b eXQ5N4CHy2jOUTKhmT2ISLmC6EWurabSh9eWwmk2R2gBmwG6AKoI60MKFtcx53tz 3fQN3Oy8zaNyIL6/2aoN =M59o -----END PGP SIGNATURE----- Merge tag 'gpio-v3.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio into next Pull GPIO updates from Linus Walleij: "This is the bulk of GPIO changes for the v3.16 series. There is a lot of action in the GPIO subsystem doing refactorings and cleanups, almost as many deletions as insertions and minor feature growth and no new drivers this time. Which is actually pretty nice. Some GPIO-related stuff will come in through the pin control tree as well. Details: - We are finalizing and fixing up the gpiochip irqchip helpers bringing a helpful irqchip implementation into the gpiolib core and avoiding duplicate code and, more importantly, duplicate bug fixes: * Support for using the helpers with threaded interrupt handlers as used on sleeping GPIO-irqchips * Do not set up hardware triggers for edges or levels if the default IRQ type is IRQ_TYPE_NONE - some drivers would exploit the fact that you could get default initialization of the IRQ type from the core at probe() but if no default type is set up from the helper, we should not call the driver to configure anything. Wait until a consumer requests the interrupt instead. * Make the irqchip helpers put the GPIO irqs into their own lock class. The GPIO irqchips can often emit (harmless, but annoying) lockdep warnings about recursions when they are in fact just cascaded IRQs. By putting them into their own lock class we help the lockdep core to keep track of things. * Switch the tc3589x GPIO expanders to use the irqchip helpers * Switch the OMAP GPIO driver to use the irqchip helpers * Add some documentation for the irqchip helpers * select IRQ_DOMAIN when using the helpers since some platforms may not be using this by default and it's a strict dependency. - Continued GPIO descriptor refactoring: * Remove the one instance of gpio_to_desc() from the device tree code, making the OF GPIO code use GPIO descriptors only. * Introduce gpiod_get_optional() and gpiod_get_optional_index() akin to the similar regulator functions for cases where the use of GPIO is optional and not strictly required. * Make of_get_named_gpiod_flags() private - we do not want to unnecessarily expose APIs to drivers that make the gpiolib harder than necessary to maintain and refactor. Privatize this function. - Support "-gpio" suffix for the OF GPIO retrieveal path. We used to look for "foo-gpios" or just "gpios" in device tree nodes, but it turns out that some drivers with a single GPIO line will just state "foo-gpio" (singularis). Sigh. Support this with a fallback looking for it, as this simplifies driver code and handles it in core code. - Switch the ACPI GPIO core to fetch GPIOs with the *_cansleep function variants as the GPIO operation region handler can sleep, and shall be able to handle gpiochips that sleep. - Tons of cleanups and janitorial work from Jingoo Han, Axel Lin, Javier Martinez Canillas and Abdoulaye Berthe. Notably Jingoo cut off a ton of pointless OOM messages. - Incremental development and fixes for various drivers, nothing really special here" * tag 'gpio-v3.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (85 commits) gpio: select IRQ_DOMAIN for gpiolib irqchip helpers gpio: pca953x: use gpiolib irqchip helpers gpio: pcf857x: Add IRQF_SHARED when request irq gpio: pcf857x: Avoid calling irq_domain_cleanup twice gpio: mcp23s08: switch chip count to int gpio: dwapb: use a second irq chip gpio: ep93xx: Use devm_ioremap_resource() gpio: mcp23s08: fixed count variable for devicetree probing gpio: Add run-time dependencies to R-Car driver gpio: pch: add slab include Documentation / ACPI: Fix location of GPIO documentation gpio / ACPI: use *_cansleep version of gpiod_get/set APIs gpio: generic: add request function pointer gpio-pch: Fix Kconfig dependencies gpio: make of_get_named_gpiod_flags() private gpio: gpioep93xx: use devm functions gpio: janzttl: use devm function gpio: timberdale: use devm functions gpio: bt8xx: use devm function for memory allocation gpio: include linux/bug.h in interface header ... |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
devres.c | ||
gpio-74x164.c | ||
gpio-adnp.c | ||
gpio-adp5520.c | ||
gpio-adp5588.c | ||
gpio-amd8111.c | ||
gpio-arizona.c | ||
gpio-bcm-kona.c | ||
gpio-bt8xx.c | ||
gpio-clps711x.c | ||
gpio-cs5535.c | ||
gpio-da9052.c | ||
gpio-da9055.c | ||
gpio-davinci.c | ||
gpio-dwapb.c | ||
gpio-em.c | ||
gpio-ep93xx.c | ||
gpio-f7188x.c | ||
gpio-ge.c | ||
gpio-generic.c | ||
gpio-grgpio.c | ||
gpio-ich.c | ||
gpio-intel-mid.c | ||
gpio-iop.c | ||
gpio-it8761e.c | ||
gpio-janz-ttl.c | ||
gpio-kempld.c | ||
gpio-ks8695.c | ||
gpio-lp3943.c | ||
gpio-lpc32xx.c | ||
gpio-lynxpoint.c | ||
gpio-max730x.c | ||
gpio-max732x.c | ||
gpio-max7300.c | ||
gpio-max7301.c | ||
gpio-mc9s08dz60.c | ||
gpio-mc33880.c | ||
gpio-mcp23s08.c | ||
gpio-ml-ioh.c | ||
gpio-mm-lantiq.c | ||
gpio-moxart.c | ||
gpio-mpc8xxx.c | ||
gpio-mpc5200.c | ||
gpio-msic.c | ||
gpio-msm-v1.c | ||
gpio-msm-v2.c | ||
gpio-mvebu.c | ||
gpio-mxc.c | ||
gpio-mxs.c | ||
gpio-octeon.c | ||
gpio-omap.c | ||
gpio-palmas.c | ||
gpio-pca953x.c | ||
gpio-pcf857x.c | ||
gpio-pch.c | ||
gpio-pl061.c | ||
gpio-pxa.c | ||
gpio-rc5t583.c | ||
gpio-rcar.c | ||
gpio-rdc321x.c | ||
gpio-sa1100.c | ||
gpio-samsung.c | ||
gpio-sch.c | ||
gpio-sch311x.c | ||
gpio-sodaville.c | ||
gpio-spear-spics.c | ||
gpio-sta2x11.c | ||
gpio-stmpe.c | ||
gpio-stp-xway.c | ||
gpio-sx150x.c | ||
gpio-syscon.c | ||
gpio-tb10x.c | ||
gpio-tc3589x.c | ||
gpio-tegra.c | ||
gpio-timberdale.c | ||
gpio-tps6586x.c | ||
gpio-tps65910.c | ||
gpio-tps65912.c | ||
gpio-ts5500.c | ||
gpio-twl4030.c | ||
gpio-twl6040.c | ||
gpio-tz1090-pdc.c | ||
gpio-tz1090.c | ||
gpio-ucb1400.c | ||
gpio-viperboard.c | ||
gpio-vr41xx.c | ||
gpio-vx855.c | ||
gpio-wm831x.c | ||
gpio-wm8350.c | ||
gpio-wm8994.c | ||
gpio-xilinx.c | ||
gpio-xtensa.c | ||
gpio-zevio.c | ||
gpiolib-acpi.c | ||
gpiolib-of.c | ||
gpiolib.c | ||
gpiolib.h |