From patchwork Wed Oct 18 11:44:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Corentin Labbe X-Patchwork-Id: 827541 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=devicetree-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="PLCs1b3G"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yH9Kc5q0jz9t4X for ; Wed, 18 Oct 2017 22:47:48 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932691AbdJRLr2 (ORCPT ); Wed, 18 Oct 2017 07:47:28 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:50581 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932616AbdJRLrZ (ORCPT ); Wed, 18 Oct 2017 07:47:25 -0400 Received: by mail-wm0-f66.google.com with SMTP id u138so9489946wmu.5; Wed, 18 Oct 2017 04:47:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=tCZB/NGM+w1xoo97gT9wf+T7z4yiIOopH9ZToq6T5Cc=; b=PLCs1b3GKFfbjMJpWP8YihyMtm6unaMF2NYoU/HgMDizJtZUHGCxvpHFgbA7/jw19B BH4vE2jRLq7mwCZbuFaUghE0PVRW0FV3d2eVgRaTs/xoJwOWNb+KkOMrE7PlhCi2WF1s 9AaoshjPDyQwIhPlWY5A2GrOVdC9sR+qH9epNPB00yFYXhqfA0HiOJtEzRNY49ma8rlS Sk2MJbX7CWXD79t+XIcOoYmYg/Wgw0QbyBz1lCXogK2U8cwY4HiMbFY/ad22mzgRXhvr Vhyt279qxfJkSJMeKB/YJqURyPJrJvzsodVj+pp7cp5Qp6+nfzcURKEy5y8S4qPu+0ng EVfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=tCZB/NGM+w1xoo97gT9wf+T7z4yiIOopH9ZToq6T5Cc=; b=f9El9Wz51PuNwwnTYCNfXiIkA93TL/3Yle4lQvSdOAnsY3vUTQtlNZ4QeLJe5WKvIQ 3OxK5d/Xuu3f/d4IizeU1LuW8WdgaNjhLvR/w0MYaFWS/DIRzd44g5wGiShuV0v0x8Xs EPONERWgKcSrlFpDqpit9pcd+hHC4kX3j9E/fo5FYoP5VHeWQ166pqneFoluwHRR4fZ8 T1lyxhSXM1fGxtlLGFMr91CfgnmbbNVMMU5ZHzPh+A3ezq9balZ5GIWRbooqc+qULSmx b2ScFul7MG43xgPhtFI9iEmLcqe6u3J4btkIF47vuBbFyj87GXNZzOMzY3/DEixJWh1W WhiA== X-Gm-Message-State: AMCzsaVX9yoxUt15Edw9UA0z3SIY4ynSHagxgUVt5uxPhfHGVY8TH6/u L7G/GFLIALbRO5NmEDz8rv4= X-Google-Smtp-Source: ABhQp+QZYI3FivIz1BVvq5/0fsj3xebgOI1BYao3OwiVGj04GoriXYcVsT9dlPzrazZ6rPrLZ7h4Ug== X-Received: by 10.28.69.210 with SMTP id l79mr6160531wmi.117.1508327242795; Wed, 18 Oct 2017 04:47:22 -0700 (PDT) Received: from Red.local (LFbn-MAR-1-580-96.w90-118.abo.wanadoo.fr. [90.118.159.96]) by smtp.googlemail.com with ESMTPSA id 61sm8444391wrg.58.2017.10.18.04.47.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 18 Oct 2017 04:47:22 -0700 (PDT) From: Corentin Labbe To: robh+dt@kernel.org, mark.rutland@arm.com, maxime.ripard@free-electrons.com, wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com, will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com, andrew@lunn.ch, f.fainelli@gmail.com, frowand.list@gmail.com Cc: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com, Corentin Labbe Subject: [PATCH v7 10/10] of: mdio: Prevent of_mdiobus_register from scanning mdio-mux nodes Date: Wed, 18 Oct 2017 13:44:58 +0200 Message-Id: <20171018114458.17891-11-clabbe.montjoie@gmail.com> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20171018114458.17891-1-clabbe.montjoie@gmail.com> References: <20171018114458.17891-1-clabbe.montjoie@gmail.com> Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Each child node of an MDIO node is scanned as a PHY when calling of_mdiobus_register() givint the following result: [ 18.175379] mdio_bus stmmac-0: /soc/ethernet@1c30000/mdio/mdio-mux has invalid PHY address [ 18.175408] mdio_bus stmmac-0: scan phy mdio-mux at address 0 [ 18.175450] mdio_bus stmmac-0: scan phy mdio-mux at address 1 [...] [ 18.176420] mdio_bus stmmac-0: scan phy mdio-mux at address 30 [ 18.176452] mdio_bus stmmac-0: scan phy mdio-mux at address 31 Since mdio-mux nodes are not PHY, this patch a way to to not scan them. Signed-off-by: Corentin Labbe --- drivers/of/of_mdio.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/of/of_mdio.c b/drivers/of/of_mdio.c index d94dd8b77abd..90f3ac87c98f 100644 --- a/drivers/of/of_mdio.c +++ b/drivers/of/of_mdio.c @@ -190,6 +190,10 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) struct device_node *child; bool scanphys = false; int addr, rc; + static const struct of_device_id compatible_muxes[] = { + { .compatible = "mdio-mux" }, + {} + }; /* Do not continue if the node is disabled */ if (!of_device_is_available(np)) @@ -212,6 +216,9 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) /* Loop over the child nodes and register a phy_device for each phy */ for_each_available_child_of_node(np, child) { + if (of_match_node(compatible_muxes, child)) + continue; + addr = of_mdio_parse_addr(&mdio->dev, child); if (addr < 0) { scanphys = true; @@ -229,6 +236,9 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) /* auto scan for PHYs with empty reg property */ for_each_available_child_of_node(np, child) { + if (of_match_node(compatible_muxes, child)) + continue; + /* Skip PHYs with reg property set */ if (of_find_property(child, "reg", NULL)) continue;