Re: [PATCH 2/2] regmap: irq: do not write mask register if it isnot supported
From: Laxman Dewangan
Date: Thu Feb 14 2013 - 06:06:36 EST
On Wednesday 13 February 2013 07:50 PM, Mark Brown wrote:
*
for (i = 0; i < d->chip->num_regs; i++) {
+ if (!d->chip->mask_base)
+ goto skip_mask_reg_update;
+
Why is this inside the loop?
I'd also expect us to return an error if a caller tries to enable or
disable an interrupt, or possibly to give different ops to the IRQ
subsystem, rather than just silently claim we did what we were asked.
I tried to use regmap-irq for the gpio submodule and it has two sets of
register:
GPIOx_CNFG: bit[7:6] interrupt rising/falling.
GPIO_INT_STS where each bit shows the interrupt status whether it
occured or not.
There is no mask register.
In regmap-irq_thread() we see the interrupt status and compare against
mask enable buffer wther this is enabled or not and accordingly call the
handler.
hence I am still require irq_mask()/irq_unmask() to reflect the mask
with interrupt status and type for actually configuring the GPIOx_CNFG.
if I remove the mask_buf at all then how do we tell the int_sts register
is corresponding to which gpio handler?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/