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=-5.5 required=3.0 tests=DATE_IN_PAST_03_06, DKIM_INVALID,DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 96849C4CECE for ; Sun, 15 Mar 2020 01:54:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6EB1D206D5 for ; Sun, 15 Mar 2020 01:54:13 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=lunn.ch header.i=@lunn.ch header.b="Z7KYS7Na" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727579AbgCOByM (ORCPT ); Sat, 14 Mar 2020 21:54:12 -0400 Received: from vps0.lunn.ch ([185.16.172.187]:36040 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727239AbgCOByM (ORCPT ); Sat, 14 Mar 2020 21:54:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lunn.ch; s=20171124; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Sender: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=zPDB1HvowBEZp5Hyh1O74oA1y5oZAO1PHhyz4vUG3XY=; b=Z7KYS7Na9nykCUWpFbxMkXPqXh Lj2NP8Da/K6YD7QkhcfchqpLkfD15k/DYbF8/ikaIN3nm4HRXvOeP2P9NBqrpqHBOIscYaGS6rEtV EBWpOn8bO/LiiJLFfUozIGo6YlmayW/fbPQ6VNWF2A+PJPhEi9bmNC0FYLp9rLx1lUVQ=; Received: from andrew by vps0.lunn.ch with local (Exim 4.93) (envelope-from ) id 1jDEdU-0002Uk-Fu; Sat, 14 Mar 2020 22:48:00 +0100 Date: Sat, 14 Mar 2020 22:48:00 +0100 From: Andrew Lunn To: Russell King Cc: Florian Fainelli , Heiner Kallweit , "David S. Miller" , netdev@vger.kernel.org Subject: Re: [PATCH net-next 3/3] net: phylink: pcs: add 802.3 clause 45 helpers Message-ID: <20200314214800.GF8622@lunn.ch> References: <20200314103102.GJ25745@shell.armlinux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Sat, Mar 14, 2020 at 10:31:34AM +0000, Russell King wrote: > Implement helpers for PCS accessed via the MII bus using 802.3 clause > 45 cycles for 10GBASE-R. Only link up/down is supported, 10G full > duplex is assumed. > > Signed-off-by: Russell King > --- > drivers/net/phy/phylink.c | 30 ++++++++++++++++++++++++++++++ > include/linux/phylink.h | 2 ++ > 2 files changed, 32 insertions(+) > > diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c > index 7ca427c46d9f..bff570f59d5c 100644 > --- a/drivers/net/phy/phylink.c > +++ b/drivers/net/phy/phylink.c > @@ -2247,4 +2247,34 @@ void phylink_mii_c22_pcs_an_restart(struct mdio_device *pcs) > } > EXPORT_SYMBOL_GPL(phylink_mii_c22_pcs_an_restart); > > +#define C45_ADDR(d,a) (MII_ADDR_C45 | (d) << 16 | (a)) Hi Russell That seems like a macro that should be made global. dsa/mv88e6xxx/serdes.c: int reg_c45 = MII_ADDR_C45 | device << 16 | reg; dsa/mv88e6xxx/serdes.c: int reg_c45 = MII_ADDR_C45 | device << 16 | reg; ethernet/intel/ixgbe/ixgbe_main.c: regnum |= (devad << 16) | MII_ADDR_C45; ethernet/intel/ixgbe/ixgbe_main.c: regnum |= (devad << 16) | MII_ADDR_C45; phy/phylink.c: devad = MII_ADDR_C45 | devad << 16 | reg; phy/phylink.c: devad = MII_ADDR_C45 | devad << 16 | reg; phy/phylink.c: devad = MII_ADDR_C45 | devad << 16 | reg; phy/phylink.c: devad = MII_ADDR_C45 | devad << 16 | reg; phy/phy-core.c: u32 addr = MII_ADDR_C45 | (devad << 16) | (regnum & 0xffff); phy/phy-core.c: u32 addr = MII_ADDR_C45 | (devad << 16) | (regnum & 0xffff); phy/phy_device.c: reg_addr = MII_ADDR_C45 | dev_addr << 16 | MDIO_DEVS2; phy/phy_device.c: reg_addr = MII_ADDR_C45 | dev_addr << 16 | MDIO_DEVS1; phy/phy_device.c: reg_addr = MII_ADDR_C45 | i << 16 | MII_PHYSID1; phy/phy_device.c: reg_addr = MII_ADDR_C45 | i << 16 | MII_PHYSID2; phy/phy.c: devad = MII_ADDR_C45 | devad << 16 | mii_data->reg_num; phy/phy.c: devad = MII_ADDR_C45 | devad << 16 | mii_data->reg_num; phy/bcm87xx.c: u32 regnum = MII_ADDR_C45 | (devid << 16) | reg; I'm not suggesting you convert all these cases, just make the macro available and we can make more use of it later. Thanks Andrew