From patchwork Fri Oct 23 13:36:21 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Soren Brinkmann X-Patchwork-Id: 7473171 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id DFB30BEEA4 for ; Fri, 23 Oct 2015 13:38:40 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 117EC20720 for ; Fri, 23 Oct 2015 13:38:40 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2A356208A0 for ; Fri, 23 Oct 2015 13:38:39 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZpcWm-0003KT-QP; Fri, 23 Oct 2015 13:37:04 +0000 Received: from mail-bn1on0646.outbound.protection.outlook.com ([2a01:111:f400:fc10::646] helo=na01-bn1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZpcWi-0003Dy-Vm for linux-arm-kernel@lists.infradead.org; Fri, 23 Oct 2015 13:37:02 +0000 Received: from BN1AFFO11FD049.protection.gbl (10.58.52.30) by BN1AFFO11HUB027.protection.gbl (10.58.52.137) with Microsoft SMTP Server (TLS) id 15.1.300.4; Fri, 23 Oct 2015 13:36:38 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; Received: from xsj-pvapsmtpgw02 (149.199.60.100) by BN1AFFO11FD049.mail.protection.outlook.com (10.58.53.64) with Microsoft SMTP Server (TLS) id 15.1.306.13 via Frontend Transport; Fri, 23 Oct 2015 13:36:38 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:46916 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1ZpcWL-0004Jm-8O; Fri, 23 Oct 2015 06:36:37 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1ZpcWL-00065Q-4T; Fri, 23 Oct 2015 06:36:37 -0700 Received: from [172.19.74.49] (helo=localhost) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1ZpcWK-00065M-Bl; Fri, 23 Oct 2015 06:36:36 -0700 From: Soren Brinkmann To: Linus Walleij , Alexandre Courbot Subject: [PATCH] gpio: zynq: Implement irq_(request|release)_resources Date: Fri, 23 Oct 2015 06:36:21 -0700 Message-ID: <1445607381-7794-1-git-send-email-soren.brinkmann@xilinx.com> X-Mailer: git-send-email 2.6.2.3.ga463a5b X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-21896.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD049; 1:tg9KUu5152uW1q3RL5A8HpGTbay5gxRCLSCA5ykJHsODXGRl1wRTyj1NqpiaQX967sGRVt+e6Caq1DaN5PYQNunnnP2m4muSUsTqTt4eufMhItmE1Oaj5LUfxJuCsInQP9IvnSsyCGNXyyRTDkjrYJa5s5G2hb9Ry8ChmEWiGlS2arcCECMVID4ij2uY9Z4m+1hSG1Ee0lquLbHPK0i1UQjQ7NbhCNhLWWstoMJh5193FPDhxNctJn1uC57+y7EUdmxbuFx3MlWOeAtHQE08IStl5R6GhYmewJ5CsX3VofDxVi6QHZFRL7FzpiIrIyxvbtj2KeWLF0LFRd53ykz2Aa7LZPLbxpn7wuyOKYNAS8A= X-Forefront-Antispam-Report: CIP:149.199.60.100; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(438002)(199003)(189002)(63266004)(57986006)(19580405001)(19580395003)(48376002)(16796002)(33646002)(76506005)(5008740100001)(5007970100001)(5003940100001)(11100500001)(6806005)(47776003)(87936001)(107886002)(5001960100002)(92566002)(36756003)(86362001)(50986999)(5001920100001)(229853001)(77096005)(106466001)(50466002)(50226001)(5001770100001)(36386004)(81156007)(189998001)(107986001)(5001870100001)(4001430100001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1AFFO11HUB027; H:xsj-pvapsmtpgw02; FPR:; SPF:Pass; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11HUB027; 2:K9QPk7zo+tLDARUdhPaZ2yzx5y+NNmT7zTO7X5dWUytuuXg0zZ5jvVHBFd4BTFZuDRzSdfhJqN8WNejQKb+Ur5oQxJD//Pi2C9Ln+2hGKQnBItyCn+G1kmp+nOwt+kP6Rg35DC3XvkfrTBb1WaK+wf2PJqbxNgv5tinSDkc0lbU=; 3:XOe2vDdNmX6uXv7Ski2uJyQX7Hb2gsjZH9ed2SKTHCrVIk0Xaxloo58W4HIj/tGWmgirlBZ4yg3Hn1gqX/T6LsucH65JQlS3TmEbjHjlUjJzSMwv4AqvWUOrH9QQP7AcYEnq9PsH+3gngSOIMvQ4NLASXJNpxHKK8qejelVEgXQFUufrnF9wl8/TtCjYhH0GLIKK9yMzv3c/aAVXKnX1iVy1NI+HisfUIC7A6LloLFecX3T1BWsYQMJHAvr6+/98F3QrHQxkw5HP7TqBBrsGRg==; 25:z8XQZduIv9s8FAHg7FbCKiiL4k5IycbVwQ0EaImeLbcKnr8nDCRMf/dPO42qO8Aghgz06elwChm/ZiiGJ0qEH0bYUF30E6bIU3Wut6juHaIbYfqgMDw7xrRiWSJVLYu1UgTEhUBtQ3WubndB6TRTpMB1Ri+8ZfcrUDQcB0oGPisG19lsviYYuUsrB0e6fEzWK/upNOy+SRQf5GwcMdBo8fxTMqWDXFdOUotbS3hQZYS2D2yNVA4+5HQc/p7cCui3Gs5oyBJuITZD7RnsyqgP6Q== X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501001); SRVR:BN1AFFO11HUB027; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11HUB027; 20:KoL3H/K9crAmLkKArdDoe+/+tmWx0Gvc+j//Gfhq/NQaKYu7AaOeoyHm0j0PSHzyfLSwnRzlJ/9rMEEkItTmOov9B7fBgJhaXPWG1u+nbQ1YWIWCZ75p6irUKmmFTQze47wJQt/r/WQ0y2L8uDUYThHGVOdJKOxfHRhLqN2kOv3/ITFr3SByEyfRgnCiZyPj4HL1R0kE7YHj/7VrzRb3+YbcYtmDWmpmSgUFDFlEMxDr8eLsjWVhKgSWp9SrUXDKbiXBi66ejmxpolMKa3aoLpfRytmylzSF5kPSVg2MkSibathCwWFOKWLrHDjzov/dxjuTzl6w3SwjdmTrptZy2oA7s5RDD0ccr86/7OUf912Ggg5h2S+LMi1OCDgj0t/Rq/JJjLdcrLQjJY17viyWCwHbqD0/UCamRCju8/hyXtlL0ckmo10NzqS0F3tv/rF7rLsQBtsb40Qb0du/O+Ma+Jo7AUok2ikKuOikNJuMnhjCeSai0EHK+fQsyVm8rgPZ; 4:3WsaU942AtYytrWz53zM/vnbDU60ea6iGeh5R4xcaZiAC3UvxNwT+htB1bAR6eqFCpjLetcGCccbQ6li7sH5PVkpfkZ4xax0ufUb+AqWn319qrlbKso3sodNKp2bt8SrXamtpiQD3tC1oP/gojM8x+Yzg8Cj3QpMNbHcyTvrelp/heNLKAgfmbn1y6EppWO4xLmpgw7Fvqj2u4EnWxsicrl6V1fd5Z12tZ1agTaeCA1lLjZ+IFndVAqCYIt62HJFngEAQlQuLLWBBRdYbc3G6IPVma2/GEZGxpp2tgo9lHX+tXXqH3Ocq4r9XFV56AFQH910AexNIivPG3YPSqHpedgJE5cwv23xNFRwljzogihk6VWkXJeELnT0DukCax1NU5huQxRHaq1f8cJE8tI5VA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(3002001)(10201501024)(102215026); SRVR:BN1AFFO11HUB027; BCL:0; PCL:0; RULEID:; SRVR:BN1AFFO11HUB027; X-Forefront-PRVS: 0738AF4208 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1AFFO11HUB027; 23:FYr5fdw7rFEjOx16RbOElEx7sMB1klQa4j1MNEd?= =?us-ascii?Q?yzq2IyT2I21ngbsEittvIP2cQFl2dTKxMF04U+BQbw37phk6yP6AZ0DM7Wfp?= =?us-ascii?Q?eiuqkSCRKFVou1uzPdCBuRQdhtNlAmNTeQBurnoGPDV3AAvCkQjOhGP6ZXPU?= =?us-ascii?Q?OBr+iUGf53Xll0tNgzooHqmM9GcTO9YXNgPV8Mh/bQuZUgSueOdTDnB8C6NB?= =?us-ascii?Q?fU/gCLniy+26yO+IoBviz0+IH6dHt5dVCRuVbL7ihZ2lkksHxV+N1rBbm9Pq?= =?us-ascii?Q?tAYpMjJo+3iEP5zMyiwWyok/dmF/HjtGD6CMZkysQMI63+iP3n/9anuOoZ97?= =?us-ascii?Q?Wv3QCNTZusau6UVYAklWs/adCba3qdJQixSMsVzAW3e8Wd2Y/f4RPZLdxojH?= =?us-ascii?Q?IhlYNT1hoRc1i+vvfW04zZptN/9tZsS6zJmeQzshGANrNS6ggvrtNqGVyB7j?= =?us-ascii?Q?Cbi7GWdPtOT0iBs5MupHhmX5nZyGldNnU19O9Icl0/dvNjU/G/xrXZvdHu/C?= =?us-ascii?Q?BRzHBTo6j01KyemhCMwCE+5YpKNHMapcwZW5NdbFCnx1DnJ3Bk+sZUzmWWvu?= =?us-ascii?Q?CR1MmFFE8s9QJ/ys8W8FUBGzgEK+EVQNXzF4R7oFTd5/3KSrsG36D8hekcj/?= =?us-ascii?Q?2niXDCqmnWsSCuPd9EzK0CrX7i3PZSOONjMr2/TxxtDYuRsEjhsGaOO76KF2?= =?us-ascii?Q?PN1+BShMxqzMgs2xEoQGGsrnfIFj+AC2yOc45NDxkhdrGNYQX7izSQjfzHdG?= =?us-ascii?Q?3T2nVqpXZnMsmcRS6pXACUvwVD19iftDqeUlXfmV4i/IVrJ150jnW7p/A32u?= =?us-ascii?Q?BrVE52A2gAa7hhI09gIQF+bHdMsZNP0cSq6UeHxk+dTrEf4k65so/oJOpi0H?= =?us-ascii?Q?hN7U5c3fJ+DQZq5X+VFACSnReykrJ84SAOOpmUWinBkT2qKjXV9uJqMRuVnz?= =?us-ascii?Q?U9Nd2+1QeY0+Wu3poKotAbY4y82VeJoYre0Szw5LHyH1se7UI3oOiKPtRQ2u?= =?us-ascii?Q?iavJMES7D6HQfFzkY/4Fnk3rXNgQURw/ENPRy9wEcYD+B4R9rIsxVM2oFcuq?= =?us-ascii?Q?awFfmLM8tuZ4utrnXBZqWdfd+BWuy7QejLZ4epLtKNC/m1Aecgw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11HUB027; 5:V8KO817wbprqYuMWlNCgDupxYWpmsJOxjd3BwwE8qGjEYI0Zc6QV1p+OqyjlTitOnk6oWyA6lWn+ijBUks2vh1WKatqGHRksaJOo6MProtLNl1PZ0nCJdNT9UM2MHtjlTxGvMQlAYW2Frx9/wHbYuQ==; 24:qJsIfwADKO1dcqa2e3G6DpYzKXZH7viYkbTT7kcx/sXEd4KZVnJa85JBMMN7kRqxiz77NrwqJQbFx5QucO847QxqvewMeDG0aGKS8YlHsBw= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2015 13:36:38.1805 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.100]; Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1AFFO11HUB027 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20151023_063701_288254_CB2B4BC7 X-CRM114-Status: UNSURE ( 9.70 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -1.9 (-) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kernel@vger.kernel.org, Michal Simek , linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, John Linn , Soren Brinkmann Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The driver uses runtime PM to leverage low power techniques. For use-cases using GPIO as interrupt the device needs to be in an appropriate state. Reported-by: John Linn Signed-off-by: Soren Brinkmann Tested-by: John Linn --- drivers/gpio/gpio-zynq.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/gpio/gpio-zynq.c b/drivers/gpio/gpio-zynq.c index 8abeacac5885..0d1669416112 100644 --- a/drivers/gpio/gpio-zynq.c +++ b/drivers/gpio/gpio-zynq.c @@ -471,6 +471,22 @@ static int zynq_gpio_set_wake(struct irq_data *data, unsigned int on) return 0; } +int zynq_gpio_irq_request_resources(struct irq_data *data) +{ + struct zynq_gpio *gpio = irq_data_get_irq_chip_data(data); + struct device *dev = gpio->chip.dev; + + return pm_runtime_get_sync(dev); +} + +void zynq_gpio_irq_release_resources(struct irq_data *data) +{ + struct zynq_gpio *gpio = irq_data_get_irq_chip_data(data); + struct device *dev = gpio->chip.dev; + + pm_runtime_put(dev); +} + /* irq chip descriptor */ static struct irq_chip zynq_gpio_level_irqchip = { .name = DRIVER_NAME, @@ -480,6 +496,8 @@ static struct irq_chip zynq_gpio_level_irqchip = { .irq_unmask = zynq_gpio_irq_unmask, .irq_set_type = zynq_gpio_set_irq_type, .irq_set_wake = zynq_gpio_set_wake, + .irq_request_resources = zynq_gpio_irq_request_resources, + .irq_release_resources = zynq_gpio_irq_release_resources, .flags = IRQCHIP_EOI_THREADED | IRQCHIP_EOI_IF_HANDLED | IRQCHIP_MASK_ON_SUSPEND, }; @@ -492,6 +510,8 @@ static struct irq_chip zynq_gpio_edge_irqchip = { .irq_unmask = zynq_gpio_irq_unmask, .irq_set_type = zynq_gpio_set_irq_type, .irq_set_wake = zynq_gpio_set_wake, + .irq_request_resources = zynq_gpio_irq_request_resources, + .irq_release_resources = zynq_gpio_irq_release_resources, .flags = IRQCHIP_MASK_ON_SUSPEND, };