forked from mirrors/linux
		
	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: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David Wei <dw@davidwei.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									fbda8ee64b
								
							
						
					
					
						commit
						f2878cdeb7
					
				
					 2 changed files with 23 additions and 0 deletions
				
			
		|  | @ -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; | ||||
|  |  | |||
|  | @ -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, | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Michael Chan
						Michael Chan