From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 16860C49EA4 for ; Tue, 15 Jun 2021 21:09:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F36EF613C7 for ; Tue, 15 Jun 2021 21:09:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231410AbhFOVLU (ORCPT ); Tue, 15 Jun 2021 17:11:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230144AbhFOVLT (ORCPT ); Tue, 15 Jun 2021 17:11:19 -0400 Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:32c8:5054:ff:fe00:142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 54089C061574 for ; Tue, 15 Jun 2021 14:09:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=0oTEhlDnij9n/RndxAoqoHMN78YObUOQ3meAlhjofgM=; b=GFyFWTyLfWKlLdVpuOO/yYuDx vyYRkkIBOrsKCw2q0pFuBNK+a2fhzOuvWQnvv6/1soYWz5Rdy07yHfDXGdhg+cwNVpKG/x0p/SgdG h/3BmriGlbVzxJOAG1uDQ4rDo9txwB0ZeaINWJHiBoyDDsaFDNL2e87dhVS/mC1SQyq/lVK+1WcwX TL5nN7PMPId7gwUAvVFiOGtE0Iz2Hg+B2ZHVCPXyTof+r+RPTttdjCj/jEaEZFCUkwiphgu0RHM59 8X/vk+hLtFiKSVFRrp8s0N9GG8RyoTtcZ1XkQr5SCVbbDb/WO4OYx0vSaU3pH9k1nMz0LhystAJ07 uRZjAwhHQ==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:45040) by pandora.armlinux.org.uk with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ltGJ3-0006Ce-MQ; Tue, 15 Jun 2021 22:09:09 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1ltGJ1-0005Ms-Uc; Tue, 15 Jun 2021 22:09:07 +0100 Date: Tue, 15 Jun 2021 22:09:07 +0100 From: "Russell King (Oracle)" To: Andrew Lunn Cc: Ioana Ciornei , davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org, calvin.johnson@oss.nxp.com, hkallweit1@gmail.com, Ioana Ciornei Subject: Re: [PATCH net-next] mdio: mdiobus: setup of_node for the MDIO device Message-ID: <20210615210907.GY22278@shell.armlinux.org.uk> References: <20210615154401.1274322-1-ciorneiioana@gmail.com> <20210615171330.GW22278@shell.armlinux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Sender: Russell King (Oracle) Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Tue, Jun 15, 2021 at 08:31:06PM +0200, Andrew Lunn wrote: > On Tue, Jun 15, 2021 at 06:13:31PM +0100, Russell King (Oracle) wrote: > > On Tue, Jun 15, 2021 at 06:44:01PM +0300, Ioana Ciornei wrote: > > > From: Ioana Ciornei > > > > > > By mistake, the of_node of the MDIO device was not setup in the patch > > > linked below. As a consequence, any PHY driver that depends on the > > > of_node in its probe callback was not be able to successfully finish its > > > probe on a PHY, thus the Generic PHY driver was used instead. > > > > > > Fix this by actually setting up the of_node. > > > > > > Fixes: bc1bee3b87ee ("net: mdiobus: Introduce fwnode_mdiobus_register_phy()") > > > Signed-off-by: Ioana Ciornei > > > --- > > > drivers/net/mdio/fwnode_mdio.c | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/drivers/net/mdio/fwnode_mdio.c b/drivers/net/mdio/fwnode_mdio.c > > > index e96766da8de4..283ddb1185bd 100644 > > > --- a/drivers/net/mdio/fwnode_mdio.c > > > +++ b/drivers/net/mdio/fwnode_mdio.c > > > @@ -65,6 +65,7 @@ int fwnode_mdiobus_phy_device_register(struct mii_bus *mdio, > > > * can be looked up later > > > */ > > > fwnode_handle_get(child); > > > + phy->mdio.dev.of_node = to_of_node(child); > > > phy->mdio.dev.fwnode = child; > > > > Yes, this is something that was missed, but let's first look at what > > other places to when setting up a device: > > > > pdev->dev.fwnode = pdevinfo->fwnode; > > pdev->dev.of_node = of_node_get(to_of_node(pdev->dev.fwnode)); > > pdev->dev.of_node_reused = pdevinfo->of_node_reused; > > > > dev->dev.of_node = of_node_get(np); > > dev->dev.fwnode = &np->fwnode; > > > > dev->dev.of_node = of_node_get(node); > > dev->dev.fwnode = &node->fwnode; > > > > That seems to be pretty clear that an of_node_get() is also needed. > > I think it also shows we have very little consistency, and the recent > patchset needs a bit of cleanup. Maybe yet another helper which when > passed a struct device * and a node pointer, it sets both values? I do like that idea - maybe a couple of helpers, one that takes the of_node for a struct device, and another that takes a fwnode and does the appropriate stuff. Note that platform_device_release() does this: of_node_put(pa->pdev.dev.of_node); which is currently fine, because platform devices appear to only have their DT refcount increased. From what I can tell from looking at drivers/acpi/arm64/iort.c, ACPI fwnodes don't look like they're refcounted. Seems we're wading into something of a mess here. :( -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!