From patchwork Wed Dec 20 22:01:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Lamparter X-Patchwork-Id: 851705 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="X5ePifn4"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z27zM6nkBz9t3p for ; Thu, 21 Dec 2017 09:02:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757505AbdLTWCF (ORCPT ); Wed, 20 Dec 2017 17:02:05 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:33402 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757356AbdLTWBx (ORCPT ); Wed, 20 Dec 2017 17:01:53 -0500 Received: by mail-wm0-f68.google.com with SMTP id g130so17598273wme.0 for ; Wed, 20 Dec 2017 14:01:53 -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; bh=weJV7HiU8ngHZwZ00iHDKMEU9YwhSFnywbARtq1K/Ck=; b=X5ePifn4AhQX0XGMuC+m9j1XiHUepLKQGkG+epQwK7H0RcDpruNiZpDYDchSfryFR4 QegMhPdWLC46qNFklsGVt0vDktC/HyUeMEAcAIYfW0kuJNnxABXQZno+bjKtwHnqtxNE z54Ff2jVeUUG7BXPESwyiL/OmUKcFkDoxRlWyk784Dvu8YKpG+KrF2sSMX3fzCfjbyjP 4DJKjRI/p68E/kmpoNXyhF6bRStsdyJY0KFSfB8vdzayn12xvOrC5IsWYd4A1stoQBtl 3C5oUcl3MacpG1B1EmHuQgFwx9HN2Xx5j7NGykUGZvH92xgb0YHOpj8/6Om7JwCdNP70 A31A== 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; bh=weJV7HiU8ngHZwZ00iHDKMEU9YwhSFnywbARtq1K/Ck=; b=WPY8sRBsyjztv2zbGhySvq86BS9BeE2/k6Mdi5ChiiTIfDWjoYCeEvJQaqlrwicK6r OD9knCkNRePJ6TDXyXO+u+rFW0dIqRvX+6E3aeVbAZv2tisP7yXykkB6oyXIrXB9gCj2 1bDHWTPB7QqphZ+UYB2ELeiNDSTfYQm9xIco3mFIBTPitD9lw6fWX9xbsyrs2OArXI6l RY0Eysi8WDKwY4eEsKFT3cUHZGGpXmoLLlLy8ZTUzWig8iFkGZEkb3lyST93IvC5Q14I 3z+pOgEMXo5LfGkjyxl8r0/r8fhNkcyTJrgUE/Fb3kRPGVp8oJ/9K2sTBFW0D1YsoiLe x8Jw== X-Gm-Message-State: AKGB3mLQwDofrbbcE2FNjRbtXN50Ps3V330hzNWRbXOA9bYNtFMEkFB/ 4M6x/akPhQ86UjFcxEduidKzWxhE X-Google-Smtp-Source: ACJfBosTbLXfO2xQcw7M18Q/QcLZoNNzPfwrQm04mWFf5hWVaqh98/KYqJmH9RVPa/aq3wI26F5Vug== X-Received: by 10.28.51.21 with SMTP id z21mr8190111wmz.94.1513807312033; Wed, 20 Dec 2017 14:01:52 -0800 (PST) Received: from debian64.daheim (p5B0D727A.dip0.t-ipconnect.de. [91.13.114.122]) by smtp.gmail.com with ESMTPSA id t138sm7060332wme.16.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-0005J6-2I; 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 1/3] net: ibm: emac: replace custom rgmii_mode_name with phy_modes Date: Wed, 20 Dec 2017 23:01:48 +0100 Message-Id: X-Mailer: git-send-email 2.15.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org phy_modes() in the common phy.h already defines the same phy mode names in lower case. The deleted rgmii_mode_name() is used only in one place and for a "notice-level" printk. Hence, it will not be missed. Signed-off-by: Christian Lamparter --- drivers/net/ethernet/ibm/emac/rgmii.c | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/drivers/net/ethernet/ibm/emac/rgmii.c b/drivers/net/ethernet/ibm/emac/rgmii.c index c4a1ac38bba8..9a1c06f2471d 100644 --- a/drivers/net/ethernet/ibm/emac/rgmii.c +++ b/drivers/net/ethernet/ibm/emac/rgmii.c @@ -59,24 +59,6 @@ static inline int rgmii_valid_mode(int phy_mode) phy_mode == PHY_MODE_RTBI; } -static inline const char *rgmii_mode_name(int mode) -{ - switch (mode) { - case PHY_MODE_RGMII: - return "RGMII"; - case PHY_MODE_TBI: - return "TBI"; - case PHY_MODE_GMII: - return "GMII"; - case PHY_MODE_MII: - return "MII"; - case PHY_MODE_RTBI: - return "RTBI"; - default: - BUG(); - } -} - static inline u32 rgmii_mode_mask(int mode, int input) { switch (mode) { @@ -115,7 +97,7 @@ int rgmii_attach(struct platform_device *ofdev, int input, int mode) out_be32(&p->fer, in_be32(&p->fer) | rgmii_mode_mask(mode, input)); printk(KERN_NOTICE "%pOF: input %d in %s mode\n", - ofdev->dev.of_node, input, rgmii_mode_name(mode)); + ofdev->dev.of_node, input, phy_modes(mode)); ++dev->users; From patchwork Wed Dec 20 22:01:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Lamparter X-Patchwork-Id: 851704 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="UZHzrY1i"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3z27zK0NzTz9t2c for ; Thu, 21 Dec 2017 09:02:05 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757712AbdLTWCD (ORCPT ); Wed, 20 Dec 2017 17:02:03 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:34948 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757408AbdLTWBy (ORCPT ); Wed, 20 Dec 2017 17:01:54 -0500 Received: by mail-wm0-f68.google.com with SMTP id f9so12494771wmh.0 for ; Wed, 20 Dec 2017 14:01:53 -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=zkyXhSqLbtEY3ChheSZLjjEBjG+MdTV+r1RvDZl/9R4=; b=UZHzrY1ixDbWKrST2jlm58eQBsQDQgh4V6Nc9TjQzAlfvK/sxp9fOzMRjmBvPsRtn9 MWM0i1GY4Kjdtrpb8NE7g57cyzlMgG41FNfhcqtLv09ycAj6VJIOCstC6SY7wRq6CzqJ HBQuFMpNkoc/CQxYNVzkSveATmqPwUiTZYLT5xJcsCSdxHGLKI1QeXV5afe/+2FykpEk MkJyL5lRKW+qe9Xon3dkkPHwU1iJr4zVb6E0x0cZHTjeQkFZp/SfK60CERkke9s4kndF ufqRQfjD0ZI4VRTq9D6lwie3jMTId9aJSXeJEMBFS+BXII+sABelnnJs2bMADtprduX+ xOfw== 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=zkyXhSqLbtEY3ChheSZLjjEBjG+MdTV+r1RvDZl/9R4=; b=INx2Vgwrq3GeuXnraqh9gL61xnUAOCutVZwZfrucMyrl+3xwacUuSuqvWSzy9R7OU8 iuZCKxxXoldOsehXjzcAqbdlEpZ2gTZETNtuR/2Nbzo1SJg/y81mu1Y5Zf3HvzU7Y871 DfSqeEnZwsG7pbHp2gmyAs5ObTYi3xsOE9cPcLMpIdhvAV/ewAXIvBnaoQ84mQ4G2Rt3 BJeKVmapNxs1lrfi9xPC2hxyK3NLgLJKYqMxBbKjGhJLM5yEXojA9f5ebvmzEAbH7ksE hDH4emX/NdN3sMjFY8TrQhTg2gsWHrc9MhY01kIcMo8gXIThLyMKi8GbE8vS6bDD9uvW 3jPA== X-Gm-Message-State: AKGB3mLEBmXZ13S8tQrEgABsiWDu0nx7Ppf+ka4r4nDLtNmL5/n1lnoj iZksWLYofQaS1MIGJVL93mhk7vSX X-Google-Smtp-Source: ACJfBosnIHYrBHPfqrJMNwtI/UpPqHgefH6GZZMMKcIqAXi3esDfrgxH8+cOvMd0l/DUcvQkQ65+4A== X-Received: by 10.28.35.4 with SMTP id j4mr7356827wmj.55.1513807312730; Wed, 20 Dec 2017 14:01:52 -0800 (PST) Received: from debian64.daheim (p5B0D727A.dip0.t-ipconnect.de. [91.13.114.122]) by smtp.gmail.com with ESMTPSA id r64sm23273391wrb.62.2017.12.20.14.01.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 20 Dec 2017 14:01:51 -0800 (PST) Received: from chuck by debian64.daheim with local (Exim 4.90_RC4) (envelope-from ) id 1eRmQw-0005J9-41; 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 2/3] net: ibm: emac: replace custom PHY_MODE_* macros Date: Wed, 20 Dec 2017 23:01:49 +0100 Message-Id: <2cb74d50c22d01873d1d976ec384917dc799be08.1513806256.git.chunkeey@gmail.com> X-Mailer: git-send-email 2.15.1 In-Reply-To: References: In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The ibm_emac driver predates the PHY_INTERFACE_MODE_* enums by a few years. And while the driver has been retrofitted to use the PHYLIB, the old definitions have stuck around to this day. This patch replaces all occurences of PHY_MODE_* with the respective equivalent PHY_INTERFACE_MODE_* enum. And finally, it purges the old macros for good. Signed-off-by: Christian Lamparter --- Extra change in zmii.c to make checkpatch happy. --- drivers/net/ethernet/ibm/emac/core.c | 20 +++++++++--------- drivers/net/ethernet/ibm/emac/emac.h | 13 ------------ drivers/net/ethernet/ibm/emac/phy.c | 10 ++++----- drivers/net/ethernet/ibm/emac/rgmii.c | 20 +++++++++--------- drivers/net/ethernet/ibm/emac/zmii.c | 38 +++++++++++++++++------------------ 5 files changed, 44 insertions(+), 57 deletions(-) diff --git a/drivers/net/ethernet/ibm/emac/core.c b/drivers/net/ethernet/ibm/emac/core.c index 7feff2450ed6..27f592da7cfc 100644 --- a/drivers/net/ethernet/ibm/emac/core.c +++ b/drivers/net/ethernet/ibm/emac/core.c @@ -199,18 +199,18 @@ static void __emac_set_multicast_list(struct emac_instance *dev); static inline int emac_phy_supports_gige(int phy_mode) { - return phy_mode == PHY_MODE_GMII || - phy_mode == PHY_MODE_RGMII || - phy_mode == PHY_MODE_SGMII || - phy_mode == PHY_MODE_TBI || - phy_mode == PHY_MODE_RTBI; + return phy_mode == PHY_INTERFACE_MODE_GMII || + phy_mode == PHY_INTERFACE_MODE_RGMII || + phy_mode == PHY_INTERFACE_MODE_SGMII || + phy_mode == PHY_INTERFACE_MODE_TBI || + phy_mode == PHY_INTERFACE_MODE_RTBI; } static inline int emac_phy_gpcs(int phy_mode) { - return phy_mode == PHY_MODE_SGMII || - phy_mode == PHY_MODE_TBI || - phy_mode == PHY_MODE_RTBI; + return phy_mode == PHY_INTERFACE_MODE_SGMII || + phy_mode == PHY_INTERFACE_MODE_TBI || + phy_mode == PHY_INTERFACE_MODE_RTBI; } static inline void emac_tx_enable(struct emac_instance *dev) @@ -2865,7 +2865,7 @@ static int emac_init_config(struct emac_instance *dev) /* PHY mode needs some decoding */ dev->phy_mode = of_get_phy_mode(np); if (dev->phy_mode < 0) - dev->phy_mode = PHY_MODE_NA; + dev->phy_mode = PHY_INTERFACE_MODE_NA; /* Check EMAC version */ if (of_device_is_compatible(np, "ibm,emac4sync")) { @@ -3168,7 +3168,7 @@ static int emac_probe(struct platform_device *ofdev) printk(KERN_INFO "%s: EMAC-%d %pOF, MAC %pM\n", ndev->name, dev->cell_index, np, ndev->dev_addr); - if (dev->phy_mode == PHY_MODE_SGMII) + if (dev->phy_mode == PHY_INTERFACE_MODE_SGMII) printk(KERN_NOTICE "%s: in SGMII mode\n", ndev->name); if (dev->phy.address >= 0) diff --git a/drivers/net/ethernet/ibm/emac/emac.h b/drivers/net/ethernet/ibm/emac/emac.h index 5afcc27ceebb..bc14dcf27b6b 100644 --- a/drivers/net/ethernet/ibm/emac/emac.h +++ b/drivers/net/ethernet/ibm/emac/emac.h @@ -104,19 +104,6 @@ struct emac_regs { } u1; }; -/* - * PHY mode settings (EMAC <-> ZMII/RGMII bridge <-> PHY) - */ -#define PHY_MODE_NA PHY_INTERFACE_MODE_NA -#define PHY_MODE_MII PHY_INTERFACE_MODE_MII -#define PHY_MODE_RMII PHY_INTERFACE_MODE_RMII -#define PHY_MODE_SMII PHY_INTERFACE_MODE_SMII -#define PHY_MODE_RGMII PHY_INTERFACE_MODE_RGMII -#define PHY_MODE_TBI PHY_INTERFACE_MODE_TBI -#define PHY_MODE_GMII PHY_INTERFACE_MODE_GMII -#define PHY_MODE_RTBI PHY_INTERFACE_MODE_RTBI -#define PHY_MODE_SGMII PHY_INTERFACE_MODE_SGMII - /* EMACx_MR0 */ #define EMAC_MR0_RXI 0x80000000 #define EMAC_MR0_TXI 0x40000000 diff --git a/drivers/net/ethernet/ibm/emac/phy.c b/drivers/net/ethernet/ibm/emac/phy.c index 874949faa424..71ee13c34192 100644 --- a/drivers/net/ethernet/ibm/emac/phy.c +++ b/drivers/net/ethernet/ibm/emac/phy.c @@ -96,7 +96,7 @@ int emac_mii_reset_gpcs(struct mii_phy *phy) if ((val & BMCR_ISOLATE) && limit > 0) gpcs_phy_write(phy, MII_BMCR, val & ~BMCR_ISOLATE); - if (limit > 0 && phy->mode == PHY_MODE_SGMII) { + if (limit > 0 && phy->mode == PHY_INTERFACE_MODE_SGMII) { /* Configure GPCS interface to recommended setting for SGMII */ gpcs_phy_write(phy, 0x04, 0x8120); /* AsymPause, FDX */ gpcs_phy_write(phy, 0x07, 0x2801); /* msg_pg, toggle */ @@ -313,16 +313,16 @@ static int cis8201_init(struct mii_phy *phy) epcr &= ~EPCR_MODE_MASK; switch (phy->mode) { - case PHY_MODE_TBI: + case PHY_INTERFACE_MODE_TBI: epcr |= EPCR_TBI_MODE; break; - case PHY_MODE_RTBI: + case PHY_INTERFACE_MODE_RTBI: epcr |= EPCR_RTBI_MODE; break; - case PHY_MODE_GMII: + case PHY_INTERFACE_MODE_GMII: epcr |= EPCR_GMII_MODE; break; - case PHY_MODE_RGMII: + case PHY_INTERFACE_MODE_RGMII: default: epcr |= EPCR_RGMII_MODE; } diff --git a/drivers/net/ethernet/ibm/emac/rgmii.c b/drivers/net/ethernet/ibm/emac/rgmii.c index 9a1c06f2471d..5db225831e81 100644 --- a/drivers/net/ethernet/ibm/emac/rgmii.c +++ b/drivers/net/ethernet/ibm/emac/rgmii.c @@ -52,25 +52,25 @@ /* RGMII bridge supports only GMII/TBI and RGMII/RTBI PHYs */ static inline int rgmii_valid_mode(int phy_mode) { - return phy_mode == PHY_MODE_GMII || - phy_mode == PHY_MODE_MII || - phy_mode == PHY_MODE_RGMII || - phy_mode == PHY_MODE_TBI || - phy_mode == PHY_MODE_RTBI; + return 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; } static inline u32 rgmii_mode_mask(int mode, int input) { switch (mode) { - case PHY_MODE_RGMII: + case PHY_INTERFACE_MODE_RGMII: return RGMII_FER_RGMII(input); - case PHY_MODE_TBI: + case PHY_INTERFACE_MODE_TBI: return RGMII_FER_TBI(input); - case PHY_MODE_GMII: + case PHY_INTERFACE_MODE_GMII: return RGMII_FER_GMII(input); - case PHY_MODE_MII: + case PHY_INTERFACE_MODE_MII: return RGMII_FER_MII(input); - case PHY_MODE_RTBI: + case PHY_INTERFACE_MODE_RTBI: return RGMII_FER_RTBI(input); default: BUG(); diff --git a/drivers/net/ethernet/ibm/emac/zmii.c b/drivers/net/ethernet/ibm/emac/zmii.c index 89c42d362292..fdcc734541fe 100644 --- a/drivers/net/ethernet/ibm/emac/zmii.c +++ b/drivers/net/ethernet/ibm/emac/zmii.c @@ -49,20 +49,20 @@ */ static inline int zmii_valid_mode(int mode) { - return mode == PHY_MODE_MII || - mode == PHY_MODE_RMII || - mode == PHY_MODE_SMII || - mode == PHY_MODE_NA; + return mode == PHY_INTERFACE_MODE_MII || + mode == PHY_INTERFACE_MODE_RMII || + mode == PHY_INTERFACE_MODE_SMII || + mode == PHY_INTERFACE_MODE_NA; } static inline const char *zmii_mode_name(int mode) { switch (mode) { - case PHY_MODE_MII: + case PHY_INTERFACE_MODE_MII: return "MII"; - case PHY_MODE_RMII: + case PHY_INTERFACE_MODE_RMII: return "RMII"; - case PHY_MODE_SMII: + case PHY_INTERFACE_MODE_SMII: return "SMII"; default: BUG(); @@ -72,11 +72,11 @@ static inline const char *zmii_mode_name(int mode) static inline u32 zmii_mode_mask(int mode, int input) { switch (mode) { - case PHY_MODE_MII: + case PHY_INTERFACE_MODE_MII: return ZMII_FER_MII(input); - case PHY_MODE_RMII: + case PHY_INTERFACE_MODE_RMII: return ZMII_FER_RMII(input); - case PHY_MODE_SMII: + case PHY_INTERFACE_MODE_SMII: return ZMII_FER_SMII(input); default: return 0; @@ -106,27 +106,27 @@ int zmii_attach(struct platform_device *ofdev, int input, int *mode) * Please, always specify PHY mode in your board port to avoid * any surprises. */ - if (dev->mode == PHY_MODE_NA) { - if (*mode == PHY_MODE_NA) { + if (dev->mode == PHY_INTERFACE_MODE_NA) { + if (*mode == PHY_INTERFACE_MODE_NA) { u32 r = dev->fer_save; ZMII_DBG(dev, "autodetecting mode, FER = 0x%08x" NL, r); if (r & (ZMII_FER_MII(0) | ZMII_FER_MII(1))) - dev->mode = PHY_MODE_MII; + dev->mode = PHY_INTERFACE_MODE_MII; else if (r & (ZMII_FER_RMII(0) | ZMII_FER_RMII(1))) - dev->mode = PHY_MODE_RMII; + dev->mode = PHY_INTERFACE_MODE_RMII; else - dev->mode = PHY_MODE_SMII; - } else + dev->mode = PHY_INTERFACE_MODE_SMII; + } else { dev->mode = *mode; - + } printk(KERN_NOTICE "%pOF: bridge in %s mode\n", ofdev->dev.of_node, zmii_mode_name(dev->mode)); } else { /* All inputs must use the same mode */ - if (*mode != PHY_MODE_NA && *mode != dev->mode) { + if (*mode != PHY_INTERFACE_MODE_NA && *mode != dev->mode) { printk(KERN_ERR "%pOF: invalid mode %d specified for input %d\n", ofdev->dev.of_node, *mode, input); @@ -246,7 +246,7 @@ static int zmii_probe(struct platform_device *ofdev) mutex_init(&dev->lock); dev->ofdev = ofdev; - dev->mode = PHY_MODE_NA; + dev->mode = PHY_INTERFACE_MODE_NA; rc = -ENXIO; if (of_address_to_resource(np, 0, ®s)) { 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);