Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2425050pxj; Sun, 13 Jun 2021 20:39:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxw/FazucJzyzAWaDqpZ5FENIVGUNj9pNHFFBiJWUIuSqbZD++nrQTqTS0zVH47bnsQ13n4 X-Received: by 2002:a17:906:8318:: with SMTP id j24mr13317324ejx.375.1623641980750; Sun, 13 Jun 2021 20:39:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623641980; cv=none; d=google.com; s=arc-20160816; b=XrsoMLH8EY9kV7c2GvPPD3qK2bwzHY27i3/6gLjw0SnGXn70NtMGxX922SPPB0ZTdb 0uzV6V4q/ExhhlICr7l99S4yIIWRgf/wpSf01Q4IbD5ANd8YLR1vlwCpae5aJ3xKLvLk 1DIW+hzmNyf0r1LWlNmMUscXec42TcoWMEutjkmCClmGigJ/RL0rrUfcGu6fnKdgKs2k q8Ra/8FOruRKOO2pIt0/6ISrTKXlDJwlN3ftRE2FRAqlWHbesKB11FVBXnAsBlq0zFfX wcQDuegKMJaprHpCvNY0HOtAMIu5bvF5HazpexNXw9kk9DfmWaxkTP6bzuayEElpv2Y0 X+OA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=Z0c3MT2sX5iN1Ef+5rbrU4XXE2qnvRn+leQPtULkbbU=; b=C7HsiHaH7e5tDV0aTqCU42mrijbs54o+wqetDXM5qhaxVkgqm6adO3t2oT/He+7VNG OfoX0M1B28yHJk5L/fWuJ4OvYt7pAtgtDmIiGWNo1KPvXaNvm46XnmkwLSjUVkjQ4TWe jJmZL0goPBNg8mPBkzayXZ4rBtKWJv622rbwMgg8RajXnqQ8h9d5AGP2Xbdk0zV9xvMc fK49NEfTjleZyFDArHK9H7x6ZIiXr/yD3NFYgjM7NndcfzxhW6NRKBQ39U9/bg36T/UM w7F15hnaTKt08gKK0nZ/kbYnyM5HSlvHv7U6u7lpI/9oZS3dF8HQ6+ZAUWPO27P5iG1m m22Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p3si10078936ejz.123.2021.06.13.20.39.18; Sun, 13 Jun 2021 20:39:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232370AbhFNDjg (ORCPT + 99 others); Sun, 13 Jun 2021 23:39:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54850 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232312AbhFNDjf (ORCPT ); Sun, 13 Jun 2021 23:39:35 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91A61C061766 for ; Sun, 13 Jun 2021 20:37:33 -0700 (PDT) Received: from pty.hi.pengutronix.de ([2001:67c:670:100:1d::c5]) by metis.ext.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lsdPn-0005aq-Ak; Mon, 14 Jun 2021 05:37:31 +0200 Received: from ore by pty.hi.pengutronix.de with local (Exim 4.89) (envelope-from ) id 1lsdPm-0006Sh-Vj; Mon, 14 Jun 2021 05:37:30 +0200 Date: Mon, 14 Jun 2021 05:37:30 +0200 From: Oleksij Rempel To: Florian Fainelli Cc: Vladimir Oltean , Woojung Huh , Andrew Lunn , Michael Grzeschik , Russell King , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Vivien Didelot , kernel@pengutronix.de, Jakub Kicinski , UNGLinuxDriver@microchip.com, "David S. Miller" Subject: Re: [PATCH net-next v4 8/9] net: dsa: dsa_slave_phy_connect(): extend phy's flags with port specific phy flags Message-ID: <20210614033730.46vnyemwvxjk5s5n@pengutronix.de> References: <20210611071527.9333-1-o.rempel@pengutronix.de> <20210611071527.9333-9-o.rempel@pengutronix.de> <20210611192417.gvfxi2kbfjx4jv3d@skbuf> <97ea2ff1-d3a3-b2d5-f829-3863409bfecc@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <97ea2ff1-d3a3-b2d5-f829-3863409bfecc@gmail.com> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-IRC: #ptxdist @freenode X-Accept-Language: de,en X-Accept-Content-Type: text/plain X-Uptime: 05:36:53 up 193 days, 17:43, 48 users, load average: 0.05, 0.03, 0.00 User-Agent: NeoMutt/20170113 (1.7.2) X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::c5 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jun 11, 2021 at 04:26:33PM -0700, Florian Fainelli wrote: > > > On 6/11/2021 12:24 PM, Vladimir Oltean wrote: > > On Fri, Jun 11, 2021 at 09:15:26AM +0200, Oleksij Rempel wrote: > >> This patch extends the flags of the phy that's being connected with the > >> port specific flags of the switch port. > >> > >> This is needed to handle a port specific erratum of the KSZ8873 switch, > >> which is added in a later patch. > >> > >> Signed-off-by: Oleksij Rempel > >> --- > > > > What happens differently between having this patch and not having it? > > The current get_phy_flags() is only processed when we connect to a PHY > via a designed phy-handle property via phylink_of_phy_connect((, but if > we fallback on the internal MDIO bus created by a switch and take the > dsa_slave_phy_connect() path then we would not be processing that flag > and using it at PHY connection time. Oleksij, your proposed patch fails > to check that dsa_switch_ops::get_phy_flags is actually non-NULL, how > about this approach instead where we only fetch the flags once, and we > deal with an option get_phy_flags callback too: ok, sounds good. Thank you. > diff --git a/net/dsa/slave.c b/net/dsa/slave.c > index d4756b920108..ba7866ec946f 100644 > --- a/net/dsa/slave.c > +++ b/net/dsa/slave.c > @@ -1749,7 +1749,7 @@ static void dsa_slave_phylink_fixed_state(struct > phylink_config *config, > } > > /* slave device setup > *******************************************************/ > -static int dsa_slave_phy_connect(struct net_device *slave_dev, int addr) > +static int dsa_slave_phy_connect(struct net_device *slave_dev, int > addr, u32 flags) > { > struct dsa_port *dp = dsa_slave_to_port(slave_dev); > struct dsa_switch *ds = dp->ds; > @@ -1760,6 +1760,8 @@ static int dsa_slave_phy_connect(struct net_device > *slave_dev, int addr) > return -ENODEV; > } > > + slave_dev->phydev->dev_flags |= flags; > + > return phylink_connect_phy(dp->pl, slave_dev->phydev); > } > > @@ -1804,7 +1806,7 @@ static int dsa_slave_phy_setup(struct net_device > *slave_dev) > /* We could not connect to a designated PHY or SFP, so > try to > * use the switch internal MDIO bus instead > */ > - ret = dsa_slave_phy_connect(slave_dev, dp->index); > + ret = dsa_slave_phy_connect(slave_dev, dp->index, > phy_flags); > if (ret) { > netdev_err(slave_dev, > "failed to connect to port %d: %d\n", > -- > Florian > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |