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/