diff options
Diffstat (limited to 'drivers/parisc/gsc.c')
| -rw-r--r-- | drivers/parisc/gsc.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/parisc/gsc.c b/drivers/parisc/gsc.c index f7d088b897e..e76db9e4d50 100644 --- a/drivers/parisc/gsc.c +++ b/drivers/parisc/gsc.c @@ -108,7 +108,8 @@ int gsc_find_local_irq(unsigned int irq, int *global_irqs, int limit)  static void gsc_asic_disable_irq(unsigned int irq)  { -	struct gsc_asic *irq_dev = irq_desc[irq].chip_data; +	struct irq_desc *desc = irq_to_desc(irq); +	struct gsc_asic *irq_dev = desc->chip_data;  	int local_irq = gsc_find_local_irq(irq, irq_dev->global_irq, 32);  	u32 imr; @@ -123,7 +124,8 @@ static void gsc_asic_disable_irq(unsigned int irq)  static void gsc_asic_enable_irq(unsigned int irq)  { -	struct gsc_asic *irq_dev = irq_desc[irq].chip_data; +	struct irq_desc *desc = irq_to_desc(irq); +	struct gsc_asic *irq_dev = desc->chip_data;  	int local_irq = gsc_find_local_irq(irq, irq_dev->global_irq, 32);  	u32 imr; @@ -159,12 +161,14 @@ static struct hw_interrupt_type gsc_asic_interrupt_type = {  int gsc_assign_irq(struct hw_interrupt_type *type, void *data)  {  	static int irq = GSC_IRQ_BASE; +	struct irq_desc *desc;  	if (irq > GSC_IRQ_MAX)  		return NO_IRQ; -	irq_desc[irq].chip = type; -	irq_desc[irq].chip_data = data; +	desc = irq_to_desc(irq); +	desc->chip = type; +	desc->chip_data = data;  	return irq++;  }  |