From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Tue, 27 Apr 2021 07:19:42 +0200 Subject: [PATCH 6/6] net: octeontx: smi: fix mii probe In-Reply-To: References: <20210326000737.9764-1-tharvey@gateworks.com> <20210326000737.9764-7-tharvey@gateworks.com> <3e01286d-e9b2-7445-b626-b03eaa1a8a95@denx.de> Message-ID: <37bcc0a1-2f01-91c7-ae6e-9cefbe650a28@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Tim, On 26.03.21 16:55, Tim Harvey wrote: > On Thu, Mar 25, 2021 at 11:48 PM Stefan Roese 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 >> >> Reviewed-by: Stefan Roese >> >> 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