| .. | .. |
|---|
| 16 | 16 | #include <linux/module.h> |
|---|
| 17 | 17 | #include <linux/random.h> |
|---|
| 18 | 18 | #include <linux/interrupt.h> |
|---|
| 19 | +#include <linux/irq_pipeline.h> |
|---|
| 19 | 20 | |
|---|
| 20 | 21 | #include "internals.h" |
|---|
| 21 | 22 | |
|---|
| 22 | | -#ifdef CONFIG_HARDIRQS_SW_RESEND |
|---|
| 23 | +#if defined(CONFIG_HARDIRQS_SW_RESEND) && !defined(CONFIG_IRQ_PIPELINE) |
|---|
| 23 | 24 | |
|---|
| 24 | 25 | /* Bitmap to handle software resend of interrupts: */ |
|---|
| 25 | 26 | static DECLARE_BITMAP(irqs_resend, IRQ_BITMAP_BITS); |
|---|
| .. | .. |
|---|
| 82 | 83 | #else |
|---|
| 83 | 84 | static int irq_sw_resend(struct irq_desc *desc) |
|---|
| 84 | 85 | { |
|---|
| 86 | +#if defined(CONFIG_HARDIRQS_SW_RESEND) && defined(CONFIG_IRQ_PIPELINE) |
|---|
| 87 | + irq_inject_pipeline(irq_desc_get_irq(desc)); |
|---|
| 88 | + return 0; |
|---|
| 89 | +#else |
|---|
| 85 | 90 | return -EINVAL; |
|---|
| 91 | +#endif |
|---|
| 86 | 92 | } |
|---|
| 87 | 93 | #endif |
|---|
| 88 | 94 | |
|---|