New upstream version 18.02
[deb_dpdk.git] / drivers / net / ixgbe / base / ixgbe_82599.c
index d9d11a8..2621721 100644 (file)
@@ -87,6 +87,9 @@ void ixgbe_init_mac_link_ops_82599(struct ixgbe_hw *hw)
                mac->ops.setup_mac_link = ixgbe_setup_mac_link_82599;
                mac->ops.set_rate_select_speed =
                                               ixgbe_set_hard_rate_select_speed;
+               if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber_fixed)
+                       mac->ops.set_rate_select_speed =
+                                              ixgbe_set_soft_rate_select_speed;
        } else {
                if ((ixgbe_get_media_type(hw) == ixgbe_media_type_backplane) &&
                     (hw->phy.smart_speed == ixgbe_smart_speed_auto ||
@@ -265,7 +268,7 @@ s32 prot_autoc_read_82599(struct ixgbe_hw *hw, bool *locked, u32 *reg_val)
 /**
  * prot_autoc_write_82599 - Hides MAC differences needed for AUTOC write
  * @hw: pointer to hardware structure
- * @reg_val: value to write to AUTOC
+ * @autoc: value to write to AUTOC
  * @locked: bool to indicate whether the SW/FW lock was already taken by
  *           previous proc_autoc_read_82599.
  *
@@ -564,6 +567,10 @@ enum ixgbe_media_type ixgbe_get_media_type_82599(struct ixgbe_hw *hw)
        case IXGBE_DEV_ID_82599_QSFP_SF_QP:
                media_type = ixgbe_media_type_fiber_qsfp;
                break;
+       case IXGBE_DEV_ID_82599_BYPASS:
+               media_type = ixgbe_media_type_fiber_fixed;
+               hw->phy.multispeed_fiber = true;
+               break;
        default:
                media_type = ixgbe_media_type_unknown;
                break;
@@ -1367,6 +1374,7 @@ s32 ixgbe_init_fdir_signature_82599(struct ixgbe_hw *hw, u32 fdirctrl)
 s32 ixgbe_init_fdir_perfect_82599(struct ixgbe_hw *hw, u32 fdirctrl,
                        bool cloud_mode)
 {
+       UNREFERENCED_1PARAMETER(cloud_mode);
        DEBUGFUNC("ixgbe_init_fdir_perfect_82599");
 
        /*
@@ -1455,7 +1463,8 @@ do { \
 
 /**
  *  ixgbe_atr_compute_sig_hash_82599 - Compute the signature hash
- *  @stream: input bitstream to compute the hash on
+ *  @input: input bitstream to compute the hash on
+ *  @common: compressed common input dword
  *
  *  This function is almost identical to the function above but contains
  *  several optimizations such as unwinding all of the loops, letting the
@@ -1594,7 +1603,7 @@ do { \
 
 /**
  *  ixgbe_atr_compute_perfect_hash_82599 - Compute the perfect filter hash
- *  @atr_input: input bitstream to compute the hash on
+ *  @input: input bitstream to compute the hash on
  *  @input_mask: mask for the input bitstream
  *
  *  This function serves two main purposes.  First it applies the input_mask
@@ -1695,6 +1704,7 @@ s32 ixgbe_fdir_set_input_mask_82599(struct ixgbe_hw *hw,
        u32 fdirm = IXGBE_FDIRM_DIPv6;
        u32 fdirtcpm;
        u32 fdirip6m;
+       UNREFERENCED_1PARAMETER(cloud_mode);
        DEBUGFUNC("ixgbe_fdir_set_atr_input_mask_82599");
 
        /*
@@ -1739,15 +1749,17 @@ s32 ixgbe_fdir_set_input_mask_82599(struct ixgbe_hw *hw,
 
        switch (IXGBE_NTOHS(input_mask->formatted.vlan_id) & 0xEFFF) {
        case 0x0000:
-               /* mask VLAN ID, fall through to mask VLAN priority */
+               /* mask VLAN ID */
                fdirm |= IXGBE_FDIRM_VLANID;
+               /* fall through */
        case 0x0FFF:
                /* mask VLAN priority */
                fdirm |= IXGBE_FDIRM_VLANP;
                break;
        case 0xE000:
-               /* mask VLAN ID only, fall through */
+               /* mask VLAN ID only */
                fdirm |= IXGBE_FDIRM_VLANID;
+               /* fall through */
        case 0xEFFF:
                /* no VLAN fields masked */
                break;
@@ -1758,8 +1770,9 @@ s32 ixgbe_fdir_set_input_mask_82599(struct ixgbe_hw *hw,
 
        switch (input_mask->formatted.flex_bytes & 0xFFFF) {
        case 0x0000:
-               /* Mask Flex Bytes, fall through */
+               /* Mask Flex Bytes */
                fdirm |= IXGBE_FDIRM_FLEX;
+               /* fall through */
        case 0xFFFF:
                break;
        default:
@@ -1868,6 +1881,7 @@ s32 ixgbe_fdir_write_perfect_filter_82599(struct ixgbe_hw *hw,
        u32 addr_low, addr_high;
        u32 cloud_type = 0;
        s32 err;
+       UNREFERENCED_1PARAMETER(cloud_mode);
 
        DEBUGFUNC("ixgbe_fdir_write_perfect_filter_82599");
        if (!cloud_mode) {
@@ -1992,6 +2006,7 @@ s32 ixgbe_fdir_erase_perfect_filter_82599(struct ixgbe_hw *hw,
  *  @input_mask: mask for the input bitstream
  *  @soft_id: software index for the filters
  *  @queue: queue index to direct traffic to
+ *  @cloud_mode: unused
  *
  *  Note that the caller to this function must lock before calling, since the
  *  hardware writes must be protected from one another.
@@ -2002,6 +2017,7 @@ s32 ixgbe_fdir_add_perfect_filter_82599(struct ixgbe_hw *hw,
                                        u16 soft_id, u8 queue, bool cloud_mode)
 {
        s32 err = IXGBE_ERR_CONFIG;
+       UNREFERENCED_1PARAMETER(cloud_mode);
 
        DEBUGFUNC("ixgbe_fdir_add_perfect_filter_82599");
 
@@ -2024,6 +2040,7 @@ s32 ixgbe_fdir_add_perfect_filter_82599(struct ixgbe_hw *hw,
                        DEBUGOUT(" Error on src/dst port\n");
                        return IXGBE_ERR_CONFIG;
                }
+               /* fall through */
        case IXGBE_ATR_FLOW_TYPE_TCPV4:
        case IXGBE_ATR_FLOW_TYPE_TUNNELED_TCPV4:
        case IXGBE_ATR_FLOW_TYPE_UDPV4:
@@ -2510,6 +2527,7 @@ reset_pipeline_out:
  *  ixgbe_read_i2c_byte_82599 - Reads 8 bit word over I2C
  *  @hw: pointer to hardware structure
  *  @byte_offset: byte offset to read
+ *  @dev_addr: address to read from
  *  @data: value read
  *
  *  Performs byte read operation to SFP module's EEPROM over I2C interface at
@@ -2567,6 +2585,7 @@ release_i2c_access:
  *  ixgbe_write_i2c_byte_82599 - Writes 8 bit word over I2C
  *  @hw: pointer to hardware structure
  *  @byte_offset: byte offset to write
+ *  @dev_addr: address to read from
  *  @data: value to write
  *
  *  Performs byte write operation to SFP module's EEPROM over I2C interface at