Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp287256ybe; Mon, 2 Sep 2019 01:23:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqxqDpFr+wyooM6UaEPfHOAe2oUguKpzF3jBME9e/9uPTPSCvH5kVdsbUpHxcNRWigEFhAPZ X-Received: by 2002:a17:90a:8911:: with SMTP id u17mr2512136pjn.128.1567412625415; Mon, 02 Sep 2019 01:23:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567412625; cv=none; d=google.com; s=arc-20160816; b=B+PpV7cChR1cu0Oswvbwqdxu5N3IC42VXH44nqPeNfqPAOETixdc+O8+KDcaVy9FpO Baave4oliK2MxJ1ZzGXeLOOZY9hg8e3MDcXsaoBUUfeFlizOCIYXfS17NybXk34LDVYh H07a6s0jxQLyEIzx9CdJp1u3HBNuJ3fK7m/iB9qYoUoY0pFbmdG7hz883dPNQhAGYA9I O/qFWDHOHK6ojn9WSwaZcRXek3Ba1pM2+6pSbn2Q89vQQ3Zz/6HA6iMiYbFIAKwcliXQ NrCrScKlSQ3TCxP0X+n70cr4NZcPitaE2YKK/e5RPM9nM+Xl0UgUsei9aH0fCbN0evoy NGJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:from:references:cc:to:subject; bh=JFl+OJJ7DCMmdMXJzXP7nbaWnoKn4pOljbDJ7Z9aoAY=; b=X7h6xW8085gQBKunxFH0MzcOiiHoOHnHRhbF+eBS6dM74+1OGY7emtWMXk0z6JZ1gW Ry344n4QgsGxgXmfOKMrcgKUA4wYDNHCzidltZhYUJzR6+YVi+5Np6cnnJ/0hxiimqPf a/NmpQYpcPEf2NAntaDZC8R5gnqyKLLw+ImePqVXr3YgfdyN/n4B2InAaTRClf6VzUwZ /j+zHGJVrBmb4Y6RTy/99oCQ77Dr+vwvb3cbFHGYIAP+pwkEFOqPTyATwAfdDtIFM339 HuthC1xoRQqUaVpKZV7Ji7/2a6vU8DK39UtRCQxuSM1Md9iG9BJC2gVVVf54UuMVmTH8 Uziw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id co13si3598242plb.40.2019.09.02.01.23.30; Mon, 02 Sep 2019 01:23:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729982AbfIBIVG (ORCPT + 99 others); Mon, 2 Sep 2019 04:21:06 -0400 Received: from foss.arm.com ([217.140.110.172]:50152 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729408AbfIBIVF (ORCPT ); Mon, 2 Sep 2019 04:21:05 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A799028; Mon, 2 Sep 2019 01:21:04 -0700 (PDT) Received: from [10.1.197.61] (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 3032B3F71A; Mon, 2 Sep 2019 01:21:03 -0700 (PDT) Subject: Re: [PATCH RFC 03/14] drivers: irqchip: add PDC irqdomain for wakeup capable GPIOs To: Lina Iyer Cc: swboyd@chromium.org, evgreen@chromium.org, linus.walleij@linaro.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, bjorn.andersson@linaro.org, mkshah@codeaurora.org, linux-gpio@vger.kernel.org, rnayak@codeaurora.org References: <20190829181203.2660-1-ilina@codeaurora.org> <20190829181203.2660-4-ilina@codeaurora.org> <20190830155853.GA5224@codeaurora.org> From: Marc Zyngier Organization: Approximate Message-ID: <11d14b08-27ae-d25a-6056-55c1cfbd89b1@kernel.org> Date: Mon, 2 Sep 2019 09:21:02 +0100 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <20190830155853.GA5224@codeaurora.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 30/08/2019 16:58, Lina Iyer wrote: > On Fri, Aug 30 2019 at 08:50 -0600, Marc Zyngier wrote: >> [Please use my kernel.org address in the future. The days of this >> arm.com address are numbered...] >> > Sure, will update and repost. > >> On 29/08/2019 19:11, Lina Iyer wrote: >>> Introduce a new domain for wakeup capable GPIOs. The domain can be >>> requested using the bus token DOMAIN_BUS_WAKEUP. In the following >>> patches, we will specify PDC as the wakeup-parent for the TLMM GPIO >>> irqchip. Requesting a wakeup GPIO will setup the GPIO and the >>> corresponding PDC interrupt as its parent. >>> >>> Co-developed-by: Stephen Boyd >>> Signed-off-by: Lina Iyer >>> --- >>> drivers/irqchip/qcom-pdc.c | 104 ++++++++++++++++++++++++++++++++--- >>> include/linux/soc/qcom/irq.h | 34 ++++++++++++ >>> 2 files changed, 129 insertions(+), 9 deletions(-) >>> create mode 100644 include/linux/soc/qcom/irq.h >>> [...] >>> diff --git a/include/linux/soc/qcom/irq.h b/include/linux/soc/qcom/irq.h >>> new file mode 100644 >>> index 000000000000..73239917dc38 >>> --- /dev/null >>> +++ b/include/linux/soc/qcom/irq.h >>> @@ -0,0 +1,34 @@ >>> +/* SPDX-License-Identifier: GPL-2.0-only */ >>> + >>> +#ifndef __QCOM_IRQ_H >>> +#define __QCOM_IRQ_H >>> + >>> +#include >>> + >>> +#define GPIO_NO_WAKE_IRQ ~0U >>> + >>> +/** >>> + * QCOM specific IRQ domain flags that distinguishes the handling of wakeup >>> + * capable interrupts by different interrupt controllers. >>> + * >>> + * IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP: Line must be masked at TLMM and the >>> + * interrupt configuration is done at PDC >>> + * IRQ_DOMAIN_FLAG_QCOM_MPM_WAKEUP: Interrupt configuration is handled at TLMM >>> + */ >>> +#define IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP (1 << 17) >>> +#define IRQ_DOMAIN_FLAG_QCOM_MPM_WAKEUP (1 << 18) >> >> Any reason why you're starting at bit 17? The available range in from >> bit 16... But overall, it would be better if you expressed it as: >> >> #define IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP (IRQ_DOMAIN_FLAG_NONCORE << 0) >> #define IRQ_DOMAIN_FLAG_QCOM_MPM_WAKEUP (IRQ_DOMAIN_FLAG_NONCORE << 1) >> > Okay. > >>> + >>> +/** >>> + * irq_domain_qcom_handle_wakeup: Return if the domain handles interrupt >>> + * configuration >>> + * @parent: irq domain >>> + * >>> + * This QCOM specific irq domain call returns if the interrupt controller >>> + * requires the interrupt be masked at the child interrupt controller. >>> + */ >>> +static inline bool irq_domain_qcom_handle_wakeup(struct irq_domain *parent) >>> +{ >>> + return (parent->flags & IRQ_DOMAIN_FLAG_QCOM_PDC_WAKEUP); >>> +} >>> + >>> +#endif >>> >> >> But most of this file isn't used by this patch, so maybe it should be >> moved somewhere else... >> > Apart from creating the domain, this is not used here, but a separate > patch seemed excessive. Let me know if you have any suggestions. My personal preference would be to move it into the patch that actually makes use of this. M. -- Jazz is not dead, it just smells funny...