[{"id":1783258,"web_url":"http://patchwork.ozlabs.org/comment/1783258/","msgid":"<dfeb33cf-34b5-259d-cf83-f065d75444f3@ti.com>","list_archive_url":null,"date":"2017-10-09T21:22:29","subject":"Re: [PATCH v2 15/16] gpio: tegra: Use banked GPIO infrastructure","submitter":{"id":25084,"url":"http://patchwork.ozlabs.org/api/people/25084/","name":"Grygorii Strashko","email":"grygorii.strashko@ti.com"},"content":"On 09/28/2017 04:56 AM, Thierry Reding wrote:\n> From: Thierry Reding <treding@nvidia.com>\n> \n> Convert the Tegra GPIO driver to use the banked GPIO infrastructure,\n> which simplifies some parts of the driver.\n> \n> Signed-off-by: Thierry Reding <treding@nvidia.com>\n> ---\n>   drivers/gpio/Kconfig      |   1 +\n>   drivers/gpio/gpio-tegra.c | 203 ++++++++++++++++++++++------------------------\n>   2 files changed, 98 insertions(+), 106 deletions(-)\n> \n> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig\n> index db3e446ad9b3..458157d6d491 100644\n> --- a/drivers/gpio/Kconfig\n> +++ b/drivers/gpio/Kconfig\n> @@ -439,6 +439,7 @@ config GPIO_TEGRA\n>   \tdefault ARCH_TEGRA\n>   \tdepends on ARCH_TEGRA || COMPILE_TEST\n\n... \n\n> @@ -616,76 +617,66 @@ static int tegra_gpio_probe(struct platform_device *pdev)\n>   \ttgi->ic.irq_set_wake\t\t= tegra_gpio_irq_set_wake;\n>   #endif\n>   \n> +\tirq = &tgi->gc.irq;\n> +\tirq->chip = &tgi->ic;\n> +\tirq->handler = handle_simple_irq;\n> +\tirq->lock_key = &tegra_gpio_lock_class;\n\nAs per current gpiolib design lockdep lock_class_key is assigned \nautomatically and hidden from gpiolib users. \nWhy do you need to do the same manually?\n\n> +\tirq->default_type = IRQ_TYPE_NONE;\n> +\tirq->parent_handler = gpio_irq_chip_banked_chained_handler;\n> +\tirq->update_bank = tegra_gpio_update_bank;\n> +\n> +\tirq->parents = devm_kcalloc(&pdev->dev, tgi->gc.num_banks,\n> +\t\t\t\t    sizeof(unsigned int), GFP_KERNEL);\n> +\tif (!irq->parents)\n> +\t\treturn -ENOMEM;\n> +\n\n...\n\n>   \n>   \ttegra_gpio_debuginit(tgi);\n>   \n>","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\" (1024-bit key;\n\tunprotected) header.d=ti.com header.i=@ti.com header.b=\"F/PP7zTN\";\n\tdkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3y9tVy2vTnz9t5R\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 10 Oct 2017 08:22:34 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1754226AbdJIVWc (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tMon, 9 Oct 2017 17:22:32 -0400","from lelnx194.ext.ti.com ([198.47.27.80]:55890 \"EHLO\n\tlelnx194.ext.ti.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1754161AbdJIVWb (ORCPT\n\t<rfc822; linux-gpio@vger.kernel.org>); Mon, 9 Oct 2017 17:22:31 -0400","from dlelxv90.itg.ti.com ([172.17.2.17])\n\tby lelnx194.ext.ti.com (8.15.1/8.15.1) with ESMTP id v99LMTOA003078; \n\tMon, 9 Oct 2017 16:22:29 -0500","from DLEE70.ent.ti.com (dlemailx.itg.ti.com [157.170.170.113])\n\tby dlelxv90.itg.ti.com (8.14.3/8.13.8) with ESMTP id v99LMTEU009836; \n\tMon, 9 Oct 2017 16:22:29 -0500","from [128.247.59.147] (128.247.59.147) by DLEE70.ent.ti.com\n\t(157.170.170.113) with Microsoft SMTP Server id 14.3.294.0;\n\tMon, 9 Oct 2017 16:22:29 -0500"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ti.com;\n\ts=ti-com-17Q1; t=1507584149;\n\tbh=DO7ZITgvaYVeucK97FhQi87chH/Ru21u5qhKHoghr+8=;\n\th=Subject:To:CC:References:From:Date:In-Reply-To;\n\tb=F/PP7zTNVQBY5ICJf0+/iLrJEYk+usXNIroWbeUgEZP/S+iihMs/s/vL17NpBMv2c\n\tEliGHkwBxHwXbzLPjCfX9kq057qMfLD47CB88Q5+ui29h1LQu30trDhQDu1EywXXeb\n\teYOAqnklMpDVZ7J2igSJXHEEP+J+4aDni1kNIvfE=","Subject":"Re: [PATCH v2 15/16] gpio: tegra: Use banked GPIO infrastructure","To":"Thierry Reding <thierry.reding@gmail.com>,\n\tLinus Walleij <linus.walleij@linaro.org>","CC":"Jonathan Hunter <jonathanh@nvidia.com>,\n\t<linux-gpio@vger.kernel.org>, <linux-tegra@vger.kernel.org>,\n\t<linux-kernel@vger.kernel.org>","References":"<20170928095628.21966-1-thierry.reding@gmail.com>\n\t<20170928095628.21966-16-thierry.reding@gmail.com>","From":"Grygorii Strashko <grygorii.strashko@ti.com>","Message-ID":"<dfeb33cf-34b5-259d-cf83-f065d75444f3@ti.com>","Date":"Mon, 9 Oct 2017 16:22:29 -0500","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<20170928095628.21966-16-thierry.reding@gmail.com>","Content-Type":"text/plain; charset=\"utf-8\"","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-Originating-IP":"[128.247.59.147]","Sender":"linux-gpio-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-gpio.vger.kernel.org>","X-Mailing-List":"linux-gpio@vger.kernel.org"}},{"id":1783598,"web_url":"http://patchwork.ozlabs.org/comment/1783598/","msgid":"<20171010102727.GA24484@ulmo>","list_archive_url":null,"date":"2017-10-10T10:27:27","subject":"Re: [PATCH v2 15/16] gpio: tegra: Use banked GPIO infrastructure","submitter":{"id":26234,"url":"http://patchwork.ozlabs.org/api/people/26234/","name":"Thierry Reding","email":"thierry.reding@gmail.com"},"content":"On Mon, Oct 09, 2017 at 04:22:29PM -0500, Grygorii Strashko wrote:\n> \n> \n> On 09/28/2017 04:56 AM, Thierry Reding wrote:\n> > From: Thierry Reding <treding@nvidia.com>\n> > \n> > Convert the Tegra GPIO driver to use the banked GPIO infrastructure,\n> > which simplifies some parts of the driver.\n> > \n> > Signed-off-by: Thierry Reding <treding@nvidia.com>\n> > ---\n> >   drivers/gpio/Kconfig      |   1 +\n> >   drivers/gpio/gpio-tegra.c | 203 ++++++++++++++++++++++------------------------\n> >   2 files changed, 98 insertions(+), 106 deletions(-)\n> > \n> > diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig\n> > index db3e446ad9b3..458157d6d491 100644\n> > --- a/drivers/gpio/Kconfig\n> > +++ b/drivers/gpio/Kconfig\n> > @@ -439,6 +439,7 @@ config GPIO_TEGRA\n> >   \tdefault ARCH_TEGRA\n> >   \tdepends on ARCH_TEGRA || COMPILE_TEST\n> \n> ... \n> \n> > @@ -616,76 +617,66 @@ static int tegra_gpio_probe(struct platform_device *pdev)\n> >   \ttgi->ic.irq_set_wake\t\t= tegra_gpio_irq_set_wake;\n> >   #endif\n> >   \n> > +\tirq = &tgi->gc.irq;\n> > +\tirq->chip = &tgi->ic;\n> > +\tirq->handler = handle_simple_irq;\n> > +\tirq->lock_key = &tegra_gpio_lock_class;\n> \n> As per current gpiolib design lockdep lock_class_key is assigned \n> automatically and hidden from gpiolib users. \n> Why do you need to do the same manually?\n\nCan you elaborate? I don't see the lock class key getting set anywhere.\ngpiolib does set if for interrupts, but only if the drivers assigned it\nbefore adding the chip.\n\nThierry","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=\"Ymmv1a1s\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yBCwj6VgGz9t2c\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 10 Oct 2017 21:27:33 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1755505AbdJJK1b (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tTue, 10 Oct 2017 06:27:31 -0400","from mail-qt0-f195.google.com ([209.85.216.195]:55172 \"EHLO\n\tmail-qt0-f195.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1755144AbdJJK1a (ORCPT\n\t<rfc822; linux-gpio@vger.kernel.org>); Tue, 10 Oct 2017 06:27:30 -0400","by mail-qt0-f195.google.com with SMTP id z19so4149742qtg.11;\n\tTue, 10 Oct 2017 03:27:30 -0700 (PDT)","from localhost\n\t(p200300E41BE4FD00CEAD5B94E1CFD280.dip0.t-ipconnect.de.\n\t[2003:e4:1be4:fd00:cead:5b94:e1cf:d280])\n\tby smtp.gmail.com with ESMTPSA id\n\tc10sm2113691qtj.29.2017.10.10.03.27.28\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tTue, 10 Oct 2017 03:27:29 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:in-reply-to:user-agent;\n\tbh=u8qN1kGz/V92THqC9qrKP8bc26DlpFjvT6FOgndvCSc=;\n\tb=Ymmv1a1soSYCMZqDVIRZpjSlJ3LbMQ/GAmE8Q7XdMoLY+/CCrltutr9MjTk2AjxSHY\n\tevEDsclBDW0SXxGvaDuptkF2zFlr9Ogy2BRKd7tjBYdyVc9Wm1kShHXwPImR+Eo4Citm\n\tZhM1JkLPFCk9ZUC4xUsOM6SNhn8B61uvmjo9YHUsK9A34ESgICklMqSTaKS5JDdGdsD6\n\tDw6pNulQFaOUQhegM8ElQI/RCTnaCDf1yoCNztovmPSO6QO1otmOPWmy8dL5SalkMeVh\n\tUIm5HvO9CqXAFjxHA6KBbZIQ87Dh27WBJV/FQuI9wLAAqI++Fm7VlMQooagRv372F6Z8\n\t3ing==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:in-reply-to:user-agent;\n\tbh=u8qN1kGz/V92THqC9qrKP8bc26DlpFjvT6FOgndvCSc=;\n\tb=Lh597yeCDsFYvEMqnJuJMKR3Mc65emT3d5nA6FfFLJXKQRzZ5QrCXudHsT/9655r7w\n\t/sQiu4baLdelL0lrK7Q8KwfF/KGW+DYacwJ4JFpWTF2RcBHy4Bubu0LwHhseKS1WyhdD\n\tUSboMYsB6962SEsPuuiLE2OnpTYBldrgHnRl3kSVXekWqDxGFjLCtNycPBzMq3ej8/ep\n\tHq9S/X3Kjwjb/9pOundNkT4akXHSXSvrYS9A/WeJjwX4RbpMkdFWNwCs7AyksYjoceap\n\tVPXoEG1LBCf19PU4v5aFfYpif1BDpJtrWPWXSZwMDAmjn6rtxCqci/B5yxDUBtyZY37u\n\teVng==","X-Gm-Message-State":"AMCzsaWiFhE43kKWkyq/mosDJORaIuDrqKpWmVFllFc35HPh6/MvZojl\n\tJ6TGH3rjHseTPGT5f1WiWnfDrQ==","X-Google-Smtp-Source":"AOwi7QDyN5dw0ucABkn1N9//oLSJudyhdh/lCho7fyfyVWdLcdzCV/FeVyvnTAbxfqyqrnHE1sz0yA==","X-Received":"by 10.200.45.172 with SMTP id p41mr19930360qta.256.1507631249853;\n\tTue, 10 Oct 2017 03:27:29 -0700 (PDT)","Date":"Tue, 10 Oct 2017 12:27:27 +0200","From":"Thierry Reding <thierry.reding@gmail.com>","To":"Grygorii Strashko <grygorii.strashko@ti.com>","Cc":"Linus Walleij <linus.walleij@linaro.org>,\n\tJonathan Hunter <jonathanh@nvidia.com>,\n\tlinux-gpio@vger.kernel.org, linux-tegra@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org","Subject":"Re: [PATCH v2 15/16] gpio: tegra: Use banked GPIO infrastructure","Message-ID":"<20171010102727.GA24484@ulmo>","References":"<20170928095628.21966-1-thierry.reding@gmail.com>\n\t<20170928095628.21966-16-thierry.reding@gmail.com>\n\t<dfeb33cf-34b5-259d-cf83-f065d75444f3@ti.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"5vNYLRcllDrimb99\"","Content-Disposition":"inline","In-Reply-To":"<dfeb33cf-34b5-259d-cf83-f065d75444f3@ti.com>","User-Agent":"Mutt/1.9.1 (2017-09-22)","Sender":"linux-gpio-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-gpio.vger.kernel.org>","X-Mailing-List":"linux-gpio@vger.kernel.org"}},{"id":1784071,"web_url":"http://patchwork.ozlabs.org/comment/1784071/","msgid":"<ad79e202-1fdd-81d3-f0f6-925eed5049c1@ti.com>","list_archive_url":null,"date":"2017-10-10T19:31:15","subject":"Re: [PATCH v2 15/16] gpio: tegra: Use banked GPIO infrastructure","submitter":{"id":25084,"url":"http://patchwork.ozlabs.org/api/people/25084/","name":"Grygorii Strashko","email":"grygorii.strashko@ti.com"},"content":"On 10/10/2017 05:27 AM, Thierry Reding wrote:\n> On Mon, Oct 09, 2017 at 04:22:29PM -0500, Grygorii Strashko wrote:\n>>\n>>\n>> On 09/28/2017 04:56 AM, Thierry Reding wrote:\n>>> From: Thierry Reding <treding@nvidia.com>\n>>>\n>>> Convert the Tegra GPIO driver to use the banked GPIO infrastructure,\n>>> which simplifies some parts of the driver.\n>>>\n>>> Signed-off-by: Thierry Reding <treding@nvidia.com>\n>>> ---\n>>>    drivers/gpio/Kconfig      |   1 +\n>>>    drivers/gpio/gpio-tegra.c | 203 ++++++++++++++++++++++------------------------\n>>>    2 files changed, 98 insertions(+), 106 deletions(-)\n>>>\n>>> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig\n>>> index db3e446ad9b3..458157d6d491 100644\n>>> --- a/drivers/gpio/Kconfig\n>>> +++ b/drivers/gpio/Kconfig\n>>> @@ -439,6 +439,7 @@ config GPIO_TEGRA\n>>>    \tdefault ARCH_TEGRA\n>>>    \tdepends on ARCH_TEGRA || COMPILE_TEST\n>>\n>> ...\n>>\n>>> @@ -616,76 +617,66 @@ static int tegra_gpio_probe(struct platform_device *pdev)\n>>>    \ttgi->ic.irq_set_wake\t\t= tegra_gpio_irq_set_wake;\n>>>    #endif\n>>>    \n>>> +\tirq = &tgi->gc.irq;\n>>> +\tirq->chip = &tgi->ic;\n>>> +\tirq->handler = handle_simple_irq;\n>>> +\tirq->lock_key = &tegra_gpio_lock_class;\n>>\n>> As per current gpiolib design lockdep lock_class_key is assigned\n>> automatically and hidden from gpiolib users.\n>> Why do you need to do the same manually?\n> \n> Can you elaborate? I don't see the lock class key getting set anywhere.\n> gpiolib does set if for interrupts, but only if the drivers assigned it\n> before adding the chip.\n> \n\ninclude/linux/gpio/driver.h\n\n#ifdef CONFIG_LOCKDEP\n\n/*\n * Lockdep requires that each irqchip instance be created with a\n * unique key so as to avoid unnecessary warnings. This upfront\n * boilerplate static inlines provides such a key for each\n * unique instance.\n */\nstatic inline int gpiochip_irqchip_add(struct gpio_chip *gpiochip,\n\t\t\t\t       struct irq_chip *irqchip,\n\t\t\t\t       unsigned int first_irq,\n\t\t\t\t       irq_flow_handler_t handler,\n\t\t\t\t       unsigned int type)\n{\n\tstatic struct lock_class_key key;\n^^^\n\n\treturn gpiochip_irqchip_add_key(gpiochip, irqchip, first_irq,\n\t\t\t\t\thandler, type, false, &key);\n}","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\" (1024-bit key;\n\tunprotected) header.d=ti.com header.i=@ti.com header.b=\"mWE00iDH\";\n\tdkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yBS115nWcz9t61\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 11 Oct 2017 06:32:05 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751858AbdJJTcE (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);\n\tTue, 10 Oct 2017 15:32:04 -0400","from fllnx209.ext.ti.com ([198.47.19.16]:49020 \"EHLO\n\tfllnx209.ext.ti.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751156AbdJJTcD (ORCPT\n\t<rfc822; linux-gpio@vger.kernel.org>); Tue, 10 Oct 2017 15:32:03 -0400","from dlelxv90.itg.ti.com ([172.17.2.17])\n\tby fllnx209.ext.ti.com (8.15.1/8.15.1) with ESMTP id v9AJVLVG017379; \n\tTue, 10 Oct 2017 14:31:21 -0500","from DLEE70.ent.ti.com (dlee70.ent.ti.com [157.170.170.113])\n\tby dlelxv90.itg.ti.com (8.14.3/8.13.8) with ESMTP id v9AJVGoZ031175; \n\tTue, 10 Oct 2017 14:31:16 -0500","from [128.247.59.147] (128.247.59.147) by DLEE70.ent.ti.com\n\t(157.170.170.113) with Microsoft SMTP Server id 14.3.294.0;\n\tTue, 10 Oct 2017 14:31:15 -0500"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ti.com;\n\ts=ti-com-17Q1; t=1507663881;\n\tbh=sD+clc5mA5+JJKNXI+7ZdGXydSQM/DgiNsMmnE46VeY=;\n\th=Subject:To:CC:References:From:Date:In-Reply-To;\n\tb=mWE00iDH/smMVuvHVQzME6qxbnefVDWN5Pqb8sYtwrX8/yuKperxLK7aGJmQG2wBP\n\tIEJkW4SAGbZHWB6SKqhv+PD37axZulTOn+7mHK7jAJODOd/6eFnbjyIBXx/AfK7ugC\n\t3aawqjhgHwV2W6WUnSh7kwY8a5FiYEwCyWLnephQ=","Subject":"Re: [PATCH v2 15/16] gpio: tegra: Use banked GPIO infrastructure","To":"Thierry Reding <thierry.reding@gmail.com>","CC":"Linus Walleij <linus.walleij@linaro.org>,\n\tJonathan Hunter <jonathanh@nvidia.com>,\n\t<linux-gpio@vger.kernel.org>, <linux-tegra@vger.kernel.org>,\n\t<linux-kernel@vger.kernel.org>","References":"<20170928095628.21966-1-thierry.reding@gmail.com>\n\t<20170928095628.21966-16-thierry.reding@gmail.com>\n\t<dfeb33cf-34b5-259d-cf83-f065d75444f3@ti.com>\n\t<20171010102727.GA24484@ulmo>","From":"Grygorii Strashko <grygorii.strashko@ti.com>","Message-ID":"<ad79e202-1fdd-81d3-f0f6-925eed5049c1@ti.com>","Date":"Tue, 10 Oct 2017 14:31:15 -0500","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<20171010102727.GA24484@ulmo>","Content-Type":"text/plain; charset=\"windows-1252\"","Content-Language":"en-US","Content-Transfer-Encoding":"7bit","X-Originating-IP":"[128.247.59.147]","Sender":"linux-gpio-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<linux-gpio.vger.kernel.org>","X-Mailing-List":"linux-gpio@vger.kernel.org"}}]