DPDK patches and discussions
 help / color / mirror / Atom feed
From: Anatoly Burakov <anatoly.burakov@intel.com>
To: dev@dpdk.org
Subject: [PATCH v1 08/15] net/ixgbe/base: fix speed autonegotiation on E610
Date: Thu, 29 Aug 2024 10:00:13 +0100	[thread overview]
Message-ID: <8f675b72a11236172d740240bfb81fb1ee410e9f.1724921977.git.anatoly.burakov@intel.com> (raw)
In-Reply-To: <a16bd1264adbd56fefbf1413f27cde338959f61c.1724921977.git.anatoly.burakov@intel.com>

From: Krzysztof Galazka <krzysztof.galazka@intel.com>

When user changed advertised speed settings and link was already up
driver asked FW only for active PHY configuration. This prevented it from
adding speeds, which are supported but was earlier disabled by user. Get
all speeds supported by HW to allow user enabling any of them.

Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 drivers/net/ixgbe/base/ixgbe_e610.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ixgbe/base/ixgbe_e610.c b/drivers/net/ixgbe/base/ixgbe_e610.c
index b9b1ba32c3..6eaf377f4a 100644
--- a/drivers/net/ixgbe/base/ixgbe_e610.c
+++ b/drivers/net/ixgbe/base/ixgbe_e610.c
@@ -4342,7 +4342,8 @@ s32 ixgbe_setup_phy_link_E610(struct ixgbe_hw *hw)
 {
 	struct ixgbe_aci_cmd_get_phy_caps_data pcaps;
 	struct ixgbe_aci_cmd_set_phy_cfg_data pcfg;
-	u8 rmode = IXGBE_ACI_REPORT_ACTIVE_CFG;
+	u8 rmode = IXGBE_ACI_REPORT_TOPO_CAP_MEDIA;
+	u64 sup_phy_type_low, sup_phy_type_high;
 	s32 rc;
 
 	rc = ixgbe_aci_get_link_info(hw, false, NULL);
@@ -4359,6 +4360,15 @@ s32 ixgbe_setup_phy_link_E610(struct ixgbe_hw *hw)
 		goto err;
 	}
 
+	sup_phy_type_low = pcaps.phy_type_low;
+	sup_phy_type_high = pcaps.phy_type_high;
+
+	/* Get Active configuration to avoid unintended changes */
+	rc = ixgbe_aci_get_phy_caps(hw, false, IXGBE_ACI_REPORT_ACTIVE_CFG,
+				    &pcaps);
+	if (rc) {
+		goto err;
+	}
 	ixgbe_copy_phy_caps_to_cfg(&pcaps, &pcfg);
 
 	/* Set default PHY types for a given speed */
@@ -4406,8 +4416,8 @@ s32 ixgbe_setup_phy_link_E610(struct ixgbe_hw *hw)
 	}
 
 	/* Mask the set values to avoid requesting unsupported link types */
-	pcfg.phy_type_low &= pcaps.phy_type_low;
-	pcfg.phy_type_high &= pcaps.phy_type_high;
+	pcfg.phy_type_low &= sup_phy_type_low;
+	pcfg.phy_type_high &= sup_phy_type_high;
 
 	if (pcfg.phy_type_high != pcaps.phy_type_high ||
 	    pcfg.phy_type_low != pcaps.phy_type_low ||
-- 
2.43.5


  parent reply	other threads:[~2024-08-29  9:01 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-29  9:00 [PATCH v1 01/15] net/ixgbe/base: remove minsrevs code from DPDK Anatoly Burakov
2024-08-29  9:00 ` [PATCH v1 02/15] net/ixgbe/base: add missing ACI definitions Anatoly Burakov
2024-09-03 10:32   ` Bruce Richardson
2024-08-29  9:00 ` [PATCH v1 03/15] net/ixgbe/base: add missing E610 definitions Anatoly Burakov
2024-08-29  9:00 ` [PATCH v1 04/15] net/ixgbe/base: add missing legacy mailbox API Anatoly Burakov
2024-08-29  9:00 ` [PATCH v1 05/15] net/ixgbe/base: add E610 VF HV macro Anatoly Burakov
2024-08-29  9:00 ` [PATCH v1 06/15] net/ixgbe/base: fix unchecked return value Anatoly Burakov
2024-08-29  9:00 ` [PATCH v1 07/15] net/ixgbe/base: fix media type handling for E610 Anatoly Burakov
2024-08-29  9:00 ` Anatoly Burakov [this message]
2024-08-29  9:00 ` [PATCH v1 09/15] net/ixgbe/base: FW API version update Anatoly Burakov
2024-08-29  9:00 ` [PATCH v1 10/15] net/ixgbe/base: handle 5G link speed for E610 Anatoly Burakov
2024-08-29  9:00 ` [PATCH v1 11/15] net/ixgbe/base: remove FW API version check Anatoly Burakov
2024-08-29  9:00 ` [PATCH v1 12/15] net/ixgbe/base: disable thermal sensor ops for E610 Anatoly Burakov
2024-08-29  9:00 ` [PATCH v1 13/15] net/ixgbe/base: fix mailbox ACK handling Anatoly Burakov
2024-08-29  9:00 ` [PATCH v1 14/15] net/ixgbe/base: correct NVM access type for EEPROM writes on E610 Anatoly Burakov
2024-08-29  9:00 ` [PATCH v1 15/15] net/ixgbe: add PCI IDs for new device variants Anatoly Burakov
2024-09-03 14:08 ` [PATCH v1 01/15] net/ixgbe/base: remove minsrevs code from DPDK Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8f675b72a11236172d740240bfb81fb1ee410e9f.1724921977.git.anatoly.burakov@intel.com \
    --to=anatoly.burakov@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).