android_kernel_motorola_sm6375/kernel/irq
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Grygorii Strashko 6d4affea7d genirq: Don't return ENOSYS in irq_chip_retrigger_hierarchy
irq_chip_retrigger_hierarchy() returns -ENOSYS if it was not able to
find at least one .irq_retrigger() callback implemented in the IRQ
domain hierarchy.

That's wrong, because check_irq_resend() expects a 0 return value from
the callback in case that the hardware assisted resend was not
possible. If the return value is non zero the core code assumes
hardware resend success and the software resend is not invoked.

This results in lost interrupts on platforms where none of the parent
irq chips in the hierarchy implements the retrigger callback.

This is observable on TI OMAP, where the hierarchy is:

 ARM GIC <- OMAP wakeupgen <- TI Crossbar

Return 0 instead so the software resend mechanism gets invoked.

[ tglx: Massaged changelog ]

Fixes: 85f08c17de ('genirq: Introduce helper functions...')
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-by: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: <linux@arm.linux.org.uk>
Cc: <nsekhar@ti.com>
Cc: <jason@lakedaemon.net>
Cc: <balbi@ti.com>
Cc: <linux-arm-kernel@lists.infradead.org>
Cc: <tony@atomide.com>
Cc: stable@vger.kernel.org # 4.1
Link: http://lkml.kernel.org/r/1439554830-19502-2-git-send-email-grygorii.strashko@ti.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-08-20 00:25:25 +02:00
..
autoprobe.c
chip.c genirq: Don't return ENOSYS in irq_chip_retrigger_hierarchy 2015-08-20 00:25:25 +02:00
debug.h
devres.c genirq: devres: Fix testing return value of request_any_context_irq() 2015-05-13 10:47:37 +02:00
dummychip.c Merge branch 'linus' into irq/core 2015-06-05 22:25:01 +02:00
generic-chip.c genirq: generic chip: Support hierarchy domain 2015-05-18 17:32:44 +02:00
handle.c
internals.h hotplug: Prevent alloc/free of irq descriptors during cpu up/down 2015-07-08 11:32:25 +02:00
irqdesc.c Merge branch 'irq/for-x86' into irq/core 2015-06-20 19:14:31 +02:00
irqdomain.c Merge branch 'irq/for-x86' into irq/core 2015-06-20 19:14:31 +02:00
Kconfig
Makefile
manage.c genirq: Introduce helper function irq_data_get_node() 2015-06-12 16:54:21 +02:00
migration.c genirq: Remove bogus restriction in irq_move_mask_irq() 2015-06-20 19:05:14 +02:00
msi.c genirq: MSI: Constify irq_domain_ops 2015-05-05 10:45:58 +02:00
pm.c genirq: Don't suspend nested_thread irqs over system suspend 2015-05-18 17:23:47 +02:00
proc.c genirq: Introduce helper function irq_data_get_node() 2015-06-12 16:54:21 +02:00
resend.c genirq: Prevent resend to interrupts marked IRQ_NESTED_THREAD 2015-07-17 11:29:34 +02:00
settings.h
spurious.c