lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Wed, 18 Jul 2012 09:50:13 +0900
From:	Chanwoo Choi <cw00.choi@...sung.com>
To:	Mark Brown <broonie@...nsource.wolfsonmicro.com>
Cc:	sameo@...ux.intel.com, myungjoo.ham@...sung.com,
	kyungmin.park@...sung.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mfd: MAX77693: Fix bug of interrupt handlding for MAX77693
 devices

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 majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ