The ThunderX/OCTEON-TX GPIO hardware looks like a PCIe device, with the interrupt signal from each GPIO line being routed to a dedicated MSI-X. This interrupt routing requires that we add some custom processing to the beginning of the MSI-X irqdomain hierarchy. Changes from v7: - Refactoring of irqdomain.c changes as suggested by Marc Zyngier. - Renaming of new handler functions in chip.c and making building of these conditional on a Kconfig variable, suggested by Thomas Gleixner. Changes from v6: - Trivial rebase to v4.13.0-rc4: Omit device tree bindings patch, which was already merged, and fix MAINTAINERS patch collision. Changes from v5: - Added .irq_{request,release}_resources() functions to irq_chip. - Quit calling irq_set_irq_type() in the irq_map() function. - Added more error condition checking to irq_domain_{push,pop}_irq() Changes from v4: - Rebased to post-v4.10 to support .set_config() function. - Added .get_direction() support. - Added PIN_CONFIG_INPUT_DEBOUNCE support. - Removed some improper use of ENOSYS. Changes from v3: - Add some "depends on" to the driver Kconfig to avoid build errors in some architectures when doing COMPILE_TEST builds. Changes from v2: - in 4/6: Added Rob Harring's Acked-by - Added three patches to genirq/irqdomain to support interrupt code in the driver. - Rewrite irq code in driver to use irqdomain hierarchy. - Other naming and style changes as recommended by Linus Walleij. Changes from v1: - in 1/3: Addressed Rob Harring's comments. - in 2/3: Trivial cleanups found in internal review + add some comments. David Daney (7): genirq: Export more irq_chip_*_parent() functions. genirq: Add handle_fasteoi_{level,edge}_irq flow handlers. irqdomain: Factor out code to add and remove items to and from the revmap irqdomain: Check for NULL function pointer in irq_domain_free_irqs_hierarchy() irqdomain: Add irq_domain_{push,pop}_irq() functions. gpio: Add gpio driver support for ThunderX and OCTEON-TX MAINTAINERS: Add entry for THUNDERX GPIO Driver. MAINTAINERS | 5 + drivers/gpio/Kconfig | 9 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-thunderx.c | 639 +++++++++++++++++++++++++++++++++++++++++++ include/linux/irq.h | 2 + include/linux/irqdomain.h | 3 + kernel/irq/Kconfig | 4 + kernel/irq/chip.c | 109 ++++++++ kernel/irq/irqdomain.c | 230 ++++++++++++++-- 9 files changed, 972 insertions(+), 30 deletions(-) create mode 100644 drivers/gpio/gpio-thunderx.c -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html