From patchwork Wed Dec 20 22:01:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Lamparter X-Patchwork-Id: 851703 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="RII4DYJz"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z27zB1RGCz9t2c for ; Thu, 21 Dec 2017 09:01:58 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757283AbdLTWB4 (ORCPT ); Wed, 20 Dec 2017 17:01:56 -0500 Received: from mail-wr0-f193.google.com ([209.85.128.193]:40218 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757469AbdLTWBx (ORCPT ); Wed, 20 Dec 2017 17:01:53 -0500 Received: by mail-wr0-f193.google.com with SMTP id q9so23560400wre.7 for ; Wed, 20 Dec 2017 14:01:52 -0800 (PST) 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 :in-reply-to:references; bh=3lWbbZ11/MTOxJYjXGqu7q1SW8HQsGlUxxBf7drhOzw=; b=RII4DYJzPxDT7yVj5sRfjQemVmqAKx3pFR5xcny1sg0SDq2qN3fSrQZ9+InTgavPq6 VSQ7QNnP5FtuS/buJLlzF42av10rT3+Z6YjaVLER6ybnj0LYbhUKml9fh7zP3tqa9Ked B5DDFPXh19qWEn1P/OD28izlAFhjOzqY6PVM7oGNNwiIVLSfgMlFlRRePw8QL8K6ljN3 gZlg4rBtpLH7W9MTm7e2ry63ooCfSpPSvb/w5jSLaKBiVLHP4jsjDmenKTRKKhyxIK51 AwI96GfGmA3izDcoNfCivOoehD803wbc7ajbt2/WqSbCdcb2pqYxpwko02+dRKnU8Fma PsRw== 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:in-reply-to:references; bh=3lWbbZ11/MTOxJYjXGqu7q1SW8HQsGlUxxBf7drhOzw=; b=g4gVb1r3VOPacZXZB3+yvOpu67paeleoYbLEbdbKppczUOmmxJ9omOPCscWfc1n+Ms JNeBG/EVR7fk4FBEJebgiUAUh0vSOuaFBrNdNtM5rGloGWUEQUuUZ3rgcQirML6JkMvX Egew4QU5TyF0f0JZi+W5LKClVbeh8KdvOhavQCBwDnVhZcNAi0ChXwJWbc+4OMPoqsO8 5D5iZ9B/qVqGHUV2rCNVE4PY/EWLRbrjdScEyjY2o68j+bcHRHpT+7RW0ErFXa9APj9j rxY+0euSXuOGVkPLpk2cv8440X/lIcqPh2WQNBM5gJpe8tHWT2sMZ1fSTRLB/zRWDYCT Ppiw== X-Gm-Message-State: AKGB3mJNYAzok9ON8HGpaygr3UfdpdYCieeVEg3uyYof+9N9PwHl/+42 9G34WdV3hqqeC0cswRXf7BDckY2g X-Google-Smtp-Source: ACJfBout1H7D2AqP/CQ+P6Lf9jY0zoSPoZHSZaOGF6jYLEPElxD5DFs1qzd/DWFIEwQW4Sy+t2jssw== X-Received: by 10.223.164.20 with SMTP id d20mr7725207wra.205.1513807311420; Wed, 20 Dec 2017 14:01:51 -0800 (PST) Received: from debian64.daheim (p5B0D727A.dip0.t-ipconnect.de. [91.13.114.122]) by smtp.gmail.com with ESMTPSA id i71sm7396519wmd.1.2017.12.20.14.01.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 20 Dec 2017 14:01:50 -0800 (PST) Received: from chuck by debian64.daheim with local (Exim 4.90_RC4) (envelope-from ) id 1eRmQw-0005JD-5W; Wed, 20 Dec 2017 23:01:50 +0100 From: Christian Lamparter To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , Christophe Jaillet Subject: [PATCH v3 3/3] net: ibm: emac: support RGMII-[RX|TX]ID phymode Date: Wed, 20 Dec 2017 23:01:50 +0100 Message-Id: X-Mailer: git-send-email 2.15.1 In-Reply-To: References: In-Reply-To: <2cb74d50c22d01873d1d976ec384917dc799be08.1513806256.git.chunkeey@gmail.com> References: <2cb74d50c22d01873d1d976ec384917dc799be08.1513806256.git.chunkeey@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The RGMII spec allows compliance for devices that implement an internal delay on TXC and/or RXC inside the transmitter. This patch adds the necessary RGMII_[RX|TX]ID mode code to handle such PHYs with the emac driver. Signed-off-by: Christian Lamparter --- v3: - replace PHY_MODE_* with PHY_INTERFACE_MODE_* - replace rgmii_mode_name() with phy_modes[] v2: - utilize phy_interface_mode_is_rgmii() --- drivers/net/ethernet/ibm/emac/core.c | 4 ++-- drivers/net/ethernet/ibm/emac/rgmii.c | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/ibm/emac/core.c b/drivers/net/ethernet/ibm/emac/core.c index 27f592da7cfc..71ddad13baf4 100644 --- a/drivers/net/ethernet/ibm/emac/core.c +++ b/drivers/net/ethernet/ibm/emac/core.c @@ -199,8 +199,8 @@ static void __emac_set_multicast_list(struct emac_instance *dev); static inline int emac_phy_supports_gige(int phy_mode) { - return phy_mode == PHY_INTERFACE_MODE_GMII || - phy_mode == PHY_INTERFACE_MODE_RGMII || + return phy_interface_mode_is_rgmii(phy_mode) || + phy_mode == PHY_INTERFACE_MODE_GMII || phy_mode == PHY_INTERFACE_MODE_SGMII || phy_mode == PHY_INTERFACE_MODE_TBI || phy_mode == PHY_INTERFACE_MODE_RTBI; diff --git a/drivers/net/ethernet/ibm/emac/rgmii.c b/drivers/net/ethernet/ibm/emac/rgmii.c index 5db225831e81..00f5999de3cf 100644 --- a/drivers/net/ethernet/ibm/emac/rgmii.c +++ b/drivers/net/ethernet/ibm/emac/rgmii.c @@ -52,9 +52,9 @@ /* RGMII bridge supports only GMII/TBI and RGMII/RTBI PHYs */ static inline int rgmii_valid_mode(int phy_mode) { - return phy_mode == PHY_INTERFACE_MODE_GMII || + return phy_interface_mode_is_rgmii(phy_mode) || + phy_mode == PHY_INTERFACE_MODE_GMII || phy_mode == PHY_INTERFACE_MODE_MII || - phy_mode == PHY_INTERFACE_MODE_RGMII || phy_mode == PHY_INTERFACE_MODE_TBI || phy_mode == PHY_INTERFACE_MODE_RTBI; } @@ -63,6 +63,9 @@ static inline u32 rgmii_mode_mask(int mode, int input) { switch (mode) { case PHY_INTERFACE_MODE_RGMII: + case PHY_INTERFACE_MODE_RGMII_ID: + case PHY_INTERFACE_MODE_RGMII_RXID: + case PHY_INTERFACE_MODE_RGMII_TXID: return RGMII_FER_RGMII(input); case PHY_INTERFACE_MODE_TBI: return RGMII_FER_TBI(input);