{"id":819507,"url":"http://patchwork.ozlabs.org/api/patches/819507/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20170928095628.21966-8-thierry.reding@gmail.com/","project":{"id":42,"url":"http://patchwork.ozlabs.org/api/projects/42/?format=json","name":"Linux GPIO development","link_name":"linux-gpio","list_id":"linux-gpio.vger.kernel.org","list_email":"linux-gpio@vger.kernel.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170928095628.21966-8-thierry.reding@gmail.com>","list_archive_url":null,"date":"2017-09-28T09:56:19","name":"[v2,07/16] gpio: Move irq_chained_parent to struct gpio_irq_chip","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"b03fe3e135c361f967328c0e41de4fab112e68cc","submitter":{"id":26234,"url":"http://patchwork.ozlabs.org/api/people/26234/?format=json","name":"Thierry Reding","email":"thierry.reding@gmail.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-gpio/patch/20170928095628.21966-8-thierry.reding@gmail.com/mbox/","series":[{"id":5529,"url":"http://patchwork.ozlabs.org/api/series/5529/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-gpio/list/?series=5529","date":"2017-09-28T09:56:12","name":"gpio: Tight IRQ chip integration and banked infrastructure","version":2,"mbox":"http://patchwork.ozlabs.org/series/5529/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/819507/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/819507/checks/","tags":{},"related":[],"headers":{"Return-Path":"<linux-gpio-owner@vger.kernel.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=linux-gpio-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"SykCLcOe\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y2qsJ5QLZz9t3h\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 28 Sep 2017 19:59:00 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752726AbdI1J4y (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tThu, 28 Sep 2017 05:56:54 -0400","from mail-qt0-f196.google.com ([209.85.216.196]:50452 \"EHLO\n\tmail-qt0-f196.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1752577AbdI1J4w (ORCPT\n\t<rfc822; linux-gpio@vger.kernel.org>); Thu, 28 Sep 2017 05:56:52 -0400","by mail-qt0-f196.google.com with SMTP id f15so855907qtf.7;\n\tThu, 28 Sep 2017 02:56:51 -0700 (PDT)","from localhost\n\t(p200300E41BCC8100EA54DC343767CF80.dip0.t-ipconnect.de.\n\t[2003:e4:1bcc:8100:ea54:dc34:3767:cf80])\n\tby smtp.gmail.com with ESMTPSA id\n\tm66sm739671qkf.23.2017.09.28.02.56.50\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tThu, 28 Sep 2017 02:56:50 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=Pod7A1G1enqp/iMUgOtQzyLcsUcldnw12VR/XEHJZkU=;\n\tb=SykCLcOe8+x9RQbcoYbk1XFirz2mg5rk5iJM5o3SFPMXlIHBpaiH75vUpnMnfS0sJZ\n\tfpO5bP3zbO3uNPQECGR4C8Qn9RfDZ9E0iH4bxLuF7X7I8xTRYOEHAX+hQkfDwk0SLLmq\n\tEZTEixGpKAVIZJd+znzHnPpeBSR/dt1Jjc6lnd3/ZhmfmfFdPswleWoFgR/gb5e5lXLp\n\t9nwKlhWLHecbY3mhg0Vh64PLJJAEU99f1a8ewHvuJGTCObXNQajrP5tFsEcMN5/lYosg\n\tEA6MHwB2T7vouCoCl9k0xo2uuvw4Z45+7DHNYfPO/JgqP8wDmf1vY7RJizzo/E1bBUxH\n\trdHA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=Pod7A1G1enqp/iMUgOtQzyLcsUcldnw12VR/XEHJZkU=;\n\tb=MBkYf3DBFg6/3/z2aeaQyeS08oShXxuREpy+mOhjGQPJXOPfLevsIzh0hsq4ig1MV6\n\tFMMPuTuC7UygIMDnazAMzDBEMvvH3uwYchqJR6DnAwWSNInD4Fc1dSg4jvRZqs9DpdgZ\n\tOT0EGglfMjEt43rR8I8VGc9r3kTx+BvPTkBt9OLgD3W/DSi59lttPcT6t5rtJSv7bRV+\n\toiL1z1MdyMx/TueETsREWY4ajlLe5uO41iOns24hIwTwGSZylCyy2wdZdffTM2GpliPc\n\tTorMM58IJeM/nPsr6MGWt3eEDGKCY2mIqq0B9W8qGAf2CfDk4wODDg2Gyp7o8ZL3dt7A\n\tkzew==","X-Gm-Message-State":"AMCzsaUUDE2VQejYvVpLz7cstc7apJAqV9roY0PowBWtkBV+hp6clsqb\n\tI4+eaccYfLQjoqLz98hd3CQ=","X-Google-Smtp-Source":"AOwi7QCFKW0kr3E9UqZhKjNfgr2P62TlvNDT8ldqy+xZYovbK3V5cPn8KurpBTJufGjiwGoR/MtTcg==","X-Received":"by 10.237.36.225 with SMTP id u30mr16495qtc.11.1506592611253;\n\tThu, 28 Sep 2017 02:56:51 -0700 (PDT)","From":"Thierry Reding <thierry.reding@gmail.com>","To":"Linus Walleij <linus.walleij@linaro.org>","Cc":"Jonathan Hunter <jonathanh@nvidia.com>, linux-gpio@vger.kernel.org,\n\tlinux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org","Subject":"[PATCH v2 07/16] gpio: Move irq_chained_parent to struct\n\tgpio_irq_chip","Date":"Thu, 28 Sep 2017 11:56:19 +0200","Message-Id":"<20170928095628.21966-8-thierry.reding@gmail.com>","X-Mailer":"git-send-email 2.14.1","In-Reply-To":"<20170928095628.21966-1-thierry.reding@gmail.com>","References":"<20170928095628.21966-1-thierry.reding@gmail.com>","Sender":"linux-gpio-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-gpio.vger.kernel.org>","X-Mailing-List":"linux-gpio@vger.kernel.org"},"content":"From: Thierry Reding <treding@nvidia.com>\n\nIn order to consolidate the multiple ways to associate an IRQ chip with\na GPIO chip, move more fields into the new struct gpio_irq_chip.\n\nSigned-off-by: Thierry Reding <treding@nvidia.com>\n---\n drivers/gpio/gpiolib.c      | 8 ++------\n include/linux/gpio/driver.h | 4 ----\n 2 files changed, 2 insertions(+), 10 deletions(-)","diff":"diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c\nindex bbad2eae30e2..7a62f4a63635 100644\n--- a/drivers/gpio/gpiolib.c\n+++ b/drivers/gpio/gpiolib.c\n@@ -1569,7 +1569,8 @@ static void gpiochip_set_cascaded_irqchip(struct gpio_chip *gpiochip,\n \t\tirq_set_chained_handler_and_data(parent_irq, parent_handler,\n \t\t\t\t\t\t gpiochip);\n \n-\t\tgpiochip->irq_chained_parent = parent_irq;\n+\t\tgpiochip->irq.parents = &parent_irq;\n+\t\tgpiochip->irq.num_parents = 1;\n \t}\n \n \t/* Set the parent IRQ for all affected IRQs */\n@@ -1842,11 +1843,6 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip)\n \n \tacpi_gpiochip_free_interrupts(gpiochip);\n \n-\tif (gpiochip->irq_chained_parent) {\n-\t\tirq_set_chained_handler(gpiochip->irq_chained_parent, NULL);\n-\t\tirq_set_handler_data(gpiochip->irq_chained_parent, NULL);\n-\t}\n-\n \tif (gpiochip->irq.chip) {\n \t\tstruct gpio_irq_chip *irq = &gpiochip->irq;\n \t\tunsigned int i;\ndiff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h\nindex bcf93afddfa6..c3eafd874884 100644\n--- a/include/linux/gpio/driver.h\n+++ b/include/linux/gpio/driver.h\n@@ -176,9 +176,6 @@ static inline struct gpio_irq_chip *to_gpio_irq_chip(struct irq_chip *chip)\n  *\tsafely.\n  * @bgpio_dir: shadowed direction register for generic GPIO to clear/set\n  *\tdirection safely.\n- * @irq_chained_parent: GPIO IRQ chip parent/bank linux irq number,\n- *\tprovided by GPIO driver for chained interrupt (not for nested\n- *\tinterrupts).\n  * @irq_nested: True if set the interrupt handling is nested.\n  * @irq_need_valid_mask: If set core allocates @irq_valid_mask with all\n  *\tbits set to one\n@@ -251,7 +248,6 @@ struct gpio_chip {\n \t * With CONFIG_GPIOLIB_IRQCHIP we get an irqchip inside the gpiolib\n \t * to handle IRQs for most practical cases.\n \t */\n-\tunsigned int\t\tirq_chained_parent;\n \tbool\t\t\tirq_nested;\n \tbool\t\t\tirq_need_valid_mask;\n \tunsigned long\t\t*irq_valid_mask;\n","prefixes":["v2","07/16"]}