From patchwork Tue Nov 7 18:15:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 835395 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="b13W6PWF"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yWd0R3mDZz9sNw for ; Wed, 8 Nov 2017 05:16:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755500AbdKGSQE (ORCPT ); Tue, 7 Nov 2017 13:16:04 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:47535 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755258AbdKGSQC (ORCPT ); Tue, 7 Nov 2017 13:16:02 -0500 Received: by mail-wm0-f65.google.com with SMTP id r196so5663982wmf.2; Tue, 07 Nov 2017 10:16:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=shOsevfkAjzcbnuJpcEobyFtGprKMaQ1DOXjtsOlVlI=; b=b13W6PWFtKxLgGBYhyR+dzTvZaJrK68FPWKPsC//IYIowBAda+VNcVRr3k2g0gsC6G keYa/hJAxyrEjOzdmHjVoSKbGYVONzuzF+TP+SDoeaKGd11PwZXIVlSvCi6LfiBn3bpG 03qkSGRFQtVxnPrbvLRRzY0sxvOI9bqJlgotPvefjPEU706oNBwg4mWWd+oAfXB8sqpi ejtPRI/Zja6C6u8sJp1wsjzVK4AKsOBH+o4QjWOsD35EmpYOoGYkxIyhwkPK8FNGOKYW fXd+y3ai/10PiXqE7ezPylVTopBBCuAYSa3anSrymWe8SXGINpFrl/Ou/7TT5LyYycYt LLTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=shOsevfkAjzcbnuJpcEobyFtGprKMaQ1DOXjtsOlVlI=; b=PXWxQqGn4fEplsQfSlZs0RlqhQ1GYDFoWU7aZNlfeV9ps7DKfV4dy0HpryrMXTOTVp Bm0IYRHt2U5NJ801wQryvC1VrzISp+0UPDn/eMTgGPX1AXFPNnp0FUHDVDbCB445g8I1 fJwiz9wb9XxbW47uGtd801pGnXWrExVZMNN7JY69KobJK9lLLU3e3vzTEdLln2lRR6uV eEGtFAcjhg8shW4/gMOD64sHTbhNWkYT0sb6HcJGYr/NTH+Wa8jeyCP/jHRT1xbO9kVO 5tTlm7TPVgAH7pVGCrRwnmvfu4LM5iWs3nhxAjTsVwGH9q7zuedT0kU783ReioJky3XT KnAg== X-Gm-Message-State: AJaThX5Y9QEKX93cEpcmvD7pBbquvIW6OpxTcaWe8dgQ/dMwdOYTxYUf WJKZEWgG6P/TcnSZkgTRRYY= X-Google-Smtp-Source: AGs4zMZOfGBAV8IDx0Om11O4a0yBfRNmcDJoru00hbFgtaWw5wAdE2eC+iWIgTDDdPFuiKCdEBVLHg== X-Received: by 10.28.190.20 with SMTP id o20mr52692wmf.150.1510078561115; Tue, 07 Nov 2017 10:16:01 -0800 (PST) Received: from localhost (p200300E41BC8E9001FF851737372D2C2.dip0.t-ipconnect.de. [2003:e4:1bc8:e900:1ff8:5173:7372:d2c2]) by smtp.gmail.com with ESMTPSA id o8sm5505889wrc.10.2017.11.07.10.16.00 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 07 Nov 2017 10:16:00 -0800 (PST) From: Thierry Reding To: Linus Walleij , Grygorii Strashko Cc: Jonathan Hunter , linux-gpio@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 00/15] gpio: Tight IRQ chip integration Date: Tue, 7 Nov 2017 19:15:44 +0100 Message-Id: <20171107181559.6318-1-thierry.reding@gmail.com> X-Mailer: git-send-email 2.14.1 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Thierry Reding Hi Linus, here's the latest series of patches that implement the tighter IRQ chip integration. I've dropped the banked infrastructure for now as per the discussion with Grygorii. The first couple of patches are mostly preparatory work in order to consolidate all IRQ chip related fields in a new structure and create the base functionality for adding IRQ chips. After that, I've added the Tegra186 GPIO support patch that makes use of the new tight integration. Changes in v7: - squashes in a few fixes pointed out by Grygorii - adds a couple of patches on top to support driver conversion Changes in v6: - rebased on latest linux-gpio devel branch - one patch dropped due to rebase Changes in v5: - dropped the banked infrastructure patches for now (Grygorii) - allocate interrupts on demand, rather than upfront (Grygorii) - split up the first patch further as requested by Grygorii Not sure what happened in between here. Notes in commit logs indicate that this is actually version 5, but I can't find the cover letter for v3 and v4. Changes in v2: - rename pins to lines for consistent terminology - rename gpio_irq_chip_banked_handler() to gpio_irq_chip_banked_chained_handler() Thierry Thierry Reding (15): gpio: Introduce struct gpio_irq_chip gpio: Move irqchip into struct gpio_irq_chip gpio: Move irqdomain into struct gpio_irq_chip gpio: Move irq_handler to struct gpio_irq_chip gpio: Move irq_default_type to struct gpio_irq_chip gpio: Move irq_chained_parent to struct gpio_irq_chip gpio: Move irq_nested into struct gpio_irq_chip gpio: Move irq_valid_mask into struct gpio_irq_chip gpio: Move lock_key into struct gpio_irq_chip gpio: Implement tighter IRQ chip integration gpio: Export gpiochip_irq_{map,unmap}() gpio: Add Tegra186 support gpio: Disambiguate struct gpio_irq_chip.nested gpio: Introduce struct gpio_irq_chip.first gpio: Automatically add lockdep keys Documentation/gpio/driver.txt | 6 +- drivers/bcma/driver_gpio.c | 2 +- drivers/gpio/Kconfig | 9 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-104-dio-48e.c | 2 +- drivers/gpio/gpio-104-idi-48.c | 2 +- drivers/gpio/gpio-104-idio-16.c | 2 +- drivers/gpio/gpio-adnp.c | 2 +- drivers/gpio/gpio-altera.c | 4 +- drivers/gpio/gpio-aspeed.c | 6 +- drivers/gpio/gpio-ath79.c | 2 +- drivers/gpio/gpio-crystalcove.c | 2 +- drivers/gpio/gpio-dln2.c | 2 +- drivers/gpio/gpio-ftgpio010.c | 2 +- drivers/gpio/gpio-ingenic.c | 2 +- drivers/gpio/gpio-intel-mid.c | 2 +- drivers/gpio/gpio-lynxpoint.c | 2 +- drivers/gpio/gpio-max732x.c | 2 +- drivers/gpio/gpio-merrifield.c | 2 +- drivers/gpio/gpio-omap.c | 2 +- drivers/gpio/gpio-pca953x.c | 2 +- drivers/gpio/gpio-pcf857x.c | 2 +- drivers/gpio/gpio-pci-idio-16.c | 2 +- drivers/gpio/gpio-pl061.c | 2 +- drivers/gpio/gpio-rcar.c | 2 +- drivers/gpio/gpio-reg.c | 4 +- drivers/gpio/gpio-stmpe.c | 6 +- drivers/gpio/gpio-tc3589x.c | 2 +- drivers/gpio/gpio-tegra186.c | 623 ++++++++++++++++++++++++++++ drivers/gpio/gpio-vf610.c | 2 +- drivers/gpio/gpio-wcove.c | 2 +- drivers/gpio/gpio-ws16c48.c | 2 +- drivers/gpio/gpio-xgene-sb.c | 2 +- drivers/gpio/gpio-xlp.c | 2 +- drivers/gpio/gpio-zx.c | 2 +- drivers/gpio/gpio-zynq.c | 2 +- drivers/gpio/gpiolib.c | 241 +++++++---- drivers/pinctrl/bcm/pinctrl-bcm2835.c | 5 +- drivers/pinctrl/bcm/pinctrl-iproc-gpio.c | 2 +- drivers/pinctrl/intel/pinctrl-baytrail.c | 6 +- drivers/pinctrl/intel/pinctrl-cherryview.c | 6 +- drivers/pinctrl/intel/pinctrl-intel.c | 2 +- drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 2 +- drivers/pinctrl/nomadik/pinctrl-nomadik.c | 4 +- drivers/pinctrl/pinctrl-amd.c | 2 +- drivers/pinctrl/pinctrl-at91.c | 2 +- drivers/pinctrl/pinctrl-coh901.c | 2 +- drivers/pinctrl/pinctrl-mcp23s08.c | 2 +- drivers/pinctrl/pinctrl-oxnas.c | 2 +- drivers/pinctrl/pinctrl-pic32.c | 2 +- drivers/pinctrl/pinctrl-pistachio.c | 2 +- drivers/pinctrl/pinctrl-st.c | 2 +- drivers/pinctrl/pinctrl-sx150x.c | 2 +- drivers/pinctrl/qcom/pinctrl-msm.c | 2 +- drivers/pinctrl/sirf/pinctrl-atlas7.c | 2 +- drivers/pinctrl/sirf/pinctrl-sirf.c | 2 +- drivers/pinctrl/spear/pinctrl-plgpio.c | 2 +- drivers/platform/x86/intel_int0002_vgpio.c | 6 +- include/linux/gpio/driver.h | 200 +++++++-- 59 files changed, 1046 insertions(+), 169 deletions(-) create mode 100644 drivers/gpio/gpio-tegra186.c Acked-by: Grygorii Strashko