From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by dpdk.org (Postfix) with ESMTP id 7840B1B83D for ; Fri, 9 Feb 2018 11:41:27 +0100 (CET) Received: by mail-wm0-f68.google.com with SMTP id t74so14618620wme.3 for ; Fri, 09 Feb 2018 02:41:27 -0800 (PST) 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; bh=v/DEB+BGkd81tKG+0V+myZjIHbE4zQhPof8IFYpQjt0=; b=Ou1YHX4zqwT77u8frUNwdK4dvxHbaQ0wfqoW8Y/xIcn4MX9PWe75WatHVyUBcqqeRp ny/rtZ7f7jtAmJ+WIm//Qu+LdzEO62DiFeXEQmEx0I7SU5HupnohCpzNSoAv33j4qeyY IsXipA0ehq066Ho2N43anCPan8T1gtlGvw8bwNzf/cC/CLGflyJxZzTGzq1Brfs5Pdby XP/XHJnM9E3RP/WqmxqvWB9dRQnnlPteFgmOnjmWYReKQFx4rmGT8fJjJdOIdGpROdm6 XrogKazqU/+7fW7YNwLNx/s99NS+8xjuZLXaNGrKjI5TfCBldGq+GkZfx42SMG5P/pmC ojyQ== X-Gm-Message-State: APf1xPC4eN7Fijp1QZJlmXDqAWxIYS2Aj8h/ZSfqJ03/zIedWbmBtmy2 alBvTBzCdY36E4Ox08m/7xY= X-Google-Smtp-Source: AH8x22662eoMm3Jj1TWt2jp/mpErp5GMtzSfklLjEIHFelKFMurC1p46bMD32IfP4ueXtGyj5llY8w== X-Received: by 10.28.92.70 with SMTP id q67mr1647138wmb.43.1518172887197; Fri, 09 Feb 2018 02:41:27 -0800 (PST) Received: from localhost ([2a00:23c5:bef3:400:9531:588b:44ae:bec4]) by smtp.gmail.com with ESMTPSA id 198sm2411389wmo.36.2018.02.09.02.41.26 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 09 Feb 2018 02:41:26 -0800 (PST) From: Luca Boccassi To: Ajit Khaparde Cc: dpdk stable Date: Fri, 9 Feb 2018 10:40:29 +0000 Message-Id: <20180209104031.23195-2-bluca@debian.org> X-Mailer: git-send-email 2.14.2 In-Reply-To: <20180209104031.23195-1-bluca@debian.org> References: <20180207164705.29052-1-luca.boccassi@gmail.com> <20180209104031.23195-1-bluca@debian.org> Subject: [dpdk-stable] patch 'net/bnxt: fix link speed setting with autoneg off' has been queued to LTS release 16.11.5 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Feb 2018 10:41:27 -0000 Hi, FYI, your patch has been queued to LTS release 16.11.5 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 02/11/18. So please shout if anyone has objections. Thanks. Luca Boccassi --- >>From 8b86c92c7fd052a5f149ddd0f7e5c8e452d21482 Mon Sep 17 00:00:00 2001 From: Ajit Khaparde Date: Tue, 6 Feb 2018 17:16:14 -0800 Subject: [PATCH] net/bnxt: fix link speed setting with autoneg off [ upstream commit 90cc14d77359bb3f8e48f4ef966ee77a52703949 ] When Autoneg is turned off especially on remote side, link does not come up. This patch fixes that. Fixes: 7bc8e9a227cc ("net/bnxt: support async link notification") Signed-off-by: Ajit Khaparde --- drivers/net/bnxt/bnxt.h | 1 + drivers/net/bnxt/bnxt_hwrm.c | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index ff3c24063..b934605ef 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -110,6 +110,7 @@ struct bnxt_link_info { uint16_t link_speed; uint16_t support_speeds; uint16_t auto_link_speed; + uint16_t force_link_speed; uint16_t auto_link_speed_mask; uint32_t preemphasis; uint8_t phy_type; diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index af6ae8bba..8ff4c15d4 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -504,7 +504,8 @@ static int bnxt_hwrm_port_phy_cfg(struct bnxt *bp, struct bnxt_link_info *conf) HWRM_PORT_PHY_CFG_INPUT_AUTO_MODE_ALL_SPEEDS; } /* AutoNeg - Advertise speeds specified. */ - if (conf->auto_link_speed_mask) { + if (conf->auto_link_speed_mask && + !(conf->phy_flags & HWRM_PORT_PHY_CFG_INPUT_FLAGS_FORCE)) { req.auto_mode = HWRM_PORT_PHY_CFG_INPUT_AUTO_MODE_SPEED_MASK; req.auto_link_speed_mask = @@ -566,6 +567,7 @@ static int bnxt_hwrm_port_phy_qcfg(struct bnxt *bp, link_info->support_speeds = rte_le_to_cpu_16(resp->support_speeds); link_info->auto_link_speed = rte_le_to_cpu_16(resp->auto_link_speed); link_info->preemphasis = rte_le_to_cpu_32(resp->preemphasis); + link_info->force_link_speed = rte_le_to_cpu_16(resp->force_link_speed); link_info->phy_ver[0] = resp->phy_maj; link_info->phy_ver[1] = resp->phy_min; link_info->phy_ver[2] = resp->phy_bld; @@ -1521,7 +1523,9 @@ int bnxt_set_hwrm_link_config(struct bnxt *bp, bool link_up) autoneg = bnxt_check_eth_link_autoneg(dev_conf->link_speeds); speed = bnxt_parse_eth_link_speed(dev_conf->link_speeds); link_req.phy_flags = HWRM_PORT_PHY_CFG_INPUT_FLAGS_RESET_PHY; - if (autoneg == 1) { + /* Autoneg can be done only when the FW allows */ + if (autoneg == 1 && !(bp->link_info.auto_link_speed || + bp->link_info.force_link_speed)) { link_req.phy_flags |= HWRM_PORT_PHY_CFG_INPUT_FLAGS_RESTART_AUTONEG; link_req.auto_link_speed_mask = @@ -1539,7 +1543,13 @@ int bnxt_set_hwrm_link_config(struct bnxt *bp, bool link_up) } link_req.phy_flags |= HWRM_PORT_PHY_CFG_INPUT_FLAGS_FORCE; - link_req.link_speed = speed; + /* If user wants a particular speed try that first. */ + if (speed) + link_req.link_speed = speed; + else if (bp->link_info.force_link_speed) + link_req.link_speed = bp->link_info.force_link_speed; + else + link_req.link_speed = bp->link_info.auto_link_speed; } link_req.duplex = bnxt_parse_eth_link_duplex(dev_conf->link_speeds); link_req.auto_pause = bp->link_info.auto_pause; -- 2.14.2