genirq: Convert core code to irq_data
Convert all references in the core code to orq, chip, handler_data, chip_data, msi_desc, affinity to irq_data.* Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@ -32,18 +32,18 @@ static void dynamic_irq_init_x(unsigned int irq, bool keep_chip_data)
|
||||
/* Ensure we don't have left over values from a previous use of this irq */
|
||||
raw_spin_lock_irqsave(&desc->lock, flags);
|
||||
desc->status = IRQ_DISABLED;
|
||||
desc->chip = &no_irq_chip;
|
||||
desc->irq_data.chip = &no_irq_chip;
|
||||
desc->handle_irq = handle_bad_irq;
|
||||
desc->depth = 1;
|
||||
desc->msi_desc = NULL;
|
||||
desc->handler_data = NULL;
|
||||
desc->irq_data.msi_desc = NULL;
|
||||
desc->irq_data.handler_data = NULL;
|
||||
if (!keep_chip_data)
|
||||
desc->chip_data = NULL;
|
||||
desc->irq_data.chip_data = NULL;
|
||||
desc->action = NULL;
|
||||
desc->irq_count = 0;
|
||||
desc->irqs_unhandled = 0;
|
||||
#ifdef CONFIG_SMP
|
||||
cpumask_setall(desc->affinity);
|
||||
cpumask_setall(desc->irq_data.affinity);
|
||||
#ifdef CONFIG_GENERIC_PENDING_IRQ
|
||||
cpumask_clear(desc->pending_mask);
|
||||
#endif
|
||||
@ -64,7 +64,7 @@ void dynamic_irq_init(unsigned int irq)
|
||||
* dynamic_irq_init_keep_chip_data - initialize a dynamically allocated irq
|
||||
* @irq: irq number to initialize
|
||||
*
|
||||
* does not set irq_to_desc(irq)->chip_data to NULL
|
||||
* does not set irq_to_desc(irq)->irq_data.chip_data to NULL
|
||||
*/
|
||||
void dynamic_irq_init_keep_chip_data(unsigned int irq)
|
||||
{
|
||||
@ -88,12 +88,12 @@ static void dynamic_irq_cleanup_x(unsigned int irq, bool keep_chip_data)
|
||||
irq);
|
||||
return;
|
||||
}
|
||||
desc->msi_desc = NULL;
|
||||
desc->handler_data = NULL;
|
||||
desc->irq_data.msi_desc = NULL;
|
||||
desc->irq_data.handler_data = NULL;
|
||||
if (!keep_chip_data)
|
||||
desc->chip_data = NULL;
|
||||
desc->irq_data.chip_data = NULL;
|
||||
desc->handle_irq = handle_bad_irq;
|
||||
desc->chip = &no_irq_chip;
|
||||
desc->irq_data.chip = &no_irq_chip;
|
||||
desc->name = NULL;
|
||||
clear_kstat_irqs(desc);
|
||||
raw_spin_unlock_irqrestore(&desc->lock, flags);
|
||||
@ -112,7 +112,7 @@ void dynamic_irq_cleanup(unsigned int irq)
|
||||
* dynamic_irq_cleanup_keep_chip_data - cleanup a dynamically allocated irq
|
||||
* @irq: irq number to initialize
|
||||
*
|
||||
* does not set irq_to_desc(irq)->chip_data to NULL
|
||||
* does not set irq_to_desc(irq)->irq_data.chip_data to NULL
|
||||
*/
|
||||
void dynamic_irq_cleanup_keep_chip_data(unsigned int irq)
|
||||
{
|
||||
@ -140,7 +140,7 @@ int set_irq_chip(unsigned int irq, struct irq_chip *chip)
|
||||
|
||||
raw_spin_lock_irqsave(&desc->lock, flags);
|
||||
irq_chip_set_defaults(chip);
|
||||
desc->chip = chip;
|
||||
desc->irq_data.chip = chip;
|
||||
raw_spin_unlock_irqrestore(&desc->lock, flags);
|
||||
|
||||
return 0;
|
||||
@ -193,7 +193,7 @@ int set_irq_data(unsigned int irq, void *data)
|
||||
}
|
||||
|
||||
raw_spin_lock_irqsave(&desc->lock, flags);
|
||||
desc->handler_data = data;
|
||||
desc->irq_data.handler_data = data;
|
||||
raw_spin_unlock_irqrestore(&desc->lock, flags);
|
||||
return 0;
|
||||
}
|
||||
@ -218,7 +218,7 @@ int set_irq_msi(unsigned int irq, struct msi_desc *entry)
|
||||
}
|
||||
|
||||
raw_spin_lock_irqsave(&desc->lock, flags);
|
||||
desc->msi_desc = entry;
|
||||
desc->irq_data.msi_desc = entry;
|
||||
if (entry)
|
||||
entry->irq = irq;
|
||||
raw_spin_unlock_irqrestore(&desc->lock, flags);
|
||||
@ -243,13 +243,13 @@ int set_irq_chip_data(unsigned int irq, void *data)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (!desc->chip) {
|
||||
if (!desc->irq_data.chip) {
|
||||
printk(KERN_ERR "BUG: bad set_irq_chip_data(IRQ#%d)\n", irq);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
raw_spin_lock_irqsave(&desc->lock, flags);
|
||||
desc->chip_data = data;
|
||||
desc->irq_data.chip_data = data;
|
||||
raw_spin_unlock_irqrestore(&desc->lock, flags);
|
||||
|
||||
return 0;
|
||||
@ -291,7 +291,7 @@ static void default_enable(unsigned int irq)
|
||||
{
|
||||
struct irq_desc *desc = irq_to_desc(irq);
|
||||
|
||||
desc->chip->unmask(irq);
|
||||
desc->irq_data.chip->unmask(irq);
|
||||
desc->status &= ~IRQ_MASKED;
|
||||
}
|
||||
|
||||
@ -309,7 +309,7 @@ static unsigned int default_startup(unsigned int irq)
|
||||
{
|
||||
struct irq_desc *desc = irq_to_desc(irq);
|
||||
|
||||
desc->chip->enable(irq);
|
||||
desc->irq_data.chip->enable(irq);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -320,7 +320,7 @@ static void default_shutdown(unsigned int irq)
|
||||
{
|
||||
struct irq_desc *desc = irq_to_desc(irq);
|
||||
|
||||
desc->chip->mask(irq);
|
||||
desc->irq_data.chip->mask(irq);
|
||||
desc->status |= IRQ_MASKED;
|
||||
}
|
||||
|
||||
@ -350,28 +350,28 @@ void irq_chip_set_defaults(struct irq_chip *chip)
|
||||
|
||||
static inline void mask_ack_irq(struct irq_desc *desc, int irq)
|
||||
{
|
||||
if (desc->chip->mask_ack)
|
||||
desc->chip->mask_ack(irq);
|
||||
if (desc->irq_data.chip->mask_ack)
|
||||
desc->irq_data.chip->mask_ack(irq);
|
||||
else {
|
||||
desc->chip->mask(irq);
|
||||
if (desc->chip->ack)
|
||||
desc->chip->ack(irq);
|
||||
desc->irq_data.chip->mask(irq);
|
||||
if (desc->irq_data.chip->ack)
|
||||
desc->irq_data.chip->ack(irq);
|
||||
}
|
||||
desc->status |= IRQ_MASKED;
|
||||
}
|
||||
|
||||
static inline void mask_irq(struct irq_desc *desc, int irq)
|
||||
{
|
||||
if (desc->chip->mask) {
|
||||
desc->chip->mask(irq);
|
||||
if (desc->irq_data.chip->mask) {
|
||||
desc->irq_data.chip->mask(irq);
|
||||
desc->status |= IRQ_MASKED;
|
||||
}
|
||||
}
|
||||
|
||||
static inline void unmask_irq(struct irq_desc *desc, int irq)
|
||||
{
|
||||
if (desc->chip->unmask) {
|
||||
desc->chip->unmask(irq);
|
||||
if (desc->irq_data.chip->unmask) {
|
||||
desc->irq_data.chip->unmask(irq);
|
||||
desc->status &= ~IRQ_MASKED;
|
||||
}
|
||||
}
|
||||
@ -552,7 +552,7 @@ handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc)
|
||||
raw_spin_lock(&desc->lock);
|
||||
desc->status &= ~IRQ_INPROGRESS;
|
||||
out:
|
||||
desc->chip->eoi(irq);
|
||||
desc->irq_data.chip->eoi(irq);
|
||||
|
||||
raw_spin_unlock(&desc->lock);
|
||||
}
|
||||
@ -594,8 +594,8 @@ handle_edge_irq(unsigned int irq, struct irq_desc *desc)
|
||||
kstat_incr_irqs_this_cpu(irq, desc);
|
||||
|
||||
/* Start handling the irq */
|
||||
if (desc->chip->ack)
|
||||
desc->chip->ack(irq);
|
||||
if (desc->irq_data.chip->ack)
|
||||
desc->irq_data.chip->ack(irq);
|
||||
|
||||
/* Mark the IRQ currently in progress.*/
|
||||
desc->status |= IRQ_INPROGRESS;
|
||||
@ -648,15 +648,15 @@ handle_percpu_irq(unsigned int irq, struct irq_desc *desc)
|
||||
|
||||
kstat_incr_irqs_this_cpu(irq, desc);
|
||||
|
||||
if (desc->chip->ack)
|
||||
desc->chip->ack(irq);
|
||||
if (desc->irq_data.chip->ack)
|
||||
desc->irq_data.chip->ack(irq);
|
||||
|
||||
action_ret = handle_IRQ_event(irq, desc->action);
|
||||
if (!noirqdebug)
|
||||
note_interrupt(irq, desc, action_ret);
|
||||
|
||||
if (desc->chip->eoi)
|
||||
desc->chip->eoi(irq);
|
||||
if (desc->irq_data.chip->eoi)
|
||||
desc->irq_data.chip->eoi(irq);
|
||||
}
|
||||
|
||||
void
|
||||
@ -674,7 +674,7 @@ __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained,
|
||||
|
||||
if (!handle)
|
||||
handle = handle_bad_irq;
|
||||
else if (desc->chip == &no_irq_chip) {
|
||||
else if (desc->irq_data.chip == &no_irq_chip) {
|
||||
printk(KERN_WARNING "Trying to install %sinterrupt handler "
|
||||
"for IRQ%d\n", is_chained ? "chained " : "", irq);
|
||||
/*
|
||||
@ -684,7 +684,7 @@ __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained,
|
||||
* prevent us to setup the interrupt at all. Switch it to
|
||||
* dummy_irq_chip for easy transition.
|
||||
*/
|
||||
desc->chip = &dummy_irq_chip;
|
||||
desc->irq_data.chip = &dummy_irq_chip;
|
||||
}
|
||||
|
||||
chip_bus_lock(irq, desc);
|
||||
@ -692,7 +692,7 @@ __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained,
|
||||
|
||||
/* Uninstall? */
|
||||
if (handle == handle_bad_irq) {
|
||||
if (desc->chip != &no_irq_chip)
|
||||
if (desc->irq_data.chip != &no_irq_chip)
|
||||
mask_ack_irq(desc, irq);
|
||||
desc->status |= IRQ_DISABLED;
|
||||
desc->depth = 1;
|
||||
@ -704,7 +704,7 @@ __set_irq_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained,
|
||||
desc->status &= ~IRQ_DISABLED;
|
||||
desc->status |= IRQ_NOREQUEST | IRQ_NOPROBE;
|
||||
desc->depth = 0;
|
||||
desc->chip->startup(irq);
|
||||
desc->irq_data.chip->startup(irq);
|
||||
}
|
||||
raw_spin_unlock_irqrestore(&desc->lock, flags);
|
||||
chip_bus_sync_unlock(irq, desc);
|
||||
|
Reference in New Issue
Block a user