genirq: Add new functions to dummy chips

The compat functions go away when the core code is converted.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Thomas Gleixner 2010-10-01 14:44:58 +02:00
parent f8822657e7
commit a77c463591
2 changed files with 44 additions and 17 deletions

View file

@ -291,7 +291,15 @@ void clear_kstat_irqs(struct irq_desc *desc)
* What should we do if we get a hw irq event on an illegal vector? * What should we do if we get a hw irq event on an illegal vector?
* Each architecture has to answer this themself. * Each architecture has to answer this themself.
*/ */
static void ack_bad(unsigned int irq) static void ack_bad(struct irq_data *data)
{
struct irq_desc *desc = irq_data_to_desc(data);
print_irq_desc(data->irq, desc);
ack_bad_irq(data->irq);
}
static void compat_ack_bad(unsigned int irq)
{ {
struct irq_desc *desc = irq_to_desc(irq); struct irq_desc *desc = irq_to_desc(irq);
@ -302,11 +310,16 @@ static void ack_bad(unsigned int irq)
/* /*
* NOP functions * NOP functions
*/ */
static void noop(unsigned int irq) static void noop(struct irq_data *data) { }
static unsigned int noop_ret(struct irq_data *data)
{ {
return 0;
} }
static unsigned int noop_ret(unsigned int irq) static void compat_noop(unsigned int irq) { }
static unsigned int compat_noop_ret(unsigned int irq)
{ {
return 0; return 0;
} }
@ -316,12 +329,17 @@ static unsigned int noop_ret(unsigned int irq)
*/ */
struct irq_chip no_irq_chip = { struct irq_chip no_irq_chip = {
.name = "none", .name = "none",
.startup = noop_ret, .irq_startup = noop_ret,
.shutdown = noop, .irq_shutdown = noop,
.enable = noop, .irq_enable = noop,
.disable = noop, .irq_disable = noop,
.ack = ack_bad, .irq_ack = ack_bad,
.end = noop, .startup = compat_noop_ret,
.shutdown = compat_noop,
.enable = compat_noop,
.disable = compat_noop,
.ack = compat_ack_bad,
.end = compat_noop,
}; };
/* /*
@ -330,14 +348,21 @@ struct irq_chip no_irq_chip = {
*/ */
struct irq_chip dummy_irq_chip = { struct irq_chip dummy_irq_chip = {
.name = "dummy", .name = "dummy",
.startup = noop_ret, .irq_startup = noop_ret,
.shutdown = noop, .irq_shutdown = noop,
.enable = noop, .irq_enable = noop,
.disable = noop, .irq_disable = noop,
.ack = noop, .irq_ack = noop,
.mask = noop, .irq_mask = noop,
.unmask = noop, .irq_unmask = noop,
.end = noop, .startup = compat_noop_ret,
.shutdown = compat_noop,
.enable = compat_noop,
.disable = compat_noop,
.ack = compat_noop,
.mask = compat_noop,
.unmask = compat_noop,
.end = compat_noop,
}; };
/* /*

View file

@ -4,6 +4,8 @@
extern int noirqdebug; extern int noirqdebug;
#define irq_data_to_desc(data) container_of(data, struct irq_desc, irq_data)
/* Set default functions for irq_chip structures: */ /* Set default functions for irq_chip structures: */
extern void irq_chip_set_defaults(struct irq_chip *chip); extern void irq_chip_set_defaults(struct irq_chip *chip);