Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ixgbe/ixgbe_82598.c
| /****************************************************************************** | /****************************************************************************** | ||||
| Copyright (c) 2001-2015, Intel Corporation | Copyright (c) 2001-2017, 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. | ||||
| 2. Redistributions in binary form must reproduce the above copyright | 2. Redistributions in binary form must reproduce the above copyright | ||||
| notice, this list of conditions and the following disclaimer in the | notice, this list of conditions and the following disclaimer in the | ||||
| documentation and/or other materials provided with the distribution. | documentation and/or other materials provided with the distribution. | ||||
| 3. Neither the name of the Intel Corporation nor the names of its | 3. Neither the name of the Intel Corporation nor the names of its | ||||
| contributors may be used to endorse or promote products derived from | contributors may be used to endorse or promote products derived from | ||||
| this software without specific prior written permission. | this software without specific prior written permission. | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
| AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
| IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||||
| ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | ||||
| LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | ||||
| CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | ||||
| 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$*/ | ||||
| #include "ixgbe_type.h" | #include "ixgbe_type.h" | ||||
| #include "ixgbe_82598.h" | #include "ixgbe_82598.h" | ||||
| ▲ Show 20 Lines • Show All 954 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| /** | /** | ||||
| * ixgbe_set_vfta_82598 - Set VLAN filter table | * ixgbe_set_vfta_82598 - Set VLAN filter table | ||||
| * @hw: pointer to hardware structure | * @hw: pointer to hardware structure | ||||
| * @vlan: VLAN id to write to VLAN filter | * @vlan: VLAN id to write to VLAN filter | ||||
| * @vind: VMDq output index that maps queue to VLAN id in VFTA | * @vind: VMDq output index that maps queue to VLAN id in VFTA | ||||
| * @vlan_on: boolean flag to turn on/off VLAN in VFTA | * @vlan_on: boolean flag to turn on/off VLAN in VFTA | ||||
| * @vlvf_bypass: boolean flag - unused | |||||
| * | * | ||||
| * Turn on/off specified VLAN in the VLAN filter table. | * Turn on/off specified VLAN in the VLAN filter table. | ||||
| **/ | **/ | ||||
| s32 ixgbe_set_vfta_82598(struct ixgbe_hw *hw, u32 vlan, u32 vind, | s32 ixgbe_set_vfta_82598(struct ixgbe_hw *hw, u32 vlan, u32 vind, | ||||
| bool vlan_on) | bool vlan_on, bool vlvf_bypass) | ||||
| { | { | ||||
| u32 regindex; | u32 regindex; | ||||
| u32 bitindex; | u32 bitindex; | ||||
| u32 bits; | u32 bits; | ||||
| u32 vftabyte; | u32 vftabyte; | ||||
| UNREFERENCED_1PARAMETER(vlvf_bypass); | |||||
| DEBUGFUNC("ixgbe_set_vfta_82598"); | DEBUGFUNC("ixgbe_set_vfta_82598"); | ||||
| if (vlan > 4095) | if (vlan > 4095) | ||||
| return IXGBE_ERR_PARAM; | return IXGBE_ERR_PARAM; | ||||
| /* Determine 32-bit word position in array */ | /* Determine 32-bit word position in array */ | ||||
| regindex = (vlan >> 5) & 0x7F; /* upper seven bits */ | regindex = (vlan >> 5) & 0x7F; /* upper seven bits */ | ||||
| ▲ Show 20 Lines • Show All 197 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| /** | /** | ||||
| * ixgbe_get_supported_physical_layer_82598 - Returns physical layer type | * ixgbe_get_supported_physical_layer_82598 - Returns physical layer type | ||||
| * @hw: pointer to hardware structure | * @hw: pointer to hardware structure | ||||
| * | * | ||||
| * Determines physical layer capabilities of the current configuration. | * Determines physical layer capabilities of the current configuration. | ||||
| **/ | **/ | ||||
| u32 ixgbe_get_supported_physical_layer_82598(struct ixgbe_hw *hw) | u64 ixgbe_get_supported_physical_layer_82598(struct ixgbe_hw *hw) | ||||
| { | { | ||||
| u32 physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; | u64 physical_layer = IXGBE_PHYSICAL_LAYER_UNKNOWN; | ||||
| u32 autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC); | u32 autoc = IXGBE_READ_REG(hw, IXGBE_AUTOC); | ||||
| u32 pma_pmd_10g = autoc & IXGBE_AUTOC_10G_PMA_PMD_MASK; | u32 pma_pmd_10g = autoc & IXGBE_AUTOC_10G_PMA_PMD_MASK; | ||||
| u32 pma_pmd_1g = autoc & IXGBE_AUTOC_1G_PMA_PMD_MASK; | u32 pma_pmd_1g = autoc & IXGBE_AUTOC_1G_PMA_PMD_MASK; | ||||
| u16 ext_ability = 0; | u16 ext_ability = 0; | ||||
| DEBUGFUNC("ixgbe_get_supported_physical_layer_82598"); | DEBUGFUNC("ixgbe_get_supported_physical_layer_82598"); | ||||
| hw->phy.ops.identify(hw); | hw->phy.ops.identify(hw); | ||||
| ▲ Show 20 Lines • Show All 204 Lines • Show Last 20 Lines | |||||