Re: [PATCH v2 1/5] mfd: axp20x: AXP717: Fix missing IRQ status registers range

Andre Przywara
2024-06-13T09:48:38Z

Hi Lee,

On 12/06/2024 16:48, Lee Jones wrote:
> On Wed, 12 Jun 2024, Andre Przywara wrote:
>
>> Hi,
>>
>> On 12/06/2024 16:25, Lee Jones wrote:
>>> On Wed, 12 Jun 2024, Andre Przywara wrote:
>>>
>>>> Hi Lee,
>>>>
>>>> On 02/05/2024 10:39, Lee Jones wrote:
>>>>> On Thu, 18 Apr 2024, Andre Przywara wrote:
>>>>>
>>>>>> While we list the "IRQ status *and acknowledge*" registers as volatile,
>>>>>> they are missing from the writable range array, so acknowledging any
>>>>>> interrupts was met with an -EIO error.
>>>>>>
>>>>>> Add the five registers that hold those bits to the writable array.
>>>>>>
>>>>>> Fixes: b5bfc8ab2484 ("mfd: axp20x: Add support for AXP717 PMIC")
>>>>>> Reported-by: Chris Morgan <macromorgan@hotmail.com>
>>>>>> Signed-off-by: Andre Przywara <andre.przywara@arm.com>
>>>>>> ---
>>>>>> drivers/mfd/axp20x.c | 1 +
>>>>>> 1 file changed, 1 insertion(+)
>>>>>
>>>>> Acked-by: Lee Jones <lee@kernel.org>
>>>>
>>>> Can you please take just this patch as a fix for 6.10? This fixes the power
>>>> key operation.
>>>> This applies cleanly on top of v6.10-rc3, so there is no need for any extra
>>>> immutable branch or coordination with regulator.
>>>> (The same is true independently for patch 2/5, on the regulator side).
>>>
>>> What does the Fixes: commit break?
>>>
>>> Or is it the case that it never worked properly?
>>
>> The interrupt part never worked properly, but so far that's only needed for
>> the power key operation. Unfortunately that part wasn't tested properly
>> initially, so the patches were merged into your tree before that.
>
> This doesn't sounds like a -fixes candidate. I'll mark the set for v6.11.

Sorry, correction, this patch missing is actually fatal now, since we
have an interrupt connected in the DT (which wasn't there initially).
The code tries to clear all IRQs upon driver probe, which fails due to
regmap error-ing out. This makes the whole driver fail probing, and
since the AXP supplies basically every peripheral, the system is dead in
the water:

[ 1.173014] sunxi-rsb 7083000.rsb: RSB running at 3000000 Hz
[ 1.174996] axp20x-rsb sunxi-rsb-3a3: AXP20x variant AXP717 found
[ 1.198931] axp20x-rsb sunxi-rsb-3a3: Failed to ack 0x49: -5
[ 1.220878] axp20x-rsb sunxi-rsb-3a3: failed to add irq chip: -5
[ 1.235760] axp20x-rsb sunxi-rsb-3a3:

(Thanks to loki666@IRC for providing the log!)

This was discovered early, long before the merge window, and I was
actually hoping to have this patch squashed into the original series
still, but there was this immutable branch already.

So can you please take this as a fix for 6.10?

Cheers,
Andre