Message ID | 1570015525-27018-2-git-send-email-zhouyanjie@zoho.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/5,v5] irqchip: ingenic: Drop redundant irq_suspend / irq_resume functions | expand |
Hi Zhou, Le mer., oct. 2, 2019 at 19:25, Zhou Yanjie <zhouyanjie@zoho.com> a écrit : > From: Paul Cercueil <paul@crapouillou.net> > > The same behaviour can be obtained by using the > IRQCHIP_MASK_ON_SUSPEND > flag on the IRQ chip. > > Signed-off-by: Paul Cercueil <paul@crapouillou.net> If you sumbit a patchset that contains someone else's patches you need to add your Signed-off-by too. > --- > drivers/irqchip/irq-ingenic.c | 24 +----------------------- > include/linux/irqchip/ingenic.h | 14 -------------- > 2 files changed, 1 insertion(+), 37 deletions(-) > delete mode 100644 include/linux/irqchip/ingenic.h > > diff --git a/drivers/irqchip/irq-ingenic.c > b/drivers/irqchip/irq-ingenic.c > index f126255..06fa810 100644 > --- a/drivers/irqchip/irq-ingenic.c > +++ b/drivers/irqchip/irq-ingenic.c > @@ -10,7 +10,6 @@ > #include <linux/interrupt.h> > #include <linux/ioport.h> > #include <linux/irqchip.h> > -#include <linux/irqchip/ingenic.h> > #include <linux/of_address.h> > #include <linux/of_irq.h> > #include <linux/timex.h> > @@ -50,26 +49,6 @@ static irqreturn_t intc_cascade(int irq, void > *data) > return IRQ_HANDLED; > } > > -static void intc_irq_set_mask(struct irq_chip_generic *gc, uint32_t > mask) > -{ > - struct irq_chip_regs *regs = &gc->chip_types->regs; > - > - writel(mask, gc->reg_base + regs->enable); > - writel(~mask, gc->reg_base + regs->disable); > -} > - > -void ingenic_intc_irq_suspend(struct irq_data *data) > -{ > - struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data); > - intc_irq_set_mask(gc, gc->wake_active); > -} > - > -void ingenic_intc_irq_resume(struct irq_data *data) > -{ > - struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data); > - intc_irq_set_mask(gc, gc->mask_cache); > -} > - > static struct irqaction intc_cascade_action = { > .handler = intc_cascade, > .name = "SoC intc cascade interrupt", > @@ -127,8 +106,7 @@ static int __init ingenic_intc_of_init(struct > device_node *node, > ct->chip.irq_mask = irq_gc_mask_disable_reg; > ct->chip.irq_mask_ack = irq_gc_mask_disable_reg; > ct->chip.irq_set_wake = irq_gc_set_wake; > - ct->chip.irq_suspend = ingenic_intc_irq_suspend; > - ct->chip.irq_resume = ingenic_intc_irq_resume; > + ct->chip.flags = IRQCHIP_MASK_ON_SUSPEND; > > irq_setup_generic_chip(gc, IRQ_MSK(32), 0, 0, > IRQ_NOPROBE | IRQ_LEVEL); > diff --git a/include/linux/irqchip/ingenic.h > b/include/linux/irqchip/ingenic.h > deleted file mode 100644 > index 1465588..0000000 > --- a/include/linux/irqchip/ingenic.h > +++ /dev/null > @@ -1,14 +0,0 @@ > -/* SPDX-License-Identifier: GPL-2.0-or-later */ > -/* > - * Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de> > - */ > - > -#ifndef __LINUX_IRQCHIP_INGENIC_H__ > -#define __LINUX_IRQCHIP_INGENIC_H__ > - > -#include <linux/irq.h> > - > -extern void ingenic_intc_irq_suspend(struct irq_data *data); > -extern void ingenic_intc_irq_resume(struct irq_data *data); > - > -#endif > -- > 2.7.4 > >
Hi Pual, On 2019年10月06日 08:13, Paul Cercueil wrote: > Hi Zhou, > > > Le mer., oct. 2, 2019 at 19:25, Zhou Yanjie <zhouyanjie@zoho.com> a > écrit : >> From: Paul Cercueil <paul@crapouillou.net> >> >> The same behaviour can be obtained by using the IRQCHIP_MASK_ON_SUSPEND >> flag on the IRQ chip. >> >> Signed-off-by: Paul Cercueil <paul@crapouillou.net> > > If you sumbit a patchset that contains someone else's patches you need > to add your Signed-off-by too. Thank you for the reminder. I'll add my Signed-off-by in v6. > >> --- >> drivers/irqchip/irq-ingenic.c | 24 +----------------------- >> include/linux/irqchip/ingenic.h | 14 -------------- >> 2 files changed, 1 insertion(+), 37 deletions(-) >> delete mode 100644 include/linux/irqchip/ingenic.h >> >> diff --git a/drivers/irqchip/irq-ingenic.c >> b/drivers/irqchip/irq-ingenic.c >> index f126255..06fa810 100644 >> --- a/drivers/irqchip/irq-ingenic.c >> +++ b/drivers/irqchip/irq-ingenic.c >> @@ -10,7 +10,6 @@ >> #include <linux/interrupt.h> >> #include <linux/ioport.h> >> #include <linux/irqchip.h> >> -#include <linux/irqchip/ingenic.h> >> #include <linux/of_address.h> >> #include <linux/of_irq.h> >> #include <linux/timex.h> >> @@ -50,26 +49,6 @@ static irqreturn_t intc_cascade(int irq, void *data) >> return IRQ_HANDLED; >> } >> >> -static void intc_irq_set_mask(struct irq_chip_generic *gc, uint32_t >> mask) >> -{ >> - struct irq_chip_regs *regs = &gc->chip_types->regs; >> - >> - writel(mask, gc->reg_base + regs->enable); >> - writel(~mask, gc->reg_base + regs->disable); >> -} >> - >> -void ingenic_intc_irq_suspend(struct irq_data *data) >> -{ >> - struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data); >> - intc_irq_set_mask(gc, gc->wake_active); >> -} >> - >> -void ingenic_intc_irq_resume(struct irq_data *data) >> -{ >> - struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data); >> - intc_irq_set_mask(gc, gc->mask_cache); >> -} >> - >> static struct irqaction intc_cascade_action = { >> .handler = intc_cascade, >> .name = "SoC intc cascade interrupt", >> @@ -127,8 +106,7 @@ static int __init ingenic_intc_of_init(struct >> device_node *node, >> ct->chip.irq_mask = irq_gc_mask_disable_reg; >> ct->chip.irq_mask_ack = irq_gc_mask_disable_reg; >> ct->chip.irq_set_wake = irq_gc_set_wake; >> - ct->chip.irq_suspend = ingenic_intc_irq_suspend; >> - ct->chip.irq_resume = ingenic_intc_irq_resume; >> + ct->chip.flags = IRQCHIP_MASK_ON_SUSPEND; >> >> irq_setup_generic_chip(gc, IRQ_MSK(32), 0, 0, >> IRQ_NOPROBE | IRQ_LEVEL); >> diff --git a/include/linux/irqchip/ingenic.h >> b/include/linux/irqchip/ingenic.h >> deleted file mode 100644 >> index 1465588..0000000 >> --- a/include/linux/irqchip/ingenic.h >> +++ /dev/null >> @@ -1,14 +0,0 @@ >> -/* SPDX-License-Identifier: GPL-2.0-or-later */ >> -/* >> - * Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de> >> - */ >> - >> -#ifndef __LINUX_IRQCHIP_INGENIC_H__ >> -#define __LINUX_IRQCHIP_INGENIC_H__ >> - >> -#include <linux/irq.h> >> - >> -extern void ingenic_intc_irq_suspend(struct irq_data *data); >> -extern void ingenic_intc_irq_resume(struct irq_data *data); >> - >> -#endif >> -- >> 2.7.4 >> >> > >
diff --git a/drivers/irqchip/irq-ingenic.c b/drivers/irqchip/irq-ingenic.c index f126255..06fa810 100644 --- a/drivers/irqchip/irq-ingenic.c +++ b/drivers/irqchip/irq-ingenic.c @@ -10,7 +10,6 @@ #include <linux/interrupt.h> #include <linux/ioport.h> #include <linux/irqchip.h> -#include <linux/irqchip/ingenic.h> #include <linux/of_address.h> #include <linux/of_irq.h> #include <linux/timex.h> @@ -50,26 +49,6 @@ static irqreturn_t intc_cascade(int irq, void *data) return IRQ_HANDLED; } -static void intc_irq_set_mask(struct irq_chip_generic *gc, uint32_t mask) -{ - struct irq_chip_regs *regs = &gc->chip_types->regs; - - writel(mask, gc->reg_base + regs->enable); - writel(~mask, gc->reg_base + regs->disable); -} - -void ingenic_intc_irq_suspend(struct irq_data *data) -{ - struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data); - intc_irq_set_mask(gc, gc->wake_active); -} - -void ingenic_intc_irq_resume(struct irq_data *data) -{ - struct irq_chip_generic *gc = irq_data_get_irq_chip_data(data); - intc_irq_set_mask(gc, gc->mask_cache); -} - static struct irqaction intc_cascade_action = { .handler = intc_cascade, .name = "SoC intc cascade interrupt", @@ -127,8 +106,7 @@ static int __init ingenic_intc_of_init(struct device_node *node, ct->chip.irq_mask = irq_gc_mask_disable_reg; ct->chip.irq_mask_ack = irq_gc_mask_disable_reg; ct->chip.irq_set_wake = irq_gc_set_wake; - ct->chip.irq_suspend = ingenic_intc_irq_suspend; - ct->chip.irq_resume = ingenic_intc_irq_resume; + ct->chip.flags = IRQCHIP_MASK_ON_SUSPEND; irq_setup_generic_chip(gc, IRQ_MSK(32), 0, 0, IRQ_NOPROBE | IRQ_LEVEL); diff --git a/include/linux/irqchip/ingenic.h b/include/linux/irqchip/ingenic.h deleted file mode 100644 index 1465588..0000000 --- a/include/linux/irqchip/ingenic.h +++ /dev/null @@ -1,14 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* - * Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de> - */ - -#ifndef __LINUX_IRQCHIP_INGENIC_H__ -#define __LINUX_IRQCHIP_INGENIC_H__ - -#include <linux/irq.h> - -extern void ingenic_intc_irq_suspend(struct irq_data *data); -extern void ingenic_intc_irq_resume(struct irq_data *data); - -#endif