Message ID | 20240105160014.23353-1-asmaa@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Commit | a460f4a684511e007bbf1700758a41f05d9981e6 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v4] mlxbf_gige: Enable the GigE port in mlxbf_gige_open | expand |
Hello: This patch was applied to netdev/net.git (main) by David S. Miller <davem@davemloft.net>: On Fri, 5 Jan 2024 11:00:14 -0500 you wrote: > At the moment, the GigE port is enabled in the mlxbf_gige_probe > function. If the mlxbf_gige_open is not executed, this could cause > pause frames to increase in the case where there is high backgroud > traffic. This results in clogging the port. > So move enabling the OOB port to mlxbf_gige_open. > > Fixes: f92e1869d74e ("Add Mellanox BlueField Gigabit Ethernet driver") > Reviewed-by: David Thompson <davthompson@nvidia.com> > Signed-off-by: Asmaa Mnebhi <asmaa@nvidia.com> > Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> > > [...] Here is the summary with links: - [net,v4] mlxbf_gige: Enable the GigE port in mlxbf_gige_open https://git.kernel.org/netdev/net/c/a460f4a68451 You are awesome, thank you!
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 3385cf1ef9ae..ce50a25c4772 100644 --- a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c +++ b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c @@ -130,9 +130,15 @@ static int mlxbf_gige_open(struct net_device *netdev) { struct mlxbf_gige *priv = netdev_priv(netdev); struct phy_device *phydev = netdev->phydev; + u64 control; u64 int_en; int err; + /* Perform general init of GigE block */ + control = readq(priv->base + MLXBF_GIGE_CONTROL); + control |= MLXBF_GIGE_CONTROL_PORT_EN; + writeq(control, priv->base + MLXBF_GIGE_CONTROL); + err = mlxbf_gige_request_irqs(priv); if (err) return err; @@ -365,7 +371,6 @@ static int mlxbf_gige_probe(struct platform_device *pdev) void __iomem *plu_base; void __iomem *base; int addr, phy_irq; - u64 control; int err; base = devm_platform_ioremap_resource(pdev, MLXBF_GIGE_RES_MAC); @@ -380,11 +385,6 @@ static int mlxbf_gige_probe(struct platform_device *pdev) if (IS_ERR(plu_base)) return PTR_ERR(plu_base); - /* Perform general init of GigE block */ - control = readq(base + MLXBF_GIGE_CONTROL); - control |= MLXBF_GIGE_CONTROL_PORT_EN; - writeq(control, base + MLXBF_GIGE_CONTROL); - netdev = devm_alloc_etherdev(&pdev->dev, sizeof(*priv)); if (!netdev) return -ENOMEM;