/* "irq" really just serves to identify the device. Here is where we map this to the Cobalt APIC entry where it's physically wired. This is called via request_irq -> setup_irq -> irq_desc->startup()  */
static unsigned int startup_cobalt_irq(unsigned int irq)
/* "irq" really just serves to identify the device. Here is where we map this to the Cobalt APIC entry where it's physically wired. This is called via request_irq -> setup_irq -> irq_desc->startup()  */
static unsigned int startup_cobalt_irq(unsigned int irq)
{
	unsigned long flags;
	struct irq_desc *desc = irq_to_desc(irq);
	spin_lock_irqsave(&cobalt_lock, flags);
	if ((desc->status & (IRQ_DISABLED | IRQ_INPROGRESS | IRQ_WAITING)))
		desc->status &= ~(IRQ_DISABLED | IRQ_INPROGRESS | IRQ_WAITING);
	enable_cobalt_irq(irq);
	spin_unlock_irqrestore(&cobalt_lock, flags);
	return 0;
}