#ifdef CONFIG_ARCH_OMAP1510 
#ifdef CONFIG_ARCH_OMAP15XX 
static void gpio_irq_handler(unsigned int irq, struct irqdesc *desc,			     struct pt_regs *regs){	void __iomem *isr_reg = NULL;	u32 isr;	unsigned int gpio_irq;	struct gpio_bank *bank;	desc->chip->ack(irq);	bank = (struct gpio_bank *) desc->data;	if (bank->method == METHOD_MPUIO)		isr_reg = bank->base + OMAP_MPUIO_GPIO_INT;#ifdef CONFIG_ARCH_OMAP1510	if (bank->method == METHOD_GPIO_1510)		isr_reg = bank->base + OMAP1510_GPIO_INT_STATUS;#endif#if defined(CONFIG_ARCH_OMAP16XX)	if (bank->method == METHOD_GPIO_1610)		isr_reg = bank->base + OMAP1610_GPIO_IRQSTATUS1;#endif#ifdef CONFIG_ARCH_OMAP730	if (bank->method == METHOD_GPIO_730)		isr_reg = bank->base + OMAP730_GPIO_INT_STATUS;#endif#ifdef CONFIG_ARCH_OMAP24XX	if (bank->method == METHOD_GPIO_24XX)		isr_reg = bank->base + OMAP24XX_GPIO_IRQSTATUS1;#endif	while(1) {		isr = __raw_readl(isr_reg);		_enable_gpio_irqbank(bank, isr, 0);		_clear_gpio_irqbank(bank, isr);		_enable_gpio_irqbank(bank, isr, 1);		desc->chip->unmask(irq);		if (!isr)			break;		gpio_irq = bank->virtual_irq_start;		for (; isr != 0; isr >>= 1, gpio_irq++) {			struct irqdesc *d;			if (!(isr & 1))				continue;			d = irq_desc + gpio_irq;			desc_handle_irq(gpio_irq, d, regs);		}        }}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1a8bfa1eb998af6e650ad26201f7cae9f2a2fdc8/gpio.c/buggy/arch/arm/plat-omap/gpio.c