genirq: Remove preflow handler support
That was put in place for sparc64, and blackfin also used it for some time; sparc64 no longer uses those, and blackfin is dead. As there are no more users, remove preflow handlers. Signed-off-by: Valentin Schneider <valentin.schneider@arm.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lkml.kernel.org/r/20200703155645.29703-3-valentin.schneider@arm.com
This commit is contained in:
parent
959f53bd90
commit
8fa88a88d5
@ -22,7 +22,6 @@ struct pt_regs;
|
|||||||
* @irq_common_data: per irq and chip data passed down to chip functions
|
* @irq_common_data: per irq and chip data passed down to chip functions
|
||||||
* @kstat_irqs: irq stats per cpu
|
* @kstat_irqs: irq stats per cpu
|
||||||
* @handle_irq: highlevel irq-events handler
|
* @handle_irq: highlevel irq-events handler
|
||||||
* @preflow_handler: handler called before the flow handler (currently used by sparc)
|
|
||||||
* @action: the irq action chain
|
* @action: the irq action chain
|
||||||
* @status_use_accessors: status information
|
* @status_use_accessors: status information
|
||||||
* @core_internal_state__do_not_mess_with_it: core internal status information
|
* @core_internal_state__do_not_mess_with_it: core internal status information
|
||||||
@ -58,9 +57,6 @@ struct irq_desc {
|
|||||||
struct irq_data irq_data;
|
struct irq_data irq_data;
|
||||||
unsigned int __percpu *kstat_irqs;
|
unsigned int __percpu *kstat_irqs;
|
||||||
irq_flow_handler_t handle_irq;
|
irq_flow_handler_t handle_irq;
|
||||||
#ifdef CONFIG_IRQ_PREFLOW_FASTEOI
|
|
||||||
irq_preflow_handler_t preflow_handler;
|
|
||||||
#endif
|
|
||||||
struct irqaction *action; /* IRQ action list */
|
struct irqaction *action; /* IRQ action list */
|
||||||
unsigned int status_use_accessors;
|
unsigned int status_use_accessors;
|
||||||
unsigned int core_internal_state__do_not_mess_with_it;
|
unsigned int core_internal_state__do_not_mess_with_it;
|
||||||
@ -268,15 +264,4 @@ irq_set_lockdep_class(unsigned int irq, struct lock_class_key *lock_class,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_IRQ_PREFLOW_FASTEOI
|
|
||||||
static inline void
|
|
||||||
__irq_set_preflow_handler(unsigned int irq, irq_preflow_handler_t handler)
|
|
||||||
{
|
|
||||||
struct irq_desc *desc;
|
|
||||||
|
|
||||||
desc = irq_to_desc(irq);
|
|
||||||
desc->preflow_handler = handler;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -10,6 +10,5 @@
|
|||||||
struct irq_desc;
|
struct irq_desc;
|
||||||
struct irq_data;
|
struct irq_data;
|
||||||
typedef void (*irq_flow_handler_t)(struct irq_desc *desc);
|
typedef void (*irq_flow_handler_t)(struct irq_desc *desc);
|
||||||
typedef void (*irq_preflow_handler_t)(struct irq_data *data);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -51,10 +51,6 @@ config GENERIC_IRQ_INJECTION
|
|||||||
config HARDIRQS_SW_RESEND
|
config HARDIRQS_SW_RESEND
|
||||||
bool
|
bool
|
||||||
|
|
||||||
# Preflow handler support for fasteoi (sparc64)
|
|
||||||
config IRQ_PREFLOW_FASTEOI
|
|
||||||
bool
|
|
||||||
|
|
||||||
# Edge style eoi based handler (cell)
|
# Edge style eoi based handler (cell)
|
||||||
config IRQ_EDGE_EOI_HANDLER
|
config IRQ_EDGE_EOI_HANDLER
|
||||||
bool
|
bool
|
||||||
|
@ -656,16 +656,6 @@ out_unlock:
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(handle_level_irq);
|
EXPORT_SYMBOL_GPL(handle_level_irq);
|
||||||
|
|
||||||
#ifdef CONFIG_IRQ_PREFLOW_FASTEOI
|
|
||||||
static inline void preflow_handler(struct irq_desc *desc)
|
|
||||||
{
|
|
||||||
if (desc->preflow_handler)
|
|
||||||
desc->preflow_handler(&desc->irq_data);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static inline void preflow_handler(struct irq_desc *desc) { }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void cond_unmask_eoi_irq(struct irq_desc *desc, struct irq_chip *chip)
|
static void cond_unmask_eoi_irq(struct irq_desc *desc, struct irq_chip *chip)
|
||||||
{
|
{
|
||||||
if (!(desc->istate & IRQS_ONESHOT)) {
|
if (!(desc->istate & IRQS_ONESHOT)) {
|
||||||
@ -721,7 +711,6 @@ void handle_fasteoi_irq(struct irq_desc *desc)
|
|||||||
if (desc->istate & IRQS_ONESHOT)
|
if (desc->istate & IRQS_ONESHOT)
|
||||||
mask_irq(desc);
|
mask_irq(desc);
|
||||||
|
|
||||||
preflow_handler(desc);
|
|
||||||
handle_irq_event(desc);
|
handle_irq_event(desc);
|
||||||
|
|
||||||
cond_unmask_eoi_irq(desc, chip);
|
cond_unmask_eoi_irq(desc, chip);
|
||||||
@ -1231,7 +1220,6 @@ void handle_fasteoi_ack_irq(struct irq_desc *desc)
|
|||||||
/* Start handling the irq */
|
/* Start handling the irq */
|
||||||
desc->irq_data.chip->irq_ack(&desc->irq_data);
|
desc->irq_data.chip->irq_ack(&desc->irq_data);
|
||||||
|
|
||||||
preflow_handler(desc);
|
|
||||||
handle_irq_event(desc);
|
handle_irq_event(desc);
|
||||||
|
|
||||||
cond_unmask_eoi_irq(desc, chip);
|
cond_unmask_eoi_irq(desc, chip);
|
||||||
@ -1281,7 +1269,6 @@ void handle_fasteoi_mask_irq(struct irq_desc *desc)
|
|||||||
if (desc->istate & IRQS_ONESHOT)
|
if (desc->istate & IRQS_ONESHOT)
|
||||||
mask_irq(desc);
|
mask_irq(desc);
|
||||||
|
|
||||||
preflow_handler(desc);
|
|
||||||
handle_irq_event(desc);
|
handle_irq_event(desc);
|
||||||
|
|
||||||
cond_unmask_eoi_irq(desc, chip);
|
cond_unmask_eoi_irq(desc, chip);
|
||||||
|
Loading…
Reference in New Issue
Block a user