On 07/18/2012 04:14 AM, Mark Brown wrote: > On Tue, Jul 17, 2012 at 08:30:17AM +0900, Chanwoo Choi wrote: >> On 07/16/2012 10:36 PM, Mark Brown wrote: >>> On Mon, Jul 16, 2012 at 06:41:05PM +0900, Chanwoo Choi wrote: > >>>> This patch fix bug related to interrupt handling for MAX77693 devices. >>>> - Unmask interrupt masking bit for charger/flash/muic to revolve >>>> that interrupt isn't happened when external connector is attached. > >>> Shouldn't this be happening when the IRQ is requested? > >> The interrupt isn't happened when external connector is attached >> because muic interrupt of MAX77693 is masked on INTSRC_MASK( >> Interrupt Source Mask) register. So, I should set zero to muic interrupt >> masking bit of INTSRC_MASK before requesting IRQ. > > Right, but normally that unmasking happens in the unmask() callback of > the irq_chip which is called when the interrupt is requested. Why isn't > that working here?
As previous reply, Maxim MAX77693 has INTSRC_MASK(Interrput Source Mask, 0x23) which mask or unmask Charger/Top/Flash/MUIC interrupt. And MAX77693 has additional 'Interrupt Source Mask' for sub interrupt of each Charger/Top/Flash/MUIC device. In case of MUIC device, MUIC device has 16 sub interrupts and then MUIC device need separate Interrupt Source Mask(0x1,0x2,0x3) which is included in register map of MUIC i2c device and isn't equal to INTSRC_MASK(0x23). As you said, unmasking sub interrupt of MUIC is happened in unmask() callback using separate Interrupt Source Mask(0x1, 0x2, 0x3). The MAX77693 mfd driver handle only INTSRC_MASK(0x23) to activate Charger/Top/Flash/MUIC interrupt which isn't equal to sub interrupt of each device before requesting IRQ. If mfd driver wouldn't unmask Charger/Top/Flash/MUIC interrupt of INTSRC_MASK(0x23), it mean that Charger/Top/Flash/MUIC interrupt is inactive state and mfd driver can't get the any interrupt. Thank you, Chanwoo Choi -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

