diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/platforms/86xx/gef_pic.c | 22 | ||||
-rw-r--r-- | arch/powerpc/platforms/86xx/pic.c | 5 |
2 files changed, 15 insertions, 12 deletions
diff --git a/arch/powerpc/platforms/86xx/gef_pic.c b/arch/powerpc/platforms/86xx/gef_pic.c index 6df9e2561c06..0adfe3b740cd 100644 --- a/arch/powerpc/platforms/86xx/gef_pic.c +++ b/arch/powerpc/platforms/86xx/gef_pic.c | |||
@@ -95,6 +95,7 @@ static int gef_pic_cascade_irq; | |||
95 | 95 | ||
96 | void gef_pic_cascade(unsigned int irq, struct irq_desc *desc) | 96 | void gef_pic_cascade(unsigned int irq, struct irq_desc *desc) |
97 | { | 97 | { |
98 | struct irq_chip *chip = get_irq_desc_chip(desc); | ||
98 | unsigned int cascade_irq; | 99 | unsigned int cascade_irq; |
99 | 100 | ||
100 | /* | 101 | /* |
@@ -106,17 +107,16 @@ void gef_pic_cascade(unsigned int irq, struct irq_desc *desc) | |||
106 | if (cascade_irq != NO_IRQ) | 107 | if (cascade_irq != NO_IRQ) |
107 | generic_handle_irq(cascade_irq); | 108 | generic_handle_irq(cascade_irq); |
108 | 109 | ||
109 | desc->chip->eoi(irq); | 110 | chip->irq_eoi(&desc->irq_data); |
110 | |||
111 | } | 111 | } |
112 | 112 | ||
113 | static void gef_pic_mask(unsigned int virq) | 113 | static void gef_pic_mask(struct irq_data *d) |
114 | { | 114 | { |
115 | unsigned long flags; | 115 | unsigned long flags; |
116 | unsigned int hwirq; | 116 | unsigned int hwirq; |
117 | u32 mask; | 117 | u32 mask; |
118 | 118 | ||
119 | hwirq = gef_irq_to_hw(virq); | 119 | hwirq = gef_irq_to_hw(d->irq); |
120 | 120 | ||
121 | raw_spin_lock_irqsave(&gef_pic_lock, flags); | 121 | raw_spin_lock_irqsave(&gef_pic_lock, flags); |
122 | mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0)); | 122 | mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0)); |
@@ -125,21 +125,21 @@ static void gef_pic_mask(unsigned int virq) | |||
125 | raw_spin_unlock_irqrestore(&gef_pic_lock, flags); | 125 | raw_spin_unlock_irqrestore(&gef_pic_lock, flags); |
126 | } | 126 | } |
127 | 127 | ||
128 | static void gef_pic_mask_ack(unsigned int virq) | 128 | static void gef_pic_mask_ack(struct irq_data *d) |
129 | { | 129 | { |
130 | /* Don't think we actually have to do anything to ack an interrupt, | 130 | /* Don't think we actually have to do anything to ack an interrupt, |
131 | * we just need to clear down the devices interrupt and it will go away | 131 | * we just need to clear down the devices interrupt and it will go away |
132 | */ | 132 | */ |
133 | gef_pic_mask(virq); | 133 | gef_pic_mask(d); |
134 | } | 134 | } |
135 | 135 | ||
136 | static void gef_pic_unmask(unsigned int virq) | 136 | static void gef_pic_unmask(struct irq_data *d) |
137 | { | 137 | { |
138 | unsigned long flags; | 138 | unsigned long flags; |
139 | unsigned int hwirq; | 139 | unsigned int hwirq; |
140 | u32 mask; | 140 | u32 mask; |
141 | 141 | ||
142 | hwirq = gef_irq_to_hw(virq); | 142 | hwirq = gef_irq_to_hw(d->irq); |
143 | 143 | ||
144 | raw_spin_lock_irqsave(&gef_pic_lock, flags); | 144 | raw_spin_lock_irqsave(&gef_pic_lock, flags); |
145 | mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0)); | 145 | mask = in_be32(gef_pic_irq_reg_base + GEF_PIC_INTR_MASK(0)); |
@@ -150,9 +150,9 @@ static void gef_pic_unmask(unsigned int virq) | |||
150 | 150 | ||
151 | static struct irq_chip gef_pic_chip = { | 151 | static struct irq_chip gef_pic_chip = { |
152 | .name = "gefp", | 152 | .name = "gefp", |
153 | .mask = gef_pic_mask, | 153 | .irq_mask = gef_pic_mask, |
154 | .mask_ack = gef_pic_mask_ack, | 154 | .irq_mask_ack = gef_pic_mask_ack, |
155 | .unmask = gef_pic_unmask, | 155 | .irq_unmask = gef_pic_unmask, |
156 | }; | 156 | }; |
157 | 157 | ||
158 | 158 | ||
diff --git a/arch/powerpc/platforms/86xx/pic.c b/arch/powerpc/platforms/86xx/pic.c index 668275d9e668..cbe33639b478 100644 --- a/arch/powerpc/platforms/86xx/pic.c +++ b/arch/powerpc/platforms/86xx/pic.c | |||
@@ -19,10 +19,13 @@ | |||
19 | #ifdef CONFIG_PPC_I8259 | 19 | #ifdef CONFIG_PPC_I8259 |
20 | static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc) | 20 | static void mpc86xx_8259_cascade(unsigned int irq, struct irq_desc *desc) |
21 | { | 21 | { |
22 | struct irq_chip *chip = get_irq_desc_chip(desc); | ||
22 | unsigned int cascade_irq = i8259_irq(); | 23 | unsigned int cascade_irq = i8259_irq(); |
24 | |||
23 | if (cascade_irq != NO_IRQ) | 25 | if (cascade_irq != NO_IRQ) |
24 | generic_handle_irq(cascade_irq); | 26 | generic_handle_irq(cascade_irq); |
25 | desc->chip->eoi(irq); | 27 | |
28 | chip->irq_eoi(&desc->irq_data); | ||
26 | } | 29 | } |
27 | #endif /* CONFIG_PPC_I8259 */ | 30 | #endif /* CONFIG_PPC_I8259 */ |
28 | 31 | ||