Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3100485pxj; Mon, 10 May 2021 18:53:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwZGVeHTMxNb7nFztwwkt+7cliJVRPBWGcmAEn4GwjO7OOHl46THDvLmAu29835de6LoB0v X-Received: by 2002:aa7:c2cc:: with SMTP id m12mr33190970edp.1.1620697992859; Mon, 10 May 2021 18:53:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620697992; cv=none; d=google.com; s=arc-20160816; b=FBdXaysnhpi9SbqlYHx4LjzugeVWdqN4efMdimymFaLJ9G6Uj77IVdrsBQ5SytS88X 5sf6t9lubqSuGcg9YfZdAeH7MLE0janTRD2u7pY1itV/mRbccw1h3Cm+Fw6+Dchyp6CR vqfLnkTVEhsguKIKOCmOw1tOYyusSBjgxDc26nbWVlSByYrwiDuqyszw8TEQx474s4yv imclXNcYktAtgmosbOWDLnBIz29w+nIt8c++fT+WM8GwDAGHQPD56MCNKuE7ipnAmO2v p/FjLH9SGr0N3HOupIe+hmw3MHAt8iP0xpEQDtPAXrjXQv9mXT9FcHoahbrfArIZMBG6 5V5A== 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 :dkim-signature; bh=sowjHbtq4ACpOKj9t4ndmI7onYam+ERIVTjJ8SpjVao=; b=zFZ11CPPab7vANZ3L5S7w3gL4eCtylgZvP6e0rWUhXKbomzTGTO7WWgo8DqEL2m8pl oOyZ9NUQsZrj4tdbOD/vRRPrQZgHGbtsBDRBjuzt3XtOAO4elyyPpaFNdf6ln0OvwmhX dMneH5+2CGujgmwh8LSd3oJhSVvq8zCrCTto+y1dcFWKPPRBiNSRTp0x+DUl30/FlidJ kIRC++u6n9S7Y/wTX5xJ3h6v41oRiObyvx6xuHxZOPYL6uDIzW3KkZk4HdMjP6aJcVoL a1wmCfEPDp2mCoT8LhaSv6kzCaZ4y6oWTH9PgNg0utiZc/yQbYpYJT+mszqbIO6z/2/d Tagw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=fJhqWJRL; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d12si14353382ejj.594.2021.05.10.18.52.44; Mon, 10 May 2021 18:53:12 -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; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=fJhqWJRL; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230427AbhEKBux (ORCPT + 99 others); Mon, 10 May 2021 21:50:53 -0400 Received: from mail.kernel.org ([198.145.29.99]:47050 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230334AbhEKBuw (ORCPT ); Mon, 10 May 2021 21:50:52 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 71510616E8; Tue, 11 May 2021 01:49:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620697787; bh=eZrzgpTyyO5Blp6/LDxMMaLmtZs1tELZ4/7dFk3gLco=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=fJhqWJRLw+CPWIVo4ulxbq2qE/g1QN3h3r11Vp/Jrcyc84wwvshpmdybYw4zbjkCD ufFdxlbGMpcx+F3VCg1qrmeX+TTLVTs9KdID8jea2Dt6lMOW1dyxdytXKfySQx35BD R7Fn5WBNRIvF8fvh66TrYbDd7MeEBNoSuOiB8kzeaLd0Xq/+2ZCyvCin7eeLs736P7 kNSuoih4e1Q7bh3s/blHmggB3QvT82rhy6dzIYPuMAWha6mbVufGMABde7DmPL14li DvPN5hhZSAU7Jp46KX0l2aw4xQ5BOp1BmNICcf+HY5ZlBzW4yhHlS7Ovwc1yQTNiZ6 H48LHRPBY2kqQ== Date: Tue, 11 May 2021 09:49:41 +0800 From: Shawn Guo To: Oleksij Rempel Cc: Sascha Hauer , Andrew Lunn , Florian Fainelli , Heiner Kallweit , Philippe Schenker , kernel@pengutronix.de, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-imx@nxp.com, Fabio Estevam , David Jander , Russell King Subject: Re: [PATCH v2 1/7] ARM: imx6q: remove PHY fixup for KSZ9031 Message-ID: <20210511014937.GK27585@dragon> References: <20210309112615.625-1-o.rempel@pengutronix.de> <20210309112615.625-2-o.rempel@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210309112615.625-2-o.rempel@pengutronix.de> User-Agent: Mutt/1.9.4 (2018-02-28) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 09, 2021 at 12:26:09PM +0100, Oleksij Rempel wrote: > Starting with: > > bcf3440c6dd7 ("net: phy: micrel: add phy-mode support for the KSZ9031 PHY") > > the micrel phy driver started respecting phy-mode for the KSZ9031 PHY. > At least with kernel v5.8 configuration provided by this fixup was > overwritten by the micrel driver. > > This fixup was providing following configuration: > > RX path: 2.58ns delay > rx -0.42 (left shift) + rx_clk +0.96ns (right shift) = > 1,38 + 1,2 internal RX delay = 2.58ns > TX path: 0.96ns delay > tx (no delay) + tx_clk 0.96ns (right shift) = 0.96ns > > This configuration is outside of the recommended RGMII clock skew delays > and about in the middle of: rgmii-idrx and rgmii-id > > Since most embedded systems do not have enough place to introduce > significant clock skew, rgmii-id is the way to go. > > In case this patch breaks network functionality on your system, build > kernel with enabled MICREL_PHY. If it is still not working then try > following device tree options: > 1. Set (or change) phy-mode in DT to: > phy-mode = "rgmii-id"; > This actives internal delay for both RX and TX. > 1. Set (or change) phy-mode in DT to: > phy-mode = "rgmii-idrx"; > This actives internal delay for RX only. > 3. Use following DT properties: > phy-mode = "rgmii"; > txen-skew-psec = <0>; > rxdv-skew-psec = <0>; > rxd0-skew-psec = <0>; > rxd1-skew-psec = <0>; > rxd2-skew-psec = <0>; > rxd3-skew-psec = <0>; > rxc-skew-psec = <1860>; > txc-skew-psec = <1860>; > This activates the internal delays for RX and TX, with the value as > the fixup that is removed in this patch. > > Signed-off-by: Oleksij Rempel > Acked-by: Philippe Schenker > --- > arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts | 2 +- > arch/arm/mach-imx/mach-imx6q.c | 23 ----------------------- I have different branch for DTS and mach-imx change. Please split the changes. Shawn > 2 files changed, 1 insertion(+), 24 deletions(-) > > diff --git a/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts b/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts > index fa2307d8ce86..c713ac03b3b9 100644 > --- a/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts > +++ b/arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts > @@ -112,7 +112,7 @@ flash: m25p80@0 { > &fec { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_enet>; > - phy-mode = "rgmii"; > + phy-mode = "rgmii-id"; > phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; > phy-supply = <&vgen2_1v2_eth>; > status = "okay"; > diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c > index 703998ebb52e..78205f90da27 100644 > --- a/arch/arm/mach-imx/mach-imx6q.c > +++ b/arch/arm/mach-imx/mach-imx6q.c > @@ -40,27 +40,6 @@ static int ksz9021rn_phy_fixup(struct phy_device *phydev) > return 0; > } > > -static void mmd_write_reg(struct phy_device *dev, int device, int reg, int val) > -{ > - phy_write(dev, 0x0d, device); > - phy_write(dev, 0x0e, reg); > - phy_write(dev, 0x0d, (1 << 14) | device); > - phy_write(dev, 0x0e, val); > -} > - > -static int ksz9031rn_phy_fixup(struct phy_device *dev) > -{ > - /* > - * min rx data delay, max rx/tx clock delay, > - * min rx/tx control delay > - */ > - mmd_write_reg(dev, 2, 4, 0); > - mmd_write_reg(dev, 2, 5, 0); > - mmd_write_reg(dev, 2, 8, 0x003ff); > - > - return 0; > -} > - > /* > * fixup for PLX PEX8909 bridge to configure GPIO1-7 as output High > * as they are used for slots1-7 PERST# > @@ -152,8 +131,6 @@ static void __init imx6q_enet_phy_init(void) > if (IS_BUILTIN(CONFIG_PHYLIB)) { > phy_register_fixup_for_uid(PHY_ID_KSZ9021, MICREL_PHY_ID_MASK, > ksz9021rn_phy_fixup); > - phy_register_fixup_for_uid(PHY_ID_KSZ9031, MICREL_PHY_ID_MASK, > - ksz9031rn_phy_fixup); > phy_register_fixup_for_uid(PHY_ID_AR8031, 0xffffffef, > ar8031_phy_fixup); > phy_register_fixup_for_uid(PHY_ID_AR8035, 0xffffffef, > -- > 2.29.2 >