Re: [PATCH] rk808: fix RK818_IRQ_DISCHG_ILIM initializer

Andy Yan
2016-09-14T00:49:15Z

Hi:

On 2016年09月13日 18:48, Lee Jones wrote:
> On Tue, 06 Sep 2016, Arnd Bergmann wrote:
>
>> When building with -Woverride-init, we get a warning about an incorrect
>> initializer:
>>
>> drivers/mfd/rk808.c:244:8: error: initialized field overwritten [-Werror=override-init]
>> [RK818_IRQ_DISCHG_ILIM] = {
>>
>> This is clearly a mistake, as both RK818_IRQ_DISCHG_ILIM and RK818_IRQ_USB_OV
>> are defined as '7', but they refer to different register bits. Changing
>> RK818_IRQ_DISCHG_ILIM to 15 is consistent with how all other 14 interrupts are
>> handled here, so I'm assuming this is what it should have been.
>>
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>> Fixes: 2eedcbfc0612 ("mfd: rk808: Add RK818 support")
>> ---
>> include/linux/mfd/rk808.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
> I would like someone who is in possession of a datasheet to confirm
> this.

According to the datasheet, the RK818_IRQ_USB_OV is in bit 7 of
INT_STS_REG1(0x4c) and RK818_IRQ_DISCHG_ILIM is in bit 7 of
INT_STS_REG2(0x4e), so Arnd's change is right.

Thanks.
>> diff --git a/include/linux/mfd/rk808.h b/include/linux/mfd/rk808.h
>> index fc5db6fcb57d..6d435a3c06bc 100644
>> --- a/include/linux/mfd/rk808.h
>> +++ b/include/linux/mfd/rk808.h
>> @@ -244,7 +244,7 @@ enum rk818_reg {
>> #define RK818_IRQ_CHG_TS1 12
>> #define RK818_IRQ_TS2 13
>> #define RK818_IRQ_CHG_CVTLIM 14
>> -#define RK818_IRQ_DISCHG_ILIM 7
>> +#define RK818_IRQ_DISCHG_ILIM 15
>>
>> #define RK818_IRQ_VOUT_LO_MSK BIT(0)
>> #define RK818_IRQ_VB_LO_MSK BIT(1)