From patchwork Fri Nov 11 17:26:48 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 9423309 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id B674660233 for ; Fri, 11 Nov 2016 17:28:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A506D29BB7 for ; Fri, 11 Nov 2016 17:28:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 957D729BBA; Fri, 11 Nov 2016 17:28:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 56AE429BB7 for ; Fri, 11 Nov 2016 17:28:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934774AbcKKR2m (ORCPT ); Fri, 11 Nov 2016 12:28:42 -0500 Received: from mout.kundenserver.de ([212.227.17.10]:54031 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934509AbcKKR2l (ORCPT ); Fri, 11 Nov 2016 12:28:41 -0500 Received: from localhost.localdomain ([95.91.4.8]) by mrelayeu.kundenserver.de (mreue103 [212.227.15.183]) with ESMTPSA (Nemesis) id 0MEsqA-1c3XRd0QFm-00G3lj; Fri, 11 Nov 2016 18:27:03 +0100 From: Stefan Wahren To: Thomas Gleixner , Jason Cooper , Marc Zyngier , Oleksij Rempel , Shawn Guo , Fabio Estevam , Marek Vasut , =?UTF-8?q?Lothar=20Wa=C3=9Fmann?= Cc: Sascha Hauer , linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, Stefan Wahren Subject: [PATCH RFT] irqchip: mxs: Enable SKIP_SET_WAKE and MASK_ON_SUSPEND Date: Fri, 11 Nov 2016 17:26:48 +0000 Message-Id: <1478885208-18821-1-git-send-email-stefan.wahren@i2se.com> X-Mailer: git-send-email 1.7.9.5 X-Provags-ID: V03:K0:CNlYzsOk5QFHU1Q3T4LxFGXcvPyUdeieN4i9XprWvmABPcn5AFG rbigSVkuUWMP0XAWHCAYuvdJFhtfF3dtroovll0eMQe68yYy7EaRTQj7RMswQE3sZnBXC9t KzLWH0yOXSFWXAo7OET/KN3HHa597M+3Z2QFAdV+hsgxgwEZ6DczfGPf1pZi7brpWj8iHbx 04npJB79r0oYTN/iFLZRg== X-UI-Out-Filterresults: notjunk:1; V01:K0:Dvz42fwzzoA=:RSKctHI77K3P1duhxVVmIy YqbxGyMyuJRJTySIrjLnOfnSGZcOktCq9TnGYcS6J959q+aOBhTam9KpWHCuKJ5AoqzqXCrh2 E9dwYPXOz+yfa9KoDgg/Z7WUrynNBN/B4s6hotl5SFvqh6YNROA0aI5fKY+uaDGwAeIgORo0I cXcuZ/AMLbU1r9UfVk2zUFWJ1nOtkYppcOQXJ8tEjy+50Bvzl4JWJwG4+QJBcxXm+ZLtJireo L6ZdF9TCZ4geVjTHHmpKYgEt40qzYV/OPiK4j3UYTRRX2ILkJ78eCtwSbB/OBp1lWyaABEzYC 1pwGv0/vVn28KckIOpQfHXoIfQvTcHLA75Sw5eu8vjOSoK5Pqf2JXA/ZbQTpnyHXWwaXuZroM lqPiXKoznV063v8IpFDBH2NGq5WNYjEZJ2xcSP+kJXfBobMraXCUO9o+V2fYd7A7bc89Bor/i eHT9IdMQ4s0jPjEdAyszhzeTrAxMdN9WPNfZILxpLQU629bUV5zJ1cx4hcAuvbkOJkpFtR9y9 YaXPVY29hrKJcaaC+gGBVpqLT4nDC8v12940zQ7GsB7KF/ZBdT69Pn+NqyaSB3LGLg1VX2PPx nHkuXM5QmZ0wARlnb0aBGbMpnRwGQZDISmpBAJKol6c7y9Kt3lUlOgPCC3HAHu9LUyBgiQuyy 38gy6thF591/sbAluJIZO0/aEf8lfnguyePMkDhOjLX68NWISMQ6NPAky3uEziWAEc3I= Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The ICOLL controller doesn't provide any facility to configure the wakeup sources. That's the reason why this implementation lacks the irq_set_wake implementation. But this prevent us from properly entering power management states like "suspend to idle". So enable the flags IRQCHIP_SKIP_SET_WAKE and IRQCHIP_MASK_ON_SUSPEND to let the irqchip core allows and handles the power management. This patch has been tested with a MX23 and a MX28 board. Any further tests especially with ASM9260 would be appreciated. Signed-off-by: Stefan Wahren --- drivers/irqchip/irq-mxs.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/irqchip/irq-mxs.c b/drivers/irqchip/irq-mxs.c index 1730470..05fa9f7 100644 --- a/drivers/irqchip/irq-mxs.c +++ b/drivers/irqchip/irq-mxs.c @@ -131,12 +131,16 @@ static void asm9260_unmask_irq(struct irq_data *d) .irq_ack = icoll_ack_irq, .irq_mask = icoll_mask_irq, .irq_unmask = icoll_unmask_irq, + .flags = IRQCHIP_MASK_ON_SUSPEND | + IRQCHIP_SKIP_SET_WAKE, }; static struct irq_chip asm9260_icoll_chip = { .irq_ack = icoll_ack_irq, .irq_mask = asm9260_mask_irq, .irq_unmask = asm9260_unmask_irq, + .flags = IRQCHIP_MASK_ON_SUSPEND | + IRQCHIP_SKIP_SET_WAKE, }; asmlinkage void __exception_irq_entry icoll_handle_irq(struct pt_regs *regs)