diff mbox series

irqchip: mtk-sysirq: Skip setting irq-wake

Message ID 20210707062004.782787-1-msp@baylibre.com (mailing list archive)
State New, archived
Headers show
Series irqchip: mtk-sysirq: Skip setting irq-wake | expand

Commit Message

Markus Schneider-Pargmann July 7, 2021, 6:20 a.m. UTC
mtk-sysirq doesn't require specific logic to work with wakeup IRQs. To
allow registered IRQs to be used as a wakeup-source, add the flag
IRQCHIP_SKIP_SET_WAKE.

Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
---
 drivers/irqchip/irq-mtk-sysirq.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Marc Zyngier July 7, 2021, 10:19 a.m. UTC | #1
Hi Markus,

On Wed, 07 Jul 2021 07:20:04 +0100,
Markus Schneider-Pargmann <msp@baylibre.com> wrote:
> 
> mtk-sysirq doesn't require specific logic to work with wakeup IRQs. To
> allow registered IRQs to be used as a wakeup-source, add the flag
> IRQCHIP_SKIP_SET_WAKE.
> 
> Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
> ---
>  drivers/irqchip/irq-mtk-sysirq.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/irqchip/irq-mtk-sysirq.c b/drivers/irqchip/irq-mtk-sysirq.c
> index 6ff98b87e5c0..586e52d5442b 100644
> --- a/drivers/irqchip/irq-mtk-sysirq.c
> +++ b/drivers/irqchip/irq-mtk-sysirq.c
> @@ -65,6 +65,7 @@ static struct irq_chip mtk_sysirq_chip = {
>  	.irq_set_type		= mtk_sysirq_set_type,
>  	.irq_retrigger		= irq_chip_retrigger_hierarchy,
>  	.irq_set_affinity	= irq_chip_set_affinity_parent,
> +	.flags			= IRQCHIP_SKIP_SET_WAKE,
>  };
>  
>  static int mtk_sysirq_domain_translate(struct irq_domain *d,

Is this a fix? If so, please provide a Fixes: tag matching the commit
it addresses. Add a Cc stable if this requires backporting.

Thanks,

	M.
Markus Schneider-Pargmann July 7, 2021, 12:49 p.m. UTC | #2
Hi Marc,

On Wed, Jul 07, 2021 at 11:19:19AM +0100, Marc Zyngier wrote:
> Hi Markus,
> 
> On Wed, 07 Jul 2021 07:20:04 +0100,
> Markus Schneider-Pargmann <msp@baylibre.com> wrote:
> > 
> > mtk-sysirq doesn't require specific logic to work with wakeup IRQs. To
> > allow registered IRQs to be used as a wakeup-source, add the flag
> > IRQCHIP_SKIP_SET_WAKE.
> > 
> > Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
> > ---
> >  drivers/irqchip/irq-mtk-sysirq.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/drivers/irqchip/irq-mtk-sysirq.c b/drivers/irqchip/irq-mtk-sysirq.c
> > index 6ff98b87e5c0..586e52d5442b 100644
> > --- a/drivers/irqchip/irq-mtk-sysirq.c
> > +++ b/drivers/irqchip/irq-mtk-sysirq.c
> > @@ -65,6 +65,7 @@ static struct irq_chip mtk_sysirq_chip = {
> >  	.irq_set_type		= mtk_sysirq_set_type,
> >  	.irq_retrigger		= irq_chip_retrigger_hierarchy,
> >  	.irq_set_affinity	= irq_chip_set_affinity_parent,
> > +	.flags			= IRQCHIP_SKIP_SET_WAKE,
> >  };
> >  
> >  static int mtk_sysirq_domain_translate(struct irq_domain *d,
> 
> Is this a fix? If so, please provide a Fixes: tag matching the commit
> it addresses. Add a Cc stable if this requires backporting.

At least from my point of view I would like to prepare the mtk-sysirq
for powermanagement stuff, so not a fix. There may be some components
trying to use this already but I would consider this more of a feature
as it has probably never worked before.
Currently calls to enable_irq_wake() using IRQs of sysirq will result in
-ENXIO.

Thanks,
Markus

> 
> Thanks,
> 
> 	M.
> 
> -- 
> Without deviation from the norm, progress is not possible.
Marc Zyngier July 8, 2021, 8:16 a.m. UTC | #3
On Wed, 07 Jul 2021 13:49:32 +0100,
Markus Schneider-Pargmann <msp@baylibre.com> wrote:
> 
> Hi Marc,
> 
> On Wed, Jul 07, 2021 at 11:19:19AM +0100, Marc Zyngier wrote:
> > Hi Markus,
> > 
> > On Wed, 07 Jul 2021 07:20:04 +0100,
> > Markus Schneider-Pargmann <msp@baylibre.com> wrote:
> > > 
> > > mtk-sysirq doesn't require specific logic to work with wakeup IRQs. To
> > > allow registered IRQs to be used as a wakeup-source, add the flag
> > > IRQCHIP_SKIP_SET_WAKE.
> > > 
> > > Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
> > > ---
> > >  drivers/irqchip/irq-mtk-sysirq.c | 1 +
> > >  1 file changed, 1 insertion(+)
> > > 
> > > diff --git a/drivers/irqchip/irq-mtk-sysirq.c b/drivers/irqchip/irq-mtk-sysirq.c
> > > index 6ff98b87e5c0..586e52d5442b 100644
> > > --- a/drivers/irqchip/irq-mtk-sysirq.c
> > > +++ b/drivers/irqchip/irq-mtk-sysirq.c
> > > @@ -65,6 +65,7 @@ static struct irq_chip mtk_sysirq_chip = {
> > >  	.irq_set_type		= mtk_sysirq_set_type,
> > >  	.irq_retrigger		= irq_chip_retrigger_hierarchy,
> > >  	.irq_set_affinity	= irq_chip_set_affinity_parent,
> > > +	.flags			= IRQCHIP_SKIP_SET_WAKE,
> > >  };
> > >  
> > >  static int mtk_sysirq_domain_translate(struct irq_domain *d,
> > 
> > Is this a fix? If so, please provide a Fixes: tag matching the commit
> > it addresses. Add a Cc stable if this requires backporting.
> 
> At least from my point of view I would like to prepare the mtk-sysirq
> for powermanagement stuff, so not a fix. There may be some components
> trying to use this already but I would consider this more of a feature
> as it has probably never worked before.

Fair enough. I'll keep that for 5.15 then.

Thanks,

	M.
diff mbox series

Patch

diff --git a/drivers/irqchip/irq-mtk-sysirq.c b/drivers/irqchip/irq-mtk-sysirq.c
index 6ff98b87e5c0..586e52d5442b 100644
--- a/drivers/irqchip/irq-mtk-sysirq.c
+++ b/drivers/irqchip/irq-mtk-sysirq.c
@@ -65,6 +65,7 @@  static struct irq_chip mtk_sysirq_chip = {
 	.irq_set_type		= mtk_sysirq_set_type,
 	.irq_retrigger		= irq_chip_retrigger_hierarchy,
 	.irq_set_affinity	= irq_chip_set_affinity_parent,
+	.flags			= IRQCHIP_SKIP_SET_WAKE,
 };
 
 static int mtk_sysirq_domain_translate(struct irq_domain *d,