Commit 5102836d authored by Pavan Chebbi's avatar Pavan Chebbi Committed by Jason Gunthorpe
Browse files

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: default avatarAndy Gospodarek <gospo@broadcom.com>
Reviewed-by: default avatarLeon Romanovsky <leonro@nvidia.com>
Signed-off-by: default avatarPavan Chebbi <pavan.chebbi@broadcom.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent 2c7c85c8
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -50,6 +50,8 @@ static bool bnxt_auxdev_is_active(struct bnxt *bp, int idx)

static struct bnxt_aux_device bnxt_aux_devices[__BNXT_AUXDEV_MAX] = {{
	.name		= "rdma",
}, {
	.name		= "fwctl",
}};

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)
		aux_priv = bp->aux_priv[i];
		edev = bp->edev[i];
		mutex_lock(&edev->en_dev_lock);
		if (i == BNXT_AUXDEV_FWCTL) {
			edev->flags |= BNXT_EN_FLAG_ULP_STOPPED;
			mutex_unlock(&edev->en_dev_lock);
			continue;
		}
		if (!bnxt_ulp_registered(edev) ||
		    (edev->flags & BNXT_EN_FLAG_ULP_STOPPED)) {
			mutex_unlock(&edev->en_dev_lock);
@@ -316,7 +323,7 @@ void bnxt_ulp_start(struct bnxt *bp)
		aux_priv = bp->aux_priv[i];
		edev = bp->edev[i];
		mutex_lock(&edev->en_dev_lock);
		if (!bnxt_ulp_registered(edev) ||
		if (i == BNXT_AUXDEV_FWCTL || !bnxt_ulp_registered(edev) ||
		    !(edev->flags & BNXT_EN_FLAG_ULP_STOPPED)) {
			goto clear_flag_continue;
		}
@@ -520,7 +527,8 @@ void bnxt_aux_devices_add(struct bnxt *bp)
			aux_dev = &bp->aux_priv[idx]->aux_dev;
			rc = auxiliary_device_add(aux_dev);
			if (rc) {
				netdev_warn(bp->dev, "Failed to add auxiliary device for ROCE\n");
				netdev_warn(bp->dev, "Failed to add auxiliary device for auxdev type %d\n",
					    idx);
				auxiliary_device_uninit(aux_dev);
				if (idx == BNXT_AUXDEV_RDMA)
					bp->flags &= ~BNXT_FLAG_ROCE_CAP;
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ struct bnxt;

enum bnxt_auxdev_type {
	BNXT_AUXDEV_RDMA = 0,
	BNXT_AUXDEV_FWCTL,
	__BNXT_AUXDEV_MAX
};