Commit f2878cde authored by Michael Chan's avatar Michael Chan Committed by David S. Miller
Browse files

bnxt_en: Add support to call FW to update a VNIC



Add the function bnxt_hwrm_vnic_update() to call FW to update
a VNIC.  This call can be used when disabling and enabling a
receive ring within a VNIC.  The mru which is the maximum receive
size of packets received by the VNIC can be updated.

Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
Signed-off-by: default avatarDavid Wei <dw@davidwei.uk>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent fbda8ee6
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -10089,6 +10089,26 @@ static int __bnxt_setup_vnic(struct bnxt *bp, struct bnxt_vnic_info *vnic)
	return rc;
}

int bnxt_hwrm_vnic_update(struct bnxt *bp, struct bnxt_vnic_info *vnic,
			  u8 valid)
{
	struct hwrm_vnic_update_input *req;
	int rc;

	rc = hwrm_req_init(bp, req, HWRM_VNIC_UPDATE);
	if (rc)
		return rc;

	req->vnic_id = cpu_to_le32(vnic->fw_vnic_id);

	if (valid & VNIC_UPDATE_REQ_ENABLES_MRU_VALID)
		req->mru = cpu_to_le16(vnic->mru);

	req->enables = cpu_to_le32(valid);

	return hwrm_req_send(bp, req);
}

int bnxt_hwrm_vnic_rss_cfg_p5(struct bnxt *bp, struct bnxt_vnic_info *vnic)
{
	int rc;
+3 −0
Original line number Diff line number Diff line
@@ -1250,6 +1250,7 @@ struct bnxt_vnic_info {
#define BNXT_MAX_CTX_PER_VNIC	8
	u16		fw_rss_cos_lb_ctx[BNXT_MAX_CTX_PER_VNIC];
	u16		fw_l2_ctx_id;
	u16		mru;
#define BNXT_MAX_UC_ADDRS	4
	struct bnxt_l2_filter *l2_filters[BNXT_MAX_UC_ADDRS];
				/* index 0 always dev_addr */
@@ -2838,6 +2839,8 @@ int bnxt_hwrm_free_wol_fltr(struct bnxt *bp);
int bnxt_hwrm_func_resc_qcaps(struct bnxt *bp, bool all);
int bnxt_hwrm_func_qcaps(struct bnxt *bp);
int bnxt_hwrm_fw_set_time(struct bnxt *);
int bnxt_hwrm_vnic_update(struct bnxt *bp, struct bnxt_vnic_info *vnic,
			  u8 valid);
int bnxt_hwrm_vnic_rss_cfg_p5(struct bnxt *bp, struct bnxt_vnic_info *vnic);
int __bnxt_setup_vnic_p5(struct bnxt *bp, struct bnxt_vnic_info *vnic);
void bnxt_del_one_rss_ctx(struct bnxt *bp, struct bnxt_rss_ctx *rss_ctx,