{"id":808610,"url":"http://patchwork.ozlabs.org/api/1.0/patches/808610/?format=json","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/1.0/projects/7/?format=json","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},"msgid":"<1504258863-2058-3-git-send-email-claudiu.manoil@nxp.com>","date":"2017-09-01T09:41:02","name":"[net,2/3] gianfar: Refactor link speed update (adjust_link)","commit_ref":null,"pull_url":null,"state":"changes-requested","archived":true,"hash":"25300a8b31411d0292f8f38c072dd81e8032fdcd","submitter":{"id":68115,"url":"http://patchwork.ozlabs.org/api/1.0/people/68115/?format=json","name":"Claudiu Manoil","email":"claudiu.manoil@nxp.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/1.0/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/1504258863-2058-3-git-send-email-claudiu.manoil@nxp.com/mbox/","series":[{"id":987,"url":"http://patchwork.ozlabs.org/api/1.0/series/987/?format=json","date":"2017-09-01T09:41:00","name":"gianfar: Tx flow control fix (adjust_link)","version":1,"mbox":"http://patchwork.ozlabs.org/series/987/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/808610/checks/","tags":{},"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>)","spf=fail (sender IP is 192.88.158.2)\n\tsmtp.mailfrom=nxp.com; davemloft.net; dkim=none (message not signed)\n\theader.d=none; davemloft.net;\n\tdmarc=fail action=none header.from=nxp.com; "],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xkDlS4Kj5z9sPk\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri,  1 Sep 2017 19:41:24 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751881AbdIAJlV (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 1 Sep 2017 05:41:21 -0400","from mail-bl2nam02on0076.outbound.protection.outlook.com\n\t([104.47.38.76]:57818\n\t\"EHLO NAM02-BL2-obe.outbound.protection.outlook.com\"\n\trhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP\n\tid S1751828AbdIAJlL (ORCPT <rfc822;netdev@vger.kernel.org>);\n\tFri, 1 Sep 2017 05:41:11 -0400","from CY4PR03CA0012.namprd03.prod.outlook.com (10.168.162.22) by\n\tCY1PR03MB2268.namprd03.prod.outlook.com (10.166.207.20) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id\n\t15.20.13.10; Fri, 1 Sep 2017 09:41:09 +0000","from BY2FFO11FD014.protection.gbl (2a01:111:f400:7c0c::111) by\n\tCY4PR03CA0012.outlook.office365.com (2603:10b6:903:33::22) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1385.9 via\n\tFrontend Transport; Fri, 1 Sep 2017 09:41:09 +0000","from az84smr01.freescale.net (192.88.158.2) by\n\tBY2FFO11FD014.mail.protection.outlook.com (10.1.14.76) with Microsoft\n\tSMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1385.11\n\tvia Frontend Transport; Fri, 1 Sep 2017 09:41:09 +0000","from fsr-ub1664-016.ea.freescale.net\n\t(fsr-ub1664-016.ea.freescale.net [10.171.71.216])\n\tby az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tv819f4K0024510; Fri, 1 Sep 2017 02:41:07 -0700"],"Received-SPF":"Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.158.2 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.158.2; helo=az84smr01.freescale.net;","From":"Claudiu Manoil <claudiu.manoil@nxp.com>","To":"<netdev@vger.kernel.org>","CC":"\"David S . Miller\" <davem@davemloft.net>","Subject":"[net 2/3] gianfar: Refactor link speed update (adjust_link)","Date":"Fri, 1 Sep 2017 12:41:02 +0300","Message-ID":"<1504258863-2058-3-git-send-email-claudiu.manoil@nxp.com>","X-Mailer":"git-send-email 2.7.4","In-Reply-To":"<1504258863-2058-1-git-send-email-claudiu.manoil@nxp.com>","References":"<1504258863-2058-1-git-send-email-claudiu.manoil@nxp.com>","X-EOPAttributedMessage":"0","X-Matching-Connectors":"131487324693813070;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()","X-Forefront-Antispam-Report":"CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(336005)(39380400002)(39860400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(189998001)(6666003)(5003940100001)(6916009)(86362001)(15650500001)(69596002)(97736004)(8936002)(81166006)(81156014)(305945005)(77096006)(2906002)(33646002)(2351001)(106466001)(5660300001)(105606002)(8676002)(356003)(76176999)(47776003)(36756003)(50986999)(53936002)(85426001)(50226002)(104016004)(48376002)(498600001)(626005)(4326008)(2950100002)(50466002)(110136004)(68736007);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2268;\n\tH:az84smr01.freescale.net; FPR:; SPF:Fail;\n\tPTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; ","X-Microsoft-Exchange-Diagnostics":["1; BY2FFO11FD014;\n\t1:EX1jvuylM9Lk57smMolKPEu8WHhB6IFEB0Oha3jI5y6ZRjV21tHkTXqTBQKS55X3oaDOsLMSzLbhPTJVBPdfZIf9QmWS+xTsqJop9DZG7wc3uEhY8y81v0/zI+U1iVAG","1; CY1PR03MB2268;\n\t3:fw4KiVPhtXct0xwHUfKKmpxWwkcPw2KWkjKv38ORWvmQeC78kZWYDdgS73s9Wj2poM4Da7Wa5AxqfV4EBMED8Q30QwTQ9YYmsgE550HG3cx4GkDZsSNIEVbuq71CIif44NiWFD0qbTGVp+A4Ki9ot+AfPapWOeutaREzpNCMBOEboeUC7A467zJrANGNEq05TE7NDrBdA0/dH1mRu8Srf3i/v7tIHzJ9ad9KEZp/P1FBfwmuaVN42yt+lY2ZPQyC9pAYdFKl+TWWxP/15Gu0ULjjulvfVK4ILBi3cbt5435kJD80eUZDYHz0/2KPTQN7dEfXPZ8G4aNFPbJFH9cjoQ==;\n\t25:zlboLjPjN3XNloWWAeUxcZsI7+x5K5OlZGGAMOUHb0vtFt3niVoVy3n48LzAi8WQygImvxC/7mV5OCzOHvkIWQJM6y+vyEgLWo4+gwv1KBGTTdLeuw5Z0cYj28S43pexo9DzKz/nwuFKc4zgozCtT4sFCv+tJlOqW4oQLL1PDoCseUzhgHFuRnSEml85FQ3wOf50t1T6/7SrBh4Cs6URxoINF4d733q8Dnly1JOs1E5yt3f4mg9THQMc2rDhUSrZU34DGKiOvfFwEJ3+WTAk73r74tu8GrUPWXVDFC9pgAz2C2KZfKUhVaSQUf9I0KxV8PQCGTL6rl8iZ6sKb+coqA==;\n\t31:c79FFDn5Z82PaiPLx4ULyik81B9yK9ZxAWGNGhblIT7bFrdq7y7PMCHR3GxYdZmI/Cit6qP/uQhGBPe4qHcnmS5pSxuGIKdzcY8dOxQyTpiecqHsNBD7fA7qczCryoJQYzTsS93g7ke2VId4yBUuwwIGRb876Jhngt9FzeSeO9I1vEknygKHsUNvlgVCFGaejyPpxqUo7p5Lpj11vK/9BOhiL9t7Omc9Dy2K5Le6vSY=","1; CY1PR03MB2268;\n\t4:EEVq/J4sIe02tWWl+ga55YCEKWSGizr3hdi8gXgu2oKMWLyJxHUmH19bcAXBq8BF28snSZ4woOmHDevr/tBwkm9sGMSvQDR3mAskplbziYB2t8XjtXdmZRG+aLH0s/+ye84zm2G8j3BM9wnskZggtWkGp07YTE1R5CdpCQLeOZ1DrUddWKN3Ndir9H/Bw4THXLipXXXS7IGQxqR3ky+2UdryLkYEGAiXMnZUkw4JLD61on/791wbD9zsqwaAer38nEVyrp3btmtyGyOEc2aNPDo4ud8TW4wkvrFFGgpWVOU=","1; CY1PR03MB2268;\n\t23:sMQ4rlKuoL6RgjwBOzCQ5qSeZslbCR5b/4RT/JN52iREPPyHnES4M0hpSGyD2lvPjNO3ZkyCt9R1fiZ2EDfDpTAMeA/puTHtHQowj/D9ZhS9i4BpGm8xviwrZSPWE94zpSgzj7XSOnLaapyxaED5ZkpFdNGAa9YHHCjjeLtygzYtbxZSOljD94pu81IK+GJ+VQOwBSH3dhfH2GCmH6K0Wjkz70CFdUt6tkIbWEmFZa/yf/pYjkTuMp//RuIYRvKszhSWpFXvvGSrkmE5i/B1nj+NNGMXpuAhvHaej6nYlUddB9rteFxiJMdiV0X29X5dBN3YcaXwFX4obRrdEEEt8X413Bw9GoUDqq45istaAqyofLwLoDnCb9LQxoyJEUAwrFCEFH1/cFX1wVmHg06dTzCxXo8t4kPIHxSEWTtHjixhFO+Vb6iyDbRRnrQ64j5gZNZBER0gkfWG42Ug9q74hOkdBn687IqttL55QDe/v7MiDNbZ72mbmKAekWtjuA2195YUvy80HIYqCJ6FKLKkJ57cVUT4R4dxGjMdUHMMHMeYiA8D6u3tIFH+9uNruC4PmaASZMS4fzmXyEVToG1fTBY8Sr4HQICgL/yY8MeYm0gAtAaKXoIS+wlU6YXvSgzMZFkbcjLWmDy0bvrNIEqvCvZaH45Inz8G1aKbMzuZXAe89Fmbkqhc5xOZ47kMzFylLhIgEwp1Yag7fkjakvVdmYq0Bb6ar1YZEBmk53iVB2wkOvTKkefqTtTzT8GwWbbQE3vQKGo/pImLk+BUQoXcI57nVyGrwvwJloQYk9puUzkVd09482Jwvl6OCDM9Lhgqyc3YySm4pemXfpdFnmTqM+381S57lPMP5/flFzfVS/witNk45qHewLHpGjEqMoj5GInO5eH93sU9jLGlmtzTmsKzF6ayyaZQtkMUiYwksS2qLYRBOw+6U58YLnnKmRstM85FRTsZN6rOlcSQxlOuGx4azfiwWo0QTaO2QxadzEfWwceE7oO0oG4GI6uTlmYdytZqV23y70WNJ4Rr5r0wUNofel79+4V6gW/eG5ONCq8WXnn9Z6FZXGGMfbOSCmFhiIv3OQYUEGq0bvtvkFvsIoXuDT30Kus+AfjZXlME9JRhA6bwuy1aGmW3V5x99lX7","1; CY1PR03MB2268;\n\t6:tnnJkts2UVBaHtdeRzEpaVvJYJPIeAD8eK02PnVwmdWM2NFRSg5hDWAiGIhKIrTFakjrL4hiWYNiROPBUeaUbsoZZcbwdg+pTupi7lObjWbe/ZQ4nEbzw1s6KLcNvE46f3+We9gqj+Ioj2gG9ZiPj7elKoaMw8v4q0divM+PqUwYzT6ufbv0wvDE4DseF45pPe91VxXi87951zjBrY7LciYIL9y4qdMGzeAfymtHYEXtO5v+MG/mNGIdIM71B/M6Ymu2raXmmGsaYCa1hp5YJnxRcnc1Csd8s1Etu+KYta4viZFanVGiKI8XYzz4aWsSS7YN8yvlADfQ/b1Mf/qCKQ==;\n\t5:nnWaVIjxlqHxVgdRfFw/+nPXlVd9dKIZfj/7v24MER5maZ22a3nmUBZuohpkSrEeC9aO22jR45RErWTjk2UqeTsglYCVAggOmzlkRoKFOCoWiYD/SutVLcafdko5nAOjYHXAOroxjpz+XFTYi1hKoA==;\n\t24:ncKMG7qO+lKdxVP0o34+YCYLv8JEh00UGEfTn3ec3d3OWQb6Hr90Q6PIFVN2Kfyc+eokIZpbQRI3DS87NACC+TxcxeaZrgIS/J+/S9aehEc=;\n\t7:Nh075rfONAoFgIl0affRsKrEaSPqSeJbyOaL+AItGXm2jop3HJL9B7mw0uTbD7R3TM4zAhNjMr+J2atjrXPdHCP0s3suSFPlj2xE1aTFqT2e8xuVQtsGc0rB/9r8Ob16/UHS+G91Q6QHMGrkTZuvjEqNJBPY7wWf3bUhVpos4R+/dEcpt9wTWBYM07UCVEomsGYDvucrM7PVmUhwI6KwN8lr4/QuOIIYjNgjd2nqbgQ="],"MIME-Version":"1.0","Content-Type":"text/plain","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"210cc3e9-0dc0-4771-4c46-08d4f11d933b","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(300000503095)(300135400095)(2017052603199)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:CY1PR03MB2268; ","X-MS-TrafficTypeDiagnostic":"CY1PR03MB2268:","X-Exchange-Antispam-Report-Test":"UriScan:(185117386973197);","X-Microsoft-Antispam-PRVS":"<CY1PR03MB22689A2B95F9277F57AC6BCF96920@CY1PR03MB2268.namprd03.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(5005006)(8121501046)(13016025)(13018025)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6096035)(20161123559100)(20161123565025)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(20161123556025)(20161123563025)(20161123561025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:CY1PR03MB2268; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:CY1PR03MB2268; ","X-Forefront-PRVS":"0417A3FFD2","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"01 Sep 2017 09:41:09.1317\n\t(UTC)","X-MS-Exchange-CrossTenant-Id":"5afe0b00-7697-4969-b663-5eab37d5f47e","X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp":"TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;\n\tIp=[192.88.158.2]; Helo=[az84smr01.freescale.net]","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CY1PR03MB2268","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"Encapsulate link speed update logic. These settings affect only\nthe maccfg2 and ecntrl regs.\n\nSigned-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>\n---\n drivers/net/ethernet/freescale/gianfar.c | 92 +++++++++++++++++---------------\n 1 file changed, 49 insertions(+), 43 deletions(-)","diff":"diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c\nindex 5be52d8..46880a9 100644\n--- a/drivers/net/ethernet/freescale/gianfar.c\n+++ b/drivers/net/ethernet/freescale/gianfar.c\n@@ -3672,6 +3672,54 @@ static u32 gfar_get_flowctrl_cfg(struct gfar_private *priv)\n \treturn val;\n }\n \n+static void gfar_update_link_speed(struct gfar_private *priv)\n+{\n+\tstruct gfar __iomem *regs = priv->gfargrp[0].regs;\n+\tstruct phy_device *phydev = priv->ndev->phydev;\n+\tu32 maccfg2, ecntrl;\n+\n+\tmaccfg2 = gfar_read(&regs->maccfg2);\n+\tecntrl = gfar_read(&regs->ecntrl);\n+\n+\tif (phydev->duplex != priv->oldduplex) {\n+\t\tif (!(phydev->duplex))\n+\t\t\tmaccfg2 &= ~(MACCFG2_FULL_DUPLEX);\n+\t\telse\n+\t\t\tmaccfg2 |= MACCFG2_FULL_DUPLEX;\n+\n+\t\tpriv->oldduplex = phydev->duplex;\n+\t}\n+\n+\tif (phydev->speed != priv->oldspeed) {\n+\t\tswitch (phydev->speed) {\n+\t\tcase 1000:\n+\t\t\tmaccfg2 = ((maccfg2 & ~(MACCFG2_IF)) | MACCFG2_GMII);\n+\n+\t\t\tecntrl &= ~(ECNTRL_R100);\n+\t\t\tbreak;\n+\t\tcase 100:\n+\t\tcase 10:\n+\t\t\tmaccfg2 = ((maccfg2 & ~(MACCFG2_IF)) | MACCFG2_MII);\n+\n+\t\t\t/* Reduced mode distinguishes between 10 and 100 */\n+\t\t\tif (phydev->speed == SPEED_100)\n+\t\t\t\tecntrl |= ECNTRL_R100;\n+\t\t\telse\n+\t\t\t\tecntrl &= ~(ECNTRL_R100);\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\tnetif_warn(priv, link, priv->ndev,\n+\t\t\t\t   \"Invalid link speed!\\n\");\n+\t\t\tbreak;\n+\t\t}\n+\n+\t\tpriv->oldspeed = phydev->speed;\n+\t}\n+\n+\tgfar_write(&regs->maccfg2, maccfg2);\n+\tgfar_write(&regs->ecntrl, ecntrl);\n+}\n+\n static noinline void gfar_update_link_state(struct gfar_private *priv)\n {\n \tstruct gfar __iomem *regs = priv->gfargrp[0].regs;\n@@ -3685,49 +3733,9 @@ static noinline void gfar_update_link_state(struct gfar_private *priv)\n \n \tif (phydev->link) {\n \t\tu32 tempval1 = gfar_read(&regs->maccfg1);\n-\t\tu32 tempval = gfar_read(&regs->maccfg2);\n-\t\tu32 ecntrl = gfar_read(&regs->ecntrl);\n \t\tu32 tx_flow_oldval = (tempval1 & MACCFG1_TX_FLOW);\n \n-\t\tif (phydev->duplex != priv->oldduplex) {\n-\t\t\tif (!(phydev->duplex))\n-\t\t\t\ttempval &= ~(MACCFG2_FULL_DUPLEX);\n-\t\t\telse\n-\t\t\t\ttempval |= MACCFG2_FULL_DUPLEX;\n-\n-\t\t\tpriv->oldduplex = phydev->duplex;\n-\t\t}\n-\n-\t\tif (phydev->speed != priv->oldspeed) {\n-\t\t\tswitch (phydev->speed) {\n-\t\t\tcase 1000:\n-\t\t\t\ttempval =\n-\t\t\t\t    ((tempval & ~(MACCFG2_IF)) | MACCFG2_GMII);\n-\n-\t\t\t\tecntrl &= ~(ECNTRL_R100);\n-\t\t\t\tbreak;\n-\t\t\tcase 100:\n-\t\t\tcase 10:\n-\t\t\t\ttempval =\n-\t\t\t\t    ((tempval & ~(MACCFG2_IF)) | MACCFG2_MII);\n-\n-\t\t\t\t/* Reduced mode distinguishes\n-\t\t\t\t * between 10 and 100\n-\t\t\t\t */\n-\t\t\t\tif (phydev->speed == SPEED_100)\n-\t\t\t\t\tecntrl |= ECNTRL_R100;\n-\t\t\t\telse\n-\t\t\t\t\tecntrl &= ~(ECNTRL_R100);\n-\t\t\t\tbreak;\n-\t\t\tdefault:\n-\t\t\t\tnetif_warn(priv, link, priv->ndev,\n-\t\t\t\t\t   \"Ack!  Speed (%d) is not 10/100/1000!\\n\",\n-\t\t\t\t\t   phydev->speed);\n-\t\t\t\tbreak;\n-\t\t\t}\n-\n-\t\t\tpriv->oldspeed = phydev->speed;\n-\t\t}\n+\t\tgfar_update_link_speed(priv);\n \n \t\ttempval1 &= ~(MACCFG1_TX_FLOW | MACCFG1_RX_FLOW);\n \t\ttempval1 |= gfar_get_flowctrl_cfg(priv);\n@@ -3749,8 +3757,6 @@ static noinline void gfar_update_link_state(struct gfar_private *priv)\n \t\t\tpriv->tx_actual_en = 0;\n \n \t\tgfar_write(&regs->maccfg1, tempval1);\n-\t\tgfar_write(&regs->maccfg2, tempval);\n-\t\tgfar_write(&regs->ecntrl, ecntrl);\n \n \t\tif (!priv->oldlink)\n \t\t\tpriv->oldlink = 1;\n","prefixes":["net","2/3"]}