Why I did it Add platform support for Debian 12 (Bookworm) on Mellanox Platform How I did it Update hw-management to v7.0030.2008 Deprecate the sfp_count == module_count approach in favour of asic init completion Ref: Mellanox/hw-mgmt@bf4f593 Add xxd package to base image which is required by hw-management scripts Add the non-upstream flag into linux kernel cache options Update the thermalctl logic based on new sysfs attributes Fix the integrate-mlnx-hw-mgmt script to not populate the arm64 Kconfig How to verify it Build kernel and run platform tests Signed-off-by: Vivek Reddy <vkarri@nvidia.com> Co-authored-by: Junchao-Mellanox <junchao@nvidia.com> Co-authored-by: Junchao-Mellanox <57339448+Junchao-Mellanox@users.noreply.github.com>
86 lines
2.9 KiB
Diff
86 lines
2.9 KiB
Diff
From 7a9c30f4e3f19eb533acce3d3c63de87d18bac1d Mon Sep 17 00:00:00 2001
|
|
From: Asmaa Mnebhi <asmaa@nvidia.com>
|
|
Date: Tue, 28 Feb 2023 18:03:12 -0500
|
|
Subject: [PATCH backport 6.1.42 71/85] UBUNTU: SAUCE: mlxbf-gige: Fix
|
|
intermittent no ip issue
|
|
|
|
BugLink: https://bugs.launchpad.net/bugs/2008833
|
|
|
|
During the reboot test, the OOB might not get an ip assigned.
|
|
This is due to a race condition between phy_startcall and the
|
|
RX DMA being enabled and depends on the amount of background
|
|
traffic received by the OOB. Enable the RX DMA after teh phy
|
|
is started.
|
|
|
|
Signed-off-by: Asmaa Mnebhi <asmaa@nvidia.com>
|
|
Acked-by: Tim Gardner <tim.gardner@canonical.com>
|
|
Acked-by: Bartlomiej Zolnierkiewicz <bartlomiej.zolnierkiewicz@canonical.com>
|
|
Signed-off-by: Bartlomiej Zolnierkiewicz <bartlomiej.zolnierkiewicz@canonical.com>
|
|
---
|
|
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c | 14 +++++++-------
|
|
.../ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c | 6 +++---
|
|
2 files changed, 10 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c
|
|
index 2292d63a279c..eafc0d3313fd 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c
|
|
@@ -147,14 +147,14 @@ static int mlxbf_gige_open(struct net_device *netdev)
|
|
*/
|
|
priv->valid_polarity = 0;
|
|
|
|
- err = mlxbf_gige_rx_init(priv);
|
|
+ phy_start(phydev);
|
|
+
|
|
+ err = mlxbf_gige_tx_init(priv);
|
|
if (err)
|
|
goto free_irqs;
|
|
- err = mlxbf_gige_tx_init(priv);
|
|
+ err = mlxbf_gige_rx_init(priv);
|
|
if (err)
|
|
- goto rx_deinit;
|
|
-
|
|
- phy_start(phydev);
|
|
+ goto tx_deinit;
|
|
|
|
netif_napi_add(netdev, &priv->napi, mlxbf_gige_poll);
|
|
napi_enable(&priv->napi);
|
|
@@ -176,8 +176,8 @@ static int mlxbf_gige_open(struct net_device *netdev)
|
|
|
|
return 0;
|
|
|
|
-rx_deinit:
|
|
- mlxbf_gige_rx_deinit(priv);
|
|
+tx_deinit:
|
|
+ mlxbf_gige_tx_deinit(priv);
|
|
|
|
free_irqs:
|
|
mlxbf_gige_free_irqs(priv);
|
|
diff --git a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c
|
|
index dc05ab5b042a..b9cf0a3c8b0f 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c
|
|
@@ -142,6 +142,9 @@ int mlxbf_gige_rx_init(struct mlxbf_gige *priv)
|
|
writeq(MLXBF_GIGE_RX_MAC_FILTER_COUNT_PASS_EN,
|
|
priv->base + MLXBF_GIGE_RX_MAC_FILTER_COUNT_PASS);
|
|
|
|
+ writeq(ilog2(priv->rx_q_entries),
|
|
+ priv->base + MLXBF_GIGE_RX_WQE_SIZE_LOG2);
|
|
+
|
|
/* Clear MLXBF_GIGE_INT_MASK 'receive pkt' bit to
|
|
* indicate readiness to receive interrupts
|
|
*/
|
|
@@ -154,9 +157,6 @@ int mlxbf_gige_rx_init(struct mlxbf_gige *priv)
|
|
data |= MLXBF_GIGE_RX_DMA_EN;
|
|
writeq(data, priv->base + MLXBF_GIGE_RX_DMA);
|
|
|
|
- writeq(ilog2(priv->rx_q_entries),
|
|
- priv->base + MLXBF_GIGE_RX_WQE_SIZE_LOG2);
|
|
-
|
|
return 0;
|
|
|
|
free_wqe_and_skb:
|
|
--
|
|
2.20.1
|
|
|