Skip to content

Commit 5102836

Browse files
pavanchebbijgunthorpe
authored andcommitted
fwctl/bnxt_en: Create an aux device for fwctl
Create an additional auxiliary device to support fwctl. The next patch will create bnxt_fwctl and bind to this device. Link: https://patch.msgid.link/r/20260314151605.932749-4-pavan.chebbi@broadcom.com Reviewed-by: Andy Gospodarek <gospo@broadcom.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
1 parent 2c7c85c commit 5102836

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ static bool bnxt_auxdev_is_active(struct bnxt *bp, int idx)
5050

5151
static struct bnxt_aux_device bnxt_aux_devices[__BNXT_AUXDEV_MAX] = {{
5252
.name = "rdma",
53+
}, {
54+
.name = "fwctl",
5355
}};
5456

5557
static void bnxt_fill_msix_vecs(struct bnxt *bp, struct bnxt_msix_entry *ent)
@@ -278,6 +280,11 @@ void bnxt_ulp_stop(struct bnxt *bp)
278280
aux_priv = bp->aux_priv[i];
279281
edev = bp->edev[i];
280282
mutex_lock(&edev->en_dev_lock);
283+
if (i == BNXT_AUXDEV_FWCTL) {
284+
edev->flags |= BNXT_EN_FLAG_ULP_STOPPED;
285+
mutex_unlock(&edev->en_dev_lock);
286+
continue;
287+
}
281288
if (!bnxt_ulp_registered(edev) ||
282289
(edev->flags & BNXT_EN_FLAG_ULP_STOPPED)) {
283290
mutex_unlock(&edev->en_dev_lock);
@@ -316,7 +323,7 @@ void bnxt_ulp_start(struct bnxt *bp)
316323
aux_priv = bp->aux_priv[i];
317324
edev = bp->edev[i];
318325
mutex_lock(&edev->en_dev_lock);
319-
if (!bnxt_ulp_registered(edev) ||
326+
if (i == BNXT_AUXDEV_FWCTL || !bnxt_ulp_registered(edev) ||
320327
!(edev->flags & BNXT_EN_FLAG_ULP_STOPPED)) {
321328
goto clear_flag_continue;
322329
}
@@ -520,7 +527,8 @@ void bnxt_aux_devices_add(struct bnxt *bp)
520527
aux_dev = &bp->aux_priv[idx]->aux_dev;
521528
rc = auxiliary_device_add(aux_dev);
522529
if (rc) {
523-
netdev_warn(bp->dev, "Failed to add auxiliary device for ROCE\n");
530+
netdev_warn(bp->dev, "Failed to add auxiliary device for auxdev type %d\n",
531+
idx);
524532
auxiliary_device_uninit(aux_dev);
525533
if (idx == BNXT_AUXDEV_RDMA)
526534
bp->flags &= ~BNXT_FLAG_ROCE_CAP;

include/linux/bnxt/ulp.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ struct bnxt;
2424

2525
enum bnxt_auxdev_type {
2626
BNXT_AUXDEV_RDMA = 0,
27+
BNXT_AUXDEV_FWCTL,
2728
__BNXT_AUXDEV_MAX
2829
};
2930

0 commit comments

Comments
 (0)