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 <swboyd@xxxxxxxxxxxx> >>> Signed-off-by: Lina Iyer <ilina@xxxxxxxxxxxxxx> >>> --- >>> 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 <linux/irqdomain.h> >>> + >>> +#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...