mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-25 20:10:23 +09:00
mlxbf_gige: Enable the GigE port in mlxbf_gige_open
[ Upstream commit a460f4a684511e007bbf1700758a41f05d9981e6 ]
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: f92e1869d7 ("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>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
8d632d0fd2
commit
d0464a7edf
@@ -132,9 +132,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;
|
||||
@@ -281,7 +287,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);
|
||||
@@ -296,11 +301,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;
|
||||
|
||||
Reference in New Issue
Block a user