Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ice/ice_vlan_mode.c
- This file was copied from sys/dev/ice/ice_sriov.h.
/* SPDX-License-Identifier: BSD-3-Clause */ | /* SPDX-License-Identifier: BSD-3-Clause */ | ||||
/* Copyright (c) 2020, Intel Corporation | /* Copyright (c) 2021, Intel Corporation | ||||
* All rights reserved. | * All rights reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
* modification, are permitted provided that the following conditions are met: | * modification, are permitted provided that the following conditions are met: | ||||
* | * | ||||
* 1. Redistributions of source code must retain the above copyright notice, | * 1. Redistributions of source code must retain the above copyright notice, | ||||
* this list of conditions and the following disclaimer. | * this list of conditions and the following disclaimer. | ||||
* | * | ||||
Show All 14 Lines | |||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||||
* POSSIBILITY OF SUCH DAMAGE. | * POSSIBILITY OF SUCH DAMAGE. | ||||
*/ | */ | ||||
/*$FreeBSD$*/ | /*$FreeBSD$*/ | ||||
#ifndef _ICE_SRIOV_H_ | #include "ice_vlan_mode.h" | ||||
#define _ICE_SRIOV_H_ | |||||
#include "ice_common.h" | #include "ice_common.h" | ||||
enum ice_status | /** | ||||
ice_aq_send_msg_to_pf(struct ice_hw *hw, enum virtchnl_ops v_opcode, | * ice_set_svm - set single VLAN mode | ||||
enum ice_status v_retval, u8 *msg, u16 msglen, | * @hw: pointer to the HW structure | ||||
struct ice_sq_cd *cd); | */ | ||||
static enum ice_status ice_set_svm_dflt(struct ice_hw *hw) | |||||
{ | |||||
ice_debug(hw, ICE_DBG_TRACE, "%s\n", __func__); | |||||
enum ice_status | return ice_aq_set_port_params(hw->port_info, 0, false, false, false, NULL); | ||||
ice_aq_send_msg_to_vf(struct ice_hw *hw, u16 vfid, u32 v_opcode, u32 v_retval, | } | ||||
u8 *msg, u16 msglen, struct ice_sq_cd *cd); | |||||
u32 ice_conv_link_speed_to_virtchnl(bool adv_link_support, u16 link_speed); | /** | ||||
#endif /* _ICE_SRIOV_H_ */ | * ice_init_vlan_mode_ops - initialize VLAN mode configuration ops | ||||
* @hw: pointer to the HW structure | |||||
*/ | |||||
void ice_init_vlan_mode_ops(struct ice_hw *hw) | |||||
{ | |||||
hw->vlan_mode_ops.set_dvm = NULL; | |||||
hw->vlan_mode_ops.set_svm = ice_set_svm_dflt; | |||||
} | |||||
/** | |||||
* ice_set_vlan_mode | |||||
* @hw: pointer to the HW structure | |||||
*/ | |||||
enum ice_status ice_set_vlan_mode(struct ice_hw *hw) | |||||
{ | |||||
enum ice_status status = ICE_ERR_NOT_IMPL; | |||||
if (hw->vlan_mode_ops.set_dvm) | |||||
status = hw->vlan_mode_ops.set_dvm(hw); | |||||
if (status) | |||||
return hw->vlan_mode_ops.set_svm(hw); | |||||
return status; | |||||
} |