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=-2.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 D6873C433E0 for ; Fri, 5 Jun 2020 17:11:28 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8AE532077D for ; Fri, 5 Jun 2020 17:11:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Y0vULBd4"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b="mgNuAmUw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8AE532077D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=armlinux.org.uk Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=GLVh2yZYodsX7IF9n3nTRSBG2OZoKPs1lEL5vjXNKzs=; b=Y0vULBd4iCWGFL yL+gp6GXp/jJvPje/nEeNh90Kqb1Z4NqkvZzLFYO/EWzSzuHbGvpw27Xm8Cow4URRT5uJE4zNzFb2 BwUGvm5+jfIfsjUD1yYpBCW/yCvP/BzZo4FSZS1uUtmldd1mi44TDRNgTWIHu5Bz3NSqd1nN2HRkm uAWcWvrHP/Upzyf2YroCl2lUzgAPfoh6+XoVcSHtU4huihssgDAOHxMM1wGy6dKSiY6ByhlAgwBol 7nKK/7+z7xNk+GstBdfnD4cJwaCrT0INJiPfx1P2QcE4FW2vUIPd+k+ZUBvhHkV0FeO1mm/U3pdHP J+OULK/cidqMmtBPxhTQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jhFsO-0008N2-3Z; Fri, 05 Jun 2020 17:11:28 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:3201:214:fdff:fe10:1be6]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jhFsK-0008MQ-Gl for linux-arm-kernel@lists.infradead.org; Fri, 05 Jun 2020 17:11:26 +0000 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=bFULnDIrcoo5vNAMnbXJrSEdqEqeynJptngL9eBaw6Q=; b=mgNuAmUwerwSjSW1bP6sifoPS oyVwlxDFU7+6K95DTJN/uwBCgVG6qcNHeOgU0MVAnOt2q4JbtLYZfrweVP3G/cqYVPqZhl4W5CNjN MJbvyHd2J4Nql52XeMpptQ1Q+13NExysoGAIKH08TLLVx6OhYbIet0IQZ+GLXOUHr/vV/7udIPsdW o5OdwuPmPbbxZm2flSEafet9dPMWGpM+vtWRxxT/KECZBkTHOS9SGFTw+q8GjqeGfstsqeVV5KVwj T9X+Gd/EDJEsZ6PVmiL58axOmosAqd9bJDfLU42hHldolIO3DWkVp2mqLn7n31Pwm/5v/M7JzwmyY jrApGxyYw==; Received: from shell.armlinux.org.uk ([2001:4d48:ad52:3201:5054:ff:fe00:4ec]:49774) by pandora.armlinux.org.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jhFrf-0002d2-8n; Fri, 05 Jun 2020 18:10:43 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.92) (envelope-from ) id 1jhFrW-0007dl-Ma; Fri, 05 Jun 2020 18:10:34 +0100 Date: Fri, 5 Jun 2020 18:10:34 +0100 From: Russell King - ARM Linux admin To: Jose Abreu Subject: Re: [PATCH net-next 7/8] net: phy: Add Synopsys DesignWare XPCS MDIO module Message-ID: <20200605171034.GF1605@shell.armlinux.org.uk> References: <7d9880643585e4347027538df2a722dde54156cf.1583742616.git.Jose.Abreu@synopsys.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <7d9880643585e4347027538df2a722dde54156cf.1583742616.git.Jose.Abreu@synopsys.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200605_101124_557370_4A95ED41 X-CRM114-Status: GOOD ( 13.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Lunn , Joao Pinto , Alexandre Torgue , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, Florian Fainelli , Maxime Coquelin , Giuseppe Cavallaro , Jakub Kicinski , "David S. Miller" , linux-arm-kernel@lists.infradead.org, Heiner Kallweit Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Jose, I just tripped over a bug while grepping for something else and reading a bit of this driver: On Mon, Mar 09, 2020 at 09:36:26AM +0100, Jose Abreu wrote: > +static int xpcs_read_lpa(struct mdio_xpcs_args *xpcs, > + struct phylink_link_state *state) > +{ > + int ret; > + > + ret = xpcs_read(xpcs, MDIO_MMD_AN, MDIO_STAT1); > + if (ret < 0) > + return ret; > + > + if (!(ret & MDIO_AN_STAT1_LPABLE)) { > + phylink_clear(state->lp_advertising, Autoneg); > + return 0; > + } > + > + phylink_set(state->lp_advertising, Autoneg); > + > + /* Clause 73 outcome */ > + ret = xpcs_read(xpcs, MDIO_MMD_AN, DW_SR_AN_LP_ABL3); > + if (ret < 0) > + return ret; > + > + if (ret & DW_C73_2500KX) > + phylink_set(state->lp_advertising, 2500baseX_Full); > + > + ret = xpcs_read(xpcs, MDIO_MMD_AN, DW_SR_AN_LP_ABL2); > + if (ret < 0) > + return ret; > + > + if (ret & DW_C73_1000KX) > + phylink_set(state->lp_advertising, 1000baseKX_Full); > + if (ret & DW_C73_10000KX4) > + phylink_set(state->lp_advertising, 10000baseKX4_Full); > + if (ret & DW_C73_10000KR) > + phylink_set(state->lp_advertising, 10000baseKR_Full); > + > + ret = xpcs_read(xpcs, MDIO_MMD_AN, DW_SR_AN_LP_ABL1); > + if (ret < 0) > + return ret; > + > + if (ret & DW_C73_PAUSE) > + phylink_set(state->lp_advertising, Pause); > + if (ret & DW_C73_ASYM_PAUSE) > + phylink_set(state->lp_advertising, Asym_Pause); > + > + linkmode_and(state->lp_advertising, state->lp_advertising, > + state->advertising); This is incorrect - you should not mask the link partner's advertisement with our advertisement like this; consider the table in 802.3 for resolving the pause modes, where simply doing a bitwise-and operation between the two advertisements would severely restrict the resulting resolution to either symmetric pause or nothing at all. You want to do this when you resolve the speed, but only _temporarily_ in order to resolve the speed - you do not want to write back the result to state->lp_advertising. You may wish to fix that. Thanks. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTC for 0.8m (est. 1762m) line in suburbia: sync at 13.1Mbps down 424kbps up _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel