On Tue, Mar 30, 2010 at 4:58 PM, H Hartley Sweeten <hartleys@xxxxxxxxxxxxxxxxxxx> wrote: > On Tuesday, March 30, 2010 4:12 PM, Daniel Walker wrote: >> From: Daniel Walker <c_dwalke@xxxxxxxxxxx> ... >> + >> +static void msm_gpio_irq_ack(unsigned int irq) >> +{ >> + unsigned long irq_flags; >> + struct msm_gpio_chip *msm_chip = get_irq_chip_data(irq); >> + unsigned b; >> + >> + spin_lock_irqsave(&msm_chip->lock, irq_flags); >> + >> + b = 1U << (irq - FIRST_GPIO_IRQ - msm_chip->chip.base); > > Urk... That's a bit confusing... > > You might want to make this a macro or an inline function with some kind > of comment. > On a related note, why did you inline msm_gpio_clear_detect_status? It is used from two other functions. >> + >> +#if MSM_GPIO_BROKEN_INT_CLEAR >> + /* Save interrupts that already triggered before we loose them. */ >> + /* Any interrupt that triggers between the read of int_status */ >> + /* and the write to int_clear will still be lost though. */ >> + msm_chip->int_status_copy |= readl(msm_chip->regs.int_status); >> + msm_chip->int_status_copy &= ~b; >> +#endif >> + writel(b, msm_chip->regs.int_clear); >> + >> + msm_gpio_update_both_edge_detect(msm_chip); >> + spin_unlock_irqrestore(&msm_chip->lock, irq_flags); >> +} >> + ... -- Arve Hjønnevåg -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html