[PATCH 6/6] net: octeontx: smi: fix mii probe
Stefan Roese
sr at denx.de
Tue Apr 27 07:19:42 CEST 2021
Hi Tim,
On 26.03.21 16:55, Tim Harvey wrote:
> On Thu, Mar 25, 2021 at 11:48 PM Stefan Roese <sr at denx.de> wrote:
>>
>> On 26.03.21 01:07, Tim Harvey wrote:
>>> The fdt node offset is apparently not set properly when probed
>>> causing no MDIO busses to be found. Fix this by obtaining the
>>> offset.
>>>
>>> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
>>
>> Reviewed-by: Stefan Roese <sr at denx.de>
>>
>> Thanks,
>> Stefan
>>
>>> ---
>>> drivers/net/octeontx/smi.c | 2 ++
>>> 1 file changed, 2 insertions(+)
>>>
>>> diff --git a/drivers/net/octeontx/smi.c b/drivers/net/octeontx/smi.c
>>> index 91dcd05e4b..27f4423c6a 100644
>>> --- a/drivers/net/octeontx/smi.c
>>> +++ b/drivers/net/octeontx/smi.c
>>> @@ -325,6 +325,8 @@ int octeontx_smi_probe(struct udevice *dev)
>>> return -1;
>>> }
>>>
>>> + node = fdt_node_offset_by_compatible(gd->fdt_blob, -1,
>>> + "cavium,thunder-8890-mdio-nexus");
>>> fdt_for_each_subnode(subnode, gd->fdt_blob, node) {
>>> ret = fdt_node_check_compatible(gd->fdt_blob, subnode,
>>> "cavium,thunder-8890-mdio");
>>>
>
> Honestly this is the wrong fix for this issue and I'm hoping someone
> could educate me. I'm a bit confused at why there are several ways to
> work with dt (int offsets vs ofnodes which are unions of int offsets
> and node pointers???).
>
> The above patch was not needed previously so something changed in the
> ofnode field of struct udevice between v2019.10 and v2021.01.
>
> Simon, could you explain what the proper way to work with dev->ofnode
> in probe functions is to loop over subnodes?
This version is in mainline now. Tim, could you please re-visit this
and perhaps switch to using live tree API, as suggested by Suneel:
ofnode_for_each_subnode(subnode, dev_ofnode(dev)) {
ret = ofnode_device_is_compatible(subnode,
"cavium,thunder-8890-mdio");
Thanks,
Stefan
More information about the U-Boot
mailing list