X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/8c72b797b421258e17ad6f7afcbc2ab9105e8dc8..08c054f87ef8029e51097be4d7ec71117aa198e9:/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq.c diff --git a/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq.c b/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq.c index 80cb836d9..06097556d 100644 --- a/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq.c +++ b/target/linux/ar7-2.6/files/arch/mips/ar7/vlynq.c @@ -117,7 +117,7 @@ static void vlynq_irq_unmask(unsigned int irq) BUG_ON(!dev); virq = irq - dev->irq_start; val = dev->remote->int_device[virq >> 2]; - val |= VINT_ENABLE << VINT_OFFSET(virq); + val |= (VINT_ENABLE | virq) << VINT_OFFSET(virq); dev->remote->int_device[virq >> 2] = val; } @@ -196,10 +196,11 @@ static irqreturn_t vlynq_irq(int irq, void *dev_id) } static struct irq_chip vlynq_irq_chip = { + .typename = "VLYNQ", .name = "vlynq", .unmask = vlynq_irq_unmask, .mask = vlynq_irq_mask, - .set_type = vlynq_irq_type, + .set_type = vlynq_irq_type, }; static int vlynq_setup_irq(struct vlynq_device *dev) @@ -235,7 +236,7 @@ static int vlynq_setup_irq(struct vlynq_device *dev) dev->remote->int_device[i >> 2] = 0; } - if (request_irq(dev->irq, vlynq_irq, SA_SHIRQ, "AR7 VLYNQ", dev)) { + if (request_irq(dev->irq, vlynq_irq, SA_SHIRQ, "vlynq", dev)) { printk("%s: request_irq failed\n", dev->dev.bus_id); return -EAGAIN; } @@ -307,6 +308,8 @@ int vlynq_device_enable(struct vlynq_device *dev) if (vlynq_linked(dev)) return vlynq_setup_irq(dev); } + + return -ENODEV; } void vlynq_device_disable(struct vlynq_device *dev)