[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4782de1fc6692a98bd6c267c2714325f@walle.cc>
Date: Tue, 28 Jun 2022 23:07:34 +0200
From: Michael Walle <michael@...le.cc>
To: Horatiu Vultur <horatiu.vultur@...rochip.com>
Cc: Andy Shevchenko <andy.shevchenko@...il.com>,
Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
ACPI Devel Maling List <linux-acpi@...r.kernel.org>,
devicetree <devicetree@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: fwnode_for_each_child_node() and OF backend discrepancy
Am 2022-06-28 22:52, schrieb Horatiu Vultur:
> The 06/28/2022 22:28, Andy Shevchenko wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know
>> the content is safe
>>
>> On Tue, Jun 28, 2022 at 5:17 PM Krzysztof Kozlowski
>> <krzysztof.kozlowski@...aro.org> wrote:
>> > On 28/06/2022 17:09, Michael Walle wrote:
>
> Hi,
>
> Sorry for joint this late.
>
>>
>> ...
>>
>> > > Mh. Assume a SoC with an integrated ethernet switch. Some ports
>> > > are externally connected, some don't. I'd think they should be disabled,
>> > > no? Until now, all bindings I know, treat them as disabled. But OTOH
>> > > you still need to do some configurations on them, like disable port
>> > > forwarding, disable them or whatever. So the hardware is present, but
>> > > it is not connected to anything.
>> >
>> > I see your point and the meaning is okay... except that drivers don't
>> > touch disabled nodes. If a device (with some address space) is disabled,
>> > you do not write there "please be power off". Here the case is a bit
>> > different, because I think ports do not have their own address space.
>> > Yet it contradicts the logic - something is disabled in DT and you
>> > expect to perform actual operations on it.
>>
>> You beat me up to this comment, I also see a contradiction of what
>> "disabled" means in your, Michael, case and what it should be.
>>
>> If you need to perform an operation on some piece of HW, it has not to
>> be disabled.
>>
>> Or, you may deduce them by knowing how many ports in hardware (this is
>> usually done not by counting the nodes, but by a property) and do
>> whatever you want on ones, you have not listed (by port_num) in the
>> array of parsed children.
>
> It is not possible to have a defined for the MAX number of ports that
> supported by lan966x. Which is 8. And assigned that define to
> num_phys_ports instead of counting the entries in DT?
You mean also for the lan9662? I'm pretty sure that doesn't
work. Have a look where num_phys_ports is used. One random
example:
https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/microchip/lan966x/lan966x_main.c#L874
So if your switch only has 4 ports, then I'd guess you'll
access a non-existing register.
-michael
Powered by blists - more mailing lists