vlynq: Convert irq functions

Convert to the new irq_chip functions and the new namespace.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Florian Fainelli <florian@openwrt.org>
LKML-Reference: <alpine.LFD.2.00.1103252150180.31464@localhost6.localdomain6>

+31 -33
+31 -33
drivers/vlynq/vlynq.c
··· 135 msleep(5); 136 } 137 138 - static void vlynq_irq_unmask(unsigned int irq) 139 { 140 - u32 val; 141 - struct vlynq_device *dev = get_irq_chip_data(irq); 142 int virq; 143 144 BUG_ON(!dev); 145 - virq = irq - dev->irq_start; 146 val = readl(&dev->remote->int_device[virq >> 2]); 147 val |= (VINT_ENABLE | virq) << VINT_OFFSET(virq); 148 writel(val, &dev->remote->int_device[virq >> 2]); 149 } 150 151 - static void vlynq_irq_mask(unsigned int irq) 152 { 153 - u32 val; 154 - struct vlynq_device *dev = get_irq_chip_data(irq); 155 int virq; 156 157 BUG_ON(!dev); 158 - virq = irq - dev->irq_start; 159 val = readl(&dev->remote->int_device[virq >> 2]); 160 val &= ~(VINT_ENABLE << VINT_OFFSET(virq)); 161 writel(val, &dev->remote->int_device[virq >> 2]); 162 } 163 164 - static int vlynq_irq_type(unsigned int irq, unsigned int flow_type) 165 { 166 - u32 val; 167 - struct vlynq_device *dev = get_irq_chip_data(irq); 168 int virq; 169 170 BUG_ON(!dev); 171 - virq = irq - dev->irq_start; 172 val = readl(&dev->remote->int_device[virq >> 2]); 173 switch (flow_type & IRQ_TYPE_SENSE_MASK) { 174 case IRQ_TYPE_EDGE_RISING: ··· 192 return 0; 193 } 194 195 - static void vlynq_local_ack(unsigned int irq) 196 { 197 - struct vlynq_device *dev = get_irq_chip_data(irq); 198 - 199 u32 status = readl(&dev->local->status); 200 201 pr_debug("%s: local status: 0x%08x\n", ··· 202 writel(status, &dev->local->status); 203 } 204 205 - static void vlynq_remote_ack(unsigned int irq) 206 { 207 - struct vlynq_device *dev = get_irq_chip_data(irq); 208 - 209 u32 status = readl(&dev->remote->status); 210 211 pr_debug("%s: remote status: 0x%08x\n", ··· 236 237 static struct irq_chip vlynq_irq_chip = { 238 .name = "vlynq", 239 - .unmask = vlynq_irq_unmask, 240 - .mask = vlynq_irq_mask, 241 - .set_type = vlynq_irq_type, 242 }; 243 244 static struct irq_chip vlynq_local_chip = { 245 .name = "vlynq local error", 246 - .unmask = vlynq_irq_unmask, 247 - .mask = vlynq_irq_mask, 248 - .ack = vlynq_local_ack, 249 }; 250 251 static struct irq_chip vlynq_remote_chip = { 252 .name = "vlynq local error", 253 - .unmask = vlynq_irq_unmask, 254 - .mask = vlynq_irq_mask, 255 - .ack = vlynq_remote_ack, 256 }; 257 258 static int vlynq_setup_irq(struct vlynq_device *dev) ··· 289 for (i = dev->irq_start; i <= dev->irq_end; i++) { 290 virq = i - dev->irq_start; 291 if (virq == dev->local_irq) { 292 - set_irq_chip_and_handler(i, &vlynq_local_chip, 293 handle_level_irq); 294 - set_irq_chip_data(i, dev); 295 } else if (virq == dev->remote_irq) { 296 - set_irq_chip_and_handler(i, &vlynq_remote_chip, 297 handle_level_irq); 298 - set_irq_chip_data(i, dev); 299 } else { 300 - set_irq_chip_and_handler(i, &vlynq_irq_chip, 301 handle_simple_irq); 302 - set_irq_chip_data(i, dev); 303 writel(0, &dev->remote->int_device[virq >> 2]); 304 } 305 }
··· 135 msleep(5); 136 } 137 138 + static void vlynq_irq_unmask(struct irq_data *d) 139 { 140 + struct vlynq_device *dev = irq_data_get_irq_chip_data(d); 141 int virq; 142 + u32 val; 143 144 BUG_ON(!dev); 145 + virq = d->irq - dev->irq_start; 146 val = readl(&dev->remote->int_device[virq >> 2]); 147 val |= (VINT_ENABLE | virq) << VINT_OFFSET(virq); 148 writel(val, &dev->remote->int_device[virq >> 2]); 149 } 150 151 + static void vlynq_irq_mask(struct irq_data *d) 152 { 153 + struct vlynq_device *dev = irq_data_get_irq_chip_data(d); 154 int virq; 155 + u32 val; 156 157 BUG_ON(!dev); 158 + virq = d->irq - dev->irq_start; 159 val = readl(&dev->remote->int_device[virq >> 2]); 160 val &= ~(VINT_ENABLE << VINT_OFFSET(virq)); 161 writel(val, &dev->remote->int_device[virq >> 2]); 162 } 163 164 + static int vlynq_irq_type(struct irq_data *d, unsigned int flow_type) 165 { 166 + struct vlynq_device *dev = irq_data_get_irq_chip_data(d); 167 int virq; 168 + u32 val; 169 170 BUG_ON(!dev); 171 + virq = d->irq - dev->irq_start; 172 val = readl(&dev->remote->int_device[virq >> 2]); 173 switch (flow_type & IRQ_TYPE_SENSE_MASK) { 174 case IRQ_TYPE_EDGE_RISING: ··· 192 return 0; 193 } 194 195 + static void vlynq_local_ack(struct irq_data *d) 196 { 197 + struct vlynq_device *dev = irq_data_get_irq_chip_data(d); 198 u32 status = readl(&dev->local->status); 199 200 pr_debug("%s: local status: 0x%08x\n", ··· 203 writel(status, &dev->local->status); 204 } 205 206 + static void vlynq_remote_ack(struct irq_data *d) 207 { 208 + struct vlynq_device *dev = irq_data_get_irq_chip_data(d); 209 u32 status = readl(&dev->remote->status); 210 211 pr_debug("%s: remote status: 0x%08x\n", ··· 238 239 static struct irq_chip vlynq_irq_chip = { 240 .name = "vlynq", 241 + .irq_unmask = vlynq_irq_unmask, 242 + .irq_mask = vlynq_irq_mask, 243 + .irq_set_type = vlynq_irq_type, 244 }; 245 246 static struct irq_chip vlynq_local_chip = { 247 .name = "vlynq local error", 248 + .irq_unmask = vlynq_irq_unmask, 249 + .irq_mask = vlynq_irq_mask, 250 + .irq_ack = vlynq_local_ack, 251 }; 252 253 static struct irq_chip vlynq_remote_chip = { 254 .name = "vlynq local error", 255 + .irq_unmask = vlynq_irq_unmask, 256 + .irq_mask = vlynq_irq_mask, 257 + .irq_ack = vlynq_remote_ack, 258 }; 259 260 static int vlynq_setup_irq(struct vlynq_device *dev) ··· 291 for (i = dev->irq_start; i <= dev->irq_end; i++) { 292 virq = i - dev->irq_start; 293 if (virq == dev->local_irq) { 294 + irq_set_chip_and_handler(i, &vlynq_local_chip, 295 handle_level_irq); 296 + irq_set_chip_data(i, dev); 297 } else if (virq == dev->remote_irq) { 298 + irq_set_chip_and_handler(i, &vlynq_remote_chip, 299 handle_level_irq); 300 + irq_set_chip_data(i, dev); 301 } else { 302 + irq_set_chip_and_handler(i, &vlynq_irq_chip, 303 handle_simple_irq); 304 + irq_set_chip_data(i, dev); 305 writel(0, &dev->remote->int_device[virq >> 2]); 306 } 307 }