summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
diff options
context:
space:
mode:
authorHongguang Gao <hongguang.gao@broadcom.com>2022-10-14 16:31:31 -0700
committerAjit Khaparde <ajit.khaparde@broadcom.com>2023-02-01 19:02:16 -0800
commit848dc857c8dee61972abdb05ce81f12f0d0e05e4 (patch)
tree073f34206951ce637950b1dacb6eb7c5e5dce35d /drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
parent3b65e9456c29217429158203bfdce4361f45e0be (diff)
downloadlinux-848dc857c8dee61972abdb05ce81f12f0d0e05e4.tar.gz
linux-848dc857c8dee61972abdb05ce81f12f0d0e05e4.tar.bz2
linux-848dc857c8dee61972abdb05ce81f12f0d0e05e4.zip
bnxt_en: Remove struct bnxt access from RoCE driver
Decouple RoCE driver from directly accessing L2's private bnxt structure. Move the fields needed by RoCE driver into bnxt_en_dev. They'll be passed to RoCE driver by bnxt_rdma_aux_device_add() function. Signed-off-by: Hongguang Gao <hongguang.gao@broadcom.com> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com> Reviewed-by: Selvin Xavier <selvin.xavier@broadcom.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c')
-rw-r--r--drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
index 72815f3b1bd2..132df8275ab1 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c
@@ -287,6 +287,7 @@ void bnxt_ulp_stop(struct bnxt *bp)
pm_message_t pm = {};
adrv = to_auxiliary_drv(adev->dev.driver);
+ edev->en_state = bp->state;
adrv->suspend(adev, pm);
}
}
@@ -313,6 +314,7 @@ void bnxt_ulp_start(struct bnxt *bp, int err)
struct auxiliary_driver *adrv;
adrv = to_auxiliary_drv(adev->dev.driver);
+ edev->en_state = bp->state;
adrv->resume(adev);
}
}
@@ -444,6 +446,13 @@ static void bnxt_set_edev_info(struct bnxt_en_dev *edev, struct bnxt *bp)
edev->flags |= BNXT_EN_FLAG_ROCEV1_CAP;
if (bp->flags & BNXT_FLAG_ROCEV2_CAP)
edev->flags |= BNXT_EN_FLAG_ROCEV2_CAP;
+ if (bp->flags & BNXT_FLAG_VF)
+ edev->flags |= BNXT_EN_FLAG_VF;
+
+ edev->chip_num = bp->chip_num;
+ edev->hw_ring_stats_size = bp->hw_ring_stats_size;
+ edev->pf_port_id = bp->pf.port_id;
+ edev->en_state = bp->state;
}
void bnxt_rdma_aux_device_init(struct bnxt *bp)