d->handle(gpio_irq, d, regs); 
desc_handle_irq(gpio_irq, d, regs); 
static void gpio_irq_handler(unsigned int irq, struct irqdesc *desc,			     struct pt_regs *regs){	u32 isr_reg = 0;	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	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 (unlikely(!isr))		return;	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;		d->handle(gpio_irq, d, regs);	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/664399e1fbdceb18da9c9c5534dedd62327c63e8/gpio.c/buggy/arch/arm/plat-omap/gpio.c