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;
}
}
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)
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;
}
if (vlynq_linked(dev))
return vlynq_setup_irq(dev);
}
+
+ return -ENODEV;
}
void vlynq_device_disable(struct vlynq_device *dev)