Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/807483/?format=api
{ "id": 807483, "url": "http://patchwork.ozlabs.org/api/patches/807483/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/20170830082924.3180-8-antoine.tenart@free-electrons.com/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api", "name": "Linux network development", "link_name": "netdev", "list_id": "netdev.vger.kernel.org", "list_email": "netdev@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170830082924.3180-8-antoine.tenart@free-electrons.com>", "list_archive_url": null, "date": "2017-08-30T08:29:18", "name": "[net-next,v4,07/13] net: mvpp2: do not set GMAC autoneg when using XLG MAC", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "2246e80603eec2b8c97c943c098a3e1269f7abd0", "submitter": { "id": 61603, "url": "http://patchwork.ozlabs.org/api/people/61603/?format=api", "name": "Antoine Tenart", "email": "antoine.tenart@free-electrons.com" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/20170830082924.3180-8-antoine.tenart@free-electrons.com/mbox/", "series": [ { "id": 550, "url": "http://patchwork.ozlabs.org/api/series/550/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=550", "date": "2017-08-30T08:29:24", "name": "net: mvpp2: comphy configuration", "version": 4, "mbox": "http://patchwork.ozlabs.org/series/550/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/807483/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/807483/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming@ozlabs.org", "Delivered-To": "patchwork-incoming@ozlabs.org", "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)", "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xhzLF5jMSz9sRq\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 30 Aug 2017 18:33:41 +1000 (AEST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751872AbdH3IcO (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 30 Aug 2017 04:32:14 -0400", "from mail.free-electrons.com ([62.4.15.54]:58156 \"EHLO\n\tmail.free-electrons.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751485AbdH3I3u (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Wed, 30 Aug 2017 04:29:50 -0400", "by mail.free-electrons.com (Postfix, from userid 110)\n\tid 2BA5A21F5A; Wed, 30 Aug 2017 10:29:48 +0200 (CEST)", "from localhost (LStLambert-657-1-97-87.w90-63.abo.wanadoo.fr\n\t[90.63.216.87])\n\tby mail.free-electrons.com (Postfix) with ESMTPSA id 9123D21FAA;\n\tWed, 30 Aug 2017 10:29:29 +0200 (CEST)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.0 (2014-02-07) on\n\tmail.free-electrons.com", "X-Spam-Level": "", "X-Spam-Status": "No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT,\n\tURIBL_BLOCKED shortcircuit=ham autolearn=disabled version=3.4.0", "From": "Antoine Tenart <antoine.tenart@free-electrons.com>", "To": "davem@davemloft.net, kishon@ti.com, andrew@lunn.ch,\n\tjason@lakedaemon.net, sebastian.hesselbarth@gmail.com,\n\tgregory.clement@free-electrons.com", "Cc": "Antoine Tenart <antoine.tenart@free-electrons.com>,\n\tthomas.petazzoni@free-electrons.com, nadavh@marvell.com,\n\tlinux@armlinux.org.uk, linux-kernel@vger.kernel.org,\n\tmw@semihalf.com, stefanc@marvell.com,\n\tmiquel.raynal@free-electrons.com, netdev@vger.kernel.org", "Subject": "[PATCH net-next v4 07/13] net: mvpp2: do not set GMAC autoneg when\n\tusing XLG MAC", "Date": "Wed, 30 Aug 2017 10:29:18 +0200", "Message-Id": "<20170830082924.3180-8-antoine.tenart@free-electrons.com>", "X-Mailer": "git-send-email 2.13.5", "In-Reply-To": "<20170830082924.3180-1-antoine.tenart@free-electrons.com>", "References": "<20170830082924.3180-1-antoine.tenart@free-electrons.com>", "Sender": "netdev-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "When using the XLG MAC, it does not make sense to force the GMAC autoneg\nparameters. This patch adds checks to only set the GMAC autoneg\nparameters when needed (i.e. when not using the XLG MAC).\n\nSigned-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>\n---\n drivers/net/ethernet/marvell/mvpp2.c | 64 +++++++++++++++++++++++-------------\n 1 file changed, 42 insertions(+), 22 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c\nindex 09cad32734f3..2f05a0b0773c 100644\n--- a/drivers/net/ethernet/marvell/mvpp2.c\n+++ b/drivers/net/ethernet/marvell/mvpp2.c\n@@ -5735,6 +5735,37 @@ static irqreturn_t mvpp2_isr(int irq, void *dev_id)\n \treturn IRQ_HANDLED;\n }\n \n+static void mvpp2_gmac_set_autoneg(struct mvpp2_port *port,\n+\t\t\t\t struct phy_device *phydev)\n+{\n+\tu32 val;\n+\n+\tif (port->phy_interface != PHY_INTERFACE_MODE_RGMII &&\n+\t port->phy_interface != PHY_INTERFACE_MODE_RGMII_ID &&\n+\t port->phy_interface != PHY_INTERFACE_MODE_RGMII_RXID &&\n+\t port->phy_interface != PHY_INTERFACE_MODE_RGMII_TXID &&\n+\t port->phy_interface != PHY_INTERFACE_MODE_SGMII)\n+\t\treturn;\n+\n+\tval = readl(port->base + MVPP2_GMAC_AUTONEG_CONFIG);\n+\tval &= ~(MVPP2_GMAC_CONFIG_MII_SPEED |\n+\t\t MVPP2_GMAC_CONFIG_GMII_SPEED |\n+\t\t MVPP2_GMAC_CONFIG_FULL_DUPLEX |\n+\t\t MVPP2_GMAC_AN_SPEED_EN |\n+\t\t MVPP2_GMAC_AN_DUPLEX_EN);\n+\n+\tif (phydev->duplex)\n+\t\tval |= MVPP2_GMAC_CONFIG_FULL_DUPLEX;\n+\n+\tif (phydev->speed == SPEED_1000)\n+\t\tval |= MVPP2_GMAC_CONFIG_GMII_SPEED;\n+\telse if (phydev->speed == SPEED_100)\n+\t\tval |= MVPP2_GMAC_CONFIG_MII_SPEED;\n+\n+\twritel(val, port->base + MVPP2_GMAC_AUTONEG_CONFIG);\n+\n+}\n+\n /* Adjust link */\n static void mvpp2_link_event(struct net_device *dev)\n {\n@@ -5745,24 +5776,7 @@ static void mvpp2_link_event(struct net_device *dev)\n \tif (phydev->link) {\n \t\tif ((port->speed != phydev->speed) ||\n \t\t (port->duplex != phydev->duplex)) {\n-\t\t\tu32 val;\n-\n-\t\t\tval = readl(port->base + MVPP2_GMAC_AUTONEG_CONFIG);\n-\t\t\tval &= ~(MVPP2_GMAC_CONFIG_MII_SPEED |\n-\t\t\t\t MVPP2_GMAC_CONFIG_GMII_SPEED |\n-\t\t\t\t MVPP2_GMAC_CONFIG_FULL_DUPLEX |\n-\t\t\t\t MVPP2_GMAC_AN_SPEED_EN |\n-\t\t\t\t MVPP2_GMAC_AN_DUPLEX_EN);\n-\n-\t\t\tif (phydev->duplex)\n-\t\t\t\tval |= MVPP2_GMAC_CONFIG_FULL_DUPLEX;\n-\n-\t\t\tif (phydev->speed == SPEED_1000)\n-\t\t\t\tval |= MVPP2_GMAC_CONFIG_GMII_SPEED;\n-\t\t\telse if (phydev->speed == SPEED_100)\n-\t\t\t\tval |= MVPP2_GMAC_CONFIG_MII_SPEED;\n-\n-\t\t\twritel(val, port->base + MVPP2_GMAC_AUTONEG_CONFIG);\n+\t\t\tmvpp2_gmac_set_autoneg(port, phydev);\n \n \t\t\tport->duplex = phydev->duplex;\n \t\t\tport->speed = phydev->speed;\n@@ -5773,10 +5787,16 @@ static void mvpp2_link_event(struct net_device *dev)\n \t\tport->link = phydev->link;\n \n \t\tif (phydev->link) {\n-\t\t\tval = readl(port->base + MVPP2_GMAC_AUTONEG_CONFIG);\n-\t\t\tval |= (MVPP2_GMAC_FORCE_LINK_PASS |\n-\t\t\t\tMVPP2_GMAC_FORCE_LINK_DOWN);\n-\t\t\twritel(val, port->base + MVPP2_GMAC_AUTONEG_CONFIG);\n+\t\t\tif (port->phy_interface == PHY_INTERFACE_MODE_RGMII ||\n+\t\t\t port->phy_interface == PHY_INTERFACE_MODE_RGMII_ID ||\n+\t\t\t port->phy_interface == PHY_INTERFACE_MODE_RGMII_RXID ||\n+\t\t\t port->phy_interface == PHY_INTERFACE_MODE_RGMII_TXID ||\n+\t\t\t port->phy_interface == PHY_INTERFACE_MODE_SGMII) {\n+\t\t\t\tval = readl(port->base + MVPP2_GMAC_AUTONEG_CONFIG);\n+\t\t\t\tval |= (MVPP2_GMAC_FORCE_LINK_PASS |\n+\t\t\t\t\tMVPP2_GMAC_FORCE_LINK_DOWN);\n+\t\t\t\twritel(val, port->base + MVPP2_GMAC_AUTONEG_CONFIG);\n+\t\t\t}\n \n \t\t\tmvpp2_interrupts_enable(port);\n \t\t\tmvpp2_port_enable(port);\n", "prefixes": [ "net-next", "v4", "07/13" ] }