Message ID | 1427721345-6402-1-git-send-email-rogerq@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Mar 30, 2015 at 04:15:45PM +0300, Roger Quadros wrote: > Without this system suspend is broken on systems that have > drivers calling enable/disable_irq_wake() for interrupts based off > the dummy irq hook. > (e.g. drivers/gpio/gpio-pcf857x.c) > > http://article.gmane.org/gmane.linux.kernel/1879035 > > Signed-off-by: Roger Quadros <rogerq@ti.com> > --- > kernel/irq/dummychip.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/kernel/irq/dummychip.c b/kernel/irq/dummychip.c > index 988dc58..2405d7a 100644 > --- a/kernel/irq/dummychip.c > +++ b/kernel/irq/dummychip.c > @@ -32,6 +32,11 @@ static unsigned int noop_ret(struct irq_data *data) > return 0; > } > > +static int noop_int_ret(struct irq_data *data, unsigned int val) > +{ > + return 0; > +} > + isn't this the same as noop_ret ?
On Mon, Mar 30, 2015 at 01:06:24PM -0500, Felipe Balbi wrote: > On Mon, Mar 30, 2015 at 04:15:45PM +0300, Roger Quadros wrote: > > Without this system suspend is broken on systems that have > > drivers calling enable/disable_irq_wake() for interrupts based off > > the dummy irq hook. > > (e.g. drivers/gpio/gpio-pcf857x.c) > > > > http://article.gmane.org/gmane.linux.kernel/1879035 > > > > Signed-off-by: Roger Quadros <rogerq@ti.com> > > --- > > kernel/irq/dummychip.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/kernel/irq/dummychip.c b/kernel/irq/dummychip.c > > index 988dc58..2405d7a 100644 > > --- a/kernel/irq/dummychip.c > > +++ b/kernel/irq/dummychip.c > > @@ -32,6 +32,11 @@ static unsigned int noop_ret(struct irq_data *data) > > return 0; > > } > > > > +static int noop_int_ret(struct irq_data *data, unsigned int val) > > +{ > > + return 0; > > +} > > + > > isn't this the same as noop_ret ? oh no, unsigned versus signed.
Hi Thomas, On 30/03/15 16:15, Roger Quadros wrote: > Without this system suspend is broken on systems that have > drivers calling enable/disable_irq_wake() for interrupts based off > the dummy irq hook. > (e.g. drivers/gpio/gpio-pcf857x.c) > > http://article.gmane.org/gmane.linux.kernel/1879035 > > Signed-off-by: Roger Quadros <rogerq@ti.com> Any comments on this patch? cheers, -roger > --- > kernel/irq/dummychip.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/kernel/irq/dummychip.c b/kernel/irq/dummychip.c > index 988dc58..2405d7a 100644 > --- a/kernel/irq/dummychip.c > +++ b/kernel/irq/dummychip.c > @@ -32,6 +32,11 @@ static unsigned int noop_ret(struct irq_data *data) > return 0; > } > > +static int noop_int_ret(struct irq_data *data, unsigned int val) > +{ > + return 0; > +} > + > /* > * Generic no controller implementation > */ > @@ -57,5 +62,6 @@ struct irq_chip dummy_irq_chip = { > .irq_ack = noop, > .irq_mask = noop, > .irq_unmask = noop, > + .irq_set_wake = noop_int_ret, > }; > EXPORT_SYMBOL_GPL(dummy_irq_chip); > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Roger, On 14/04/2015 12:13, Roger Quadros wrote: > Hi Thomas, > > On 30/03/15 16:15, Roger Quadros wrote: >> Without this system suspend is broken on systems that have >> drivers calling enable/disable_irq_wake() for interrupts based off >> the dummy irq hook. >> (e.g. drivers/gpio/gpio-pcf857x.c) >> >> http://article.gmane.org/gmane.linux.kernel/1879035 >> >> Signed-off-by: Roger Quadros <rogerq@ti.com> > > Any comments on this patch? I read the url you pointed and I wonder why, at then end, did you choose to add a dummy set_irq_wake() instead of using IRQCHIP_SKIP_SET_WAKE ? Thanks, Gregory > > cheers, > -roger > >> --- >> kernel/irq/dummychip.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/kernel/irq/dummychip.c b/kernel/irq/dummychip.c >> index 988dc58..2405d7a 100644 >> --- a/kernel/irq/dummychip.c >> +++ b/kernel/irq/dummychip.c >> @@ -32,6 +32,11 @@ static unsigned int noop_ret(struct irq_data *data) >> return 0; >> } >> >> +static int noop_int_ret(struct irq_data *data, unsigned int val) >> +{ >> + return 0; >> +} >> + >> /* >> * Generic no controller implementation >> */ >> @@ -57,5 +62,6 @@ struct irq_chip dummy_irq_chip = { >> .irq_ack = noop, >> .irq_mask = noop, >> .irq_unmask = noop, >> + .irq_set_wake = noop_int_ret, >> }; >> EXPORT_SYMBOL_GPL(dummy_irq_chip); >> > > -- > To unsubscribe from this list: send the line "unsubscribe linux-usb" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
diff --git a/kernel/irq/dummychip.c b/kernel/irq/dummychip.c index 988dc58..2405d7a 100644 --- a/kernel/irq/dummychip.c +++ b/kernel/irq/dummychip.c @@ -32,6 +32,11 @@ static unsigned int noop_ret(struct irq_data *data) return 0; } +static int noop_int_ret(struct irq_data *data, unsigned int val) +{ + return 0; +} + /* * Generic no controller implementation */ @@ -57,5 +62,6 @@ struct irq_chip dummy_irq_chip = { .irq_ack = noop, .irq_mask = noop, .irq_unmask = noop, + .irq_set_wake = noop_int_ret, }; EXPORT_SYMBOL_GPL(dummy_irq_chip);
Without this system suspend is broken on systems that have drivers calling enable/disable_irq_wake() for interrupts based off the dummy irq hook. (e.g. drivers/gpio/gpio-pcf857x.c) http://article.gmane.org/gmane.linux.kernel/1879035 Signed-off-by: Roger Quadros <rogerq@ti.com> --- kernel/irq/dummychip.c | 6 ++++++ 1 file changed, 6 insertions(+)