[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d11873a1-b552-71f5-1100-7464687f8bb4@linaro.org>
Date: Fri, 25 Aug 2023 14:56:33 +0200
From: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
To: Binbin Zhou <zhoubb.aaron@...il.com>
Cc: Binbin Zhou <zhoubinbin@...ngson.cn>,
Huacai Chen <chenhuacai@...ngson.cn>,
Thomas Gleixner <tglx@...utronix.de>,
Marc Zyngier <maz@...nel.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Conor Dooley <conor+dt@...nel.org>,
Huacai Chen <chenhuacai@...nel.org>,
loongson-kernel@...ts.loongnix.cn, devicetree@...r.kernel.org,
Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
Jiaxun Yang <jiaxun.yang@...goat.com>,
linux-mips@...r.kernel.org, diasyzhang@...cent.com,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] dt-bindings: interrupt-controller: loongson,liointc:
Fix warnings about liointc-2.0
On 24/08/2023 13:32, Binbin Zhou wrote:
> Hi Krzysztof:
>
> Thanks for your detailed reply.
>
> On Tue, Aug 22, 2023 at 4:30 PM Krzysztof Kozlowski
> <krzysztof.kozlowski@...aro.org> wrote:
>>
>> On 22/08/2023 10:13, Binbin Zhou wrote:
>>> Hi Krzysztof:
>>>
>>> Thanks for your detailed reply.
>>>
>>> On Tue, Aug 22, 2023 at 1:44 PM Krzysztof Kozlowski
>>> <krzysztof.kozlowski@...aro.org> wrote:
>>>>
>>>> On 21/08/2023 08:13, Binbin Zhou wrote:
>>>>> Since commit f4dee5d8e1fa ("dt-bindings: interrupt-controller: Add
>>>>> Loongson-2K1000 LIOINTC"), the loongson liointc supports configuring
>>>>> routes for 64-bit interrupt sources.
>>>>>
>>>>> For liointc-2.0, we need to define two liointc nodes in dts, one for
>>>>> "0-31" interrupt sources and the other for "32-63" interrupt sources.
>>>>> This applies to mips Loongson-2K1000.
>>>>>
>>>>> Unfortunately, there are some warnings about "loongson,liointc-2.0":
>>>>> 1. "interrupt-names" should be "required", the driver gets the parent
>>>>> interrupts through it.
>>>>
>>>> No, why? Parent? This does not make sense.
>>>
>>> This was noted in the v1 patch discussion. The liointc driver now gets
>>> the parent interrupt via of_irq_get_byname(), so I think the
>>> "interrupt-names" should be "required".
>>
>> of_irq_get_byname() does not give you parent interrupt, but the
>> interrupt. Why do you need parent interrupt and what is it?
>>
>>>
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/irqchip/irq-loongson-liointc.c?h=v6.5-rc6#n345
>>>
>>> static const char *const parent_names[] = {"int0", "int1", "int2", "int3"};
>>>
>>> for (i = 0; i < LIOINTC_NUM_PARENT; i++) {
>>> parent_irq[i] = of_irq_get_byname(node, parent_names[i]);
>>> if (parent_irq[i] > 0)
>>> have_parent = TRUE;
>>> }
>>> if (!have_parent)
>>> return -ENODEV;
>>
>> How requiring parents interrupt is related to other changes in this
>> file? One logical change, one patch.
>
> Yes, that was my mistake, whether or not the interrupt-names need to
> be "required" is another issue. It does not cause a check warning.
> I'll think about it some more.
>>
>> Anyway why did you do it and take it by names? Names here are basically
>> useless if they match indices, so just get interrupt by indices.
>
> There is a match between interrupts, interrupt names and interrupt maps:
>
> interrupt->interrupt name->interrupt map
> 2->int0->int_map[0]
> 3->int1->int_map[1]
> 4->int2->int_map[2]
> 5->int3->int_map[3]
>
> As part of the 2k1000 liointc1 node:
>
> liointc1: interrupt-controller@...11440 {
> ....
> interrupt-parent = <&cpuintc>;
> interrupts = <3>;
> interrupt-names = "int1";
>
> loongson,parent_int_map = <0x00000000>, /* int0 */
How did you sneak this property? The version - v2 - which was reviewed
by Rob:
https://lore.kernel.org/all/20190905144316.12527-7-jiaxun.yang@flygoat.com/
did not have it.
Now v3 suddenly appears with Rob's review and this property:
https://lore.kernel.org/all/20200112081416.722218-4-jiaxun.yang@flygoat.com/
Please help me understand this property appeared there and how did you
get it reviewed?
> <0xffffffff>, /* int1 */
> <0x00000000>, /* int2 */
> <0x00000000>; /* int3 */
So now you will keep bringing more hacks for a hacky property. No, this
cannot go on.
Best regards,
Krzysztof
Powered by blists - more mailing lists