Example #1
0
static unsigned int sys_irq_startup(struct irq_data *d)
{  
// 	unsigned long chip_id;
//	unsigned long tmp_u32;
	
	unsigned int irq = d->irq;
	printk("in sys_irq_startup (irq: %d).\n",irq);

#if 0	
	tmp_u32 = *(volatile unsigned long*)0xB8000000;
	chip_id = tmp_u32 >> 16;	
	if (chip_id == 0x3602)	// 3603 interrupt polarity is ok, do nothing
	{
		if (irq >= 40) {
			*(u32 *)(0xB800002C) |= (u32)(1<<(irq - 32 - sys_irq_base));	/* Set polarity */
		}
		else {
			*(u32 *)(0xB8000028) |= (u32)(1<<(irq - sys_irq_base));	/* Set polarity */
		}
	}
#endif

	sys_irq_enable(d);

	return 0;
}
Example #2
0
static void sys_irq_end(struct irq_data *d)
{
	//printk("in sys_irq_end (irq: %d).\n",irq);
	
	if(!(d->state_use_accessors & (IRQD_IRQ_DISABLED | IRQD_IRQ_INPROGRESS)))
	    sys_irq_enable(d);
}
Example #3
0
static void
sys_irq_end(unsigned int irq)
{
	if(!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
		sys_irq_enable(irq);
}
Example #4
0
static unsigned int
sys_irq_startup(unsigned int irq)
{
	sys_irq_enable(irq);
	return 0;
}