LCOV - code coverage report
Current view: top level - drivers/net/ixgbe/base - ixgbe_api.c (source / functions) Hit Total Coverage
Test: Code coverage Lines: 0 348 0.0 %
Date: 2024-12-01 18:57:19 Functions: 0 110 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 245 0.0 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: BSD-3-Clause
       2                 :            :  * Copyright(c) 2001-2024 Intel Corporation
       3                 :            :  */
       4                 :            : 
       5                 :            : #include "ixgbe_api.h"
       6                 :            : #include "ixgbe_common.h"
       7                 :            : 
       8                 :            : #define IXGBE_EMPTY_PARAM
       9                 :            : 
      10                 :            : static const u32 ixgbe_mvals_base[IXGBE_MVALS_IDX_LIMIT] = {
      11                 :            :         IXGBE_MVALS_INIT(IXGBE_EMPTY_PARAM)
      12                 :            : };
      13                 :            : 
      14                 :            : static const u32 ixgbe_mvals_X540[IXGBE_MVALS_IDX_LIMIT] = {
      15                 :            :         IXGBE_MVALS_INIT(_X540)
      16                 :            : };
      17                 :            : 
      18                 :            : static const u32 ixgbe_mvals_X550[IXGBE_MVALS_IDX_LIMIT] = {
      19                 :            :         IXGBE_MVALS_INIT(_X550)
      20                 :            : };
      21                 :            : 
      22                 :            : static const u32 ixgbe_mvals_X550EM_x[IXGBE_MVALS_IDX_LIMIT] = {
      23                 :            :         IXGBE_MVALS_INIT(_X550EM_x)
      24                 :            : };
      25                 :            : 
      26                 :            : static const u32 ixgbe_mvals_X550EM_a[IXGBE_MVALS_IDX_LIMIT] = {
      27                 :            :         IXGBE_MVALS_INIT(_X550EM_a)
      28                 :            : };
      29                 :            : 
      30                 :            : /**
      31                 :            :  * ixgbe_dcb_get_rtrup2tc - read rtrup2tc reg
      32                 :            :  * @hw: pointer to hardware structure
      33                 :            :  * @map: pointer to u8 arr for returning map
      34                 :            :  *
      35                 :            :  * Read the rtrup2tc HW register and resolve its content into map
      36                 :            :  **/
      37                 :          0 : void ixgbe_dcb_get_rtrup2tc(struct ixgbe_hw *hw, u8 *map)
      38                 :            : {
      39         [ #  # ]:          0 :         if (hw->mac.ops.get_rtrup2tc)
      40                 :          0 :                 hw->mac.ops.get_rtrup2tc(hw, map);
      41                 :          0 : }
      42                 :            : 
      43                 :            : /**
      44                 :            :  * ixgbe_init_shared_code - Initialize the shared code
      45                 :            :  * @hw: pointer to hardware structure
      46                 :            :  *
      47                 :            :  * This will assign function pointers and assign the MAC type and PHY code.
      48                 :            :  * Does not touch the hardware. This function must be called prior to any
      49                 :            :  * other function in the shared code. The ixgbe_hw structure should be
      50                 :            :  * memset to 0 prior to calling this function.  The following fields in
      51                 :            :  * hw structure should be filled in prior to calling this function:
      52                 :            :  * hw_addr, back, device_id, vendor_id, subsystem_device_id,
      53                 :            :  * subsystem_vendor_id, and revision_id
      54                 :            :  **/
      55                 :          0 : s32 ixgbe_init_shared_code(struct ixgbe_hw *hw)
      56                 :            : {
      57                 :            :         s32 status;
      58                 :            : 
      59                 :          0 :         DEBUGFUNC("ixgbe_init_shared_code");
      60                 :            : 
      61                 :            :         /*
      62                 :            :          * Set the mac type
      63                 :            :          */
      64                 :          0 :         ixgbe_set_mac_type(hw);
      65                 :            : 
      66   [ #  #  #  #  :          0 :         switch (hw->mac.type) {
             #  #  #  #  
                      # ]
      67                 :          0 :         case ixgbe_mac_82598EB:
      68                 :          0 :                 status = ixgbe_init_ops_82598(hw);
      69                 :          0 :                 break;
      70                 :          0 :         case ixgbe_mac_82599EB:
      71                 :          0 :                 status = ixgbe_init_ops_82599(hw);
      72                 :          0 :                 break;
      73                 :          0 :         case ixgbe_mac_X540:
      74                 :          0 :                 status = ixgbe_init_ops_X540(hw);
      75                 :          0 :                 break;
      76                 :          0 :         case ixgbe_mac_X550:
      77                 :          0 :                 status = ixgbe_init_ops_X550(hw);
      78                 :          0 :                 break;
      79                 :          0 :         case ixgbe_mac_X550EM_x:
      80                 :          0 :                 status = ixgbe_init_ops_X550EM_x(hw);
      81                 :          0 :                 break;
      82                 :          0 :         case ixgbe_mac_X550EM_a:
      83                 :          0 :                 status = ixgbe_init_ops_X550EM_a(hw);
      84                 :          0 :                 break;
      85                 :          0 :         case ixgbe_mac_82599_vf:
      86                 :            :         case ixgbe_mac_X540_vf:
      87                 :            :         case ixgbe_mac_X550_vf:
      88                 :            :         case ixgbe_mac_X550EM_x_vf:
      89                 :            :         case ixgbe_mac_X550EM_a_vf:
      90                 :            :         case ixgbe_mac_E610_vf:
      91                 :          0 :                 status = ixgbe_init_ops_vf(hw);
      92                 :          0 :                 break;
      93                 :          0 :         case ixgbe_mac_E610:
      94                 :          0 :                 status = ixgbe_init_ops_E610(hw);
      95                 :          0 :                 break;
      96                 :            :         default:
      97                 :            :                 status = IXGBE_ERR_DEVICE_NOT_SUPPORTED;
      98                 :            :                 break;
      99                 :            :         }
     100                 :          0 :         hw->mac.max_link_up_time = IXGBE_LINK_UP_TIME;
     101                 :            : 
     102                 :          0 :         return status;
     103                 :            : }
     104                 :            : 
     105                 :            : /**
     106                 :            :  * ixgbe_set_mac_type - Sets MAC type
     107                 :            :  * @hw: pointer to the HW structure
     108                 :            :  *
     109                 :            :  * This function sets the mac type of the adapter based on the
     110                 :            :  * vendor ID and device ID stored in the hw structure.
     111                 :            :  **/
     112                 :          0 : s32 ixgbe_set_mac_type(struct ixgbe_hw *hw)
     113                 :            : {
     114                 :            :         s32 ret_val = IXGBE_SUCCESS;
     115                 :            : 
     116                 :          0 :         DEBUGFUNC("ixgbe_set_mac_type\n");
     117                 :            : 
     118         [ #  # ]:          0 :         if (hw->vendor_id != IXGBE_INTEL_VENDOR_ID) {
     119                 :          0 :                 ERROR_REPORT2(IXGBE_ERROR_UNSUPPORTED,
     120                 :            :                              "Unsupported vendor id: %x", hw->vendor_id);
     121                 :          0 :                 return IXGBE_ERR_DEVICE_NOT_SUPPORTED;
     122                 :            :         }
     123                 :            : 
     124                 :          0 :         hw->mvals = ixgbe_mvals_base;
     125                 :            : 
     126   [ #  #  #  #  :          0 :         switch (hw->device_id) {
          #  #  #  #  #  
             #  #  #  #  
                      # ]
     127                 :          0 :         case IXGBE_DEV_ID_82598:
     128                 :            :         case IXGBE_DEV_ID_82598_BX:
     129                 :            :         case IXGBE_DEV_ID_82598AF_SINGLE_PORT:
     130                 :            :         case IXGBE_DEV_ID_82598AF_DUAL_PORT:
     131                 :            :         case IXGBE_DEV_ID_82598AT:
     132                 :            :         case IXGBE_DEV_ID_82598AT2:
     133                 :            :         case IXGBE_DEV_ID_82598EB_CX4:
     134                 :            :         case IXGBE_DEV_ID_82598_CX4_DUAL_PORT:
     135                 :            :         case IXGBE_DEV_ID_82598_DA_DUAL_PORT:
     136                 :            :         case IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM:
     137                 :            :         case IXGBE_DEV_ID_82598EB_XF_LR:
     138                 :            :         case IXGBE_DEV_ID_82598EB_SFP_LOM:
     139                 :          0 :                 hw->mac.type = ixgbe_mac_82598EB;
     140                 :          0 :                 break;
     141                 :          0 :         case IXGBE_DEV_ID_82599_KX4:
     142                 :            :         case IXGBE_DEV_ID_82599_KX4_MEZZ:
     143                 :            :         case IXGBE_DEV_ID_82599_XAUI_LOM:
     144                 :            :         case IXGBE_DEV_ID_82599_COMBO_BACKPLANE:
     145                 :            :         case IXGBE_DEV_ID_82599_KR:
     146                 :            :         case IXGBE_DEV_ID_82599_SFP:
     147                 :            :         case IXGBE_DEV_ID_82599_BACKPLANE_FCOE:
     148                 :            :         case IXGBE_DEV_ID_82599_SFP_FCOE:
     149                 :            :         case IXGBE_DEV_ID_82599_SFP_EM:
     150                 :            :         case IXGBE_DEV_ID_82599_SFP_SF2:
     151                 :            :         case IXGBE_DEV_ID_82599_SFP_SF_QP:
     152                 :            :         case IXGBE_DEV_ID_82599_QSFP_SF_QP:
     153                 :            :         case IXGBE_DEV_ID_82599EN_SFP:
     154                 :            :         case IXGBE_DEV_ID_82599_CX4:
     155                 :            :         case IXGBE_DEV_ID_82599_T3_LOM:
     156                 :          0 :                 hw->mac.type = ixgbe_mac_82599EB;
     157                 :          0 :                 break;
     158                 :          0 :         case IXGBE_DEV_ID_82599_VF:
     159                 :            :         case IXGBE_DEV_ID_82599_VF_HV:
     160                 :          0 :                 hw->mac.type = ixgbe_mac_82599_vf;
     161                 :          0 :                 break;
     162                 :          0 :         case IXGBE_DEV_ID_X540_VF:
     163                 :            :         case IXGBE_DEV_ID_X540_VF_HV:
     164                 :          0 :                 hw->mac.type = ixgbe_mac_X540_vf;
     165                 :          0 :                 hw->mvals = ixgbe_mvals_X540;
     166                 :          0 :                 break;
     167                 :          0 :         case IXGBE_DEV_ID_X540T:
     168                 :            :         case IXGBE_DEV_ID_X540T1:
     169                 :          0 :                 hw->mac.type = ixgbe_mac_X540;
     170                 :          0 :                 hw->mvals = ixgbe_mvals_X540;
     171                 :          0 :                 break;
     172                 :          0 :         case IXGBE_DEV_ID_X550T:
     173                 :            :         case IXGBE_DEV_ID_X550T1:
     174                 :          0 :                 hw->mac.type = ixgbe_mac_X550;
     175                 :          0 :                 hw->mvals = ixgbe_mvals_X550;
     176                 :          0 :                 break;
     177                 :          0 :         case IXGBE_DEV_ID_X550EM_X_KX4:
     178                 :            :         case IXGBE_DEV_ID_X550EM_X_KR:
     179                 :            :         case IXGBE_DEV_ID_X550EM_X_10G_T:
     180                 :            :         case IXGBE_DEV_ID_X550EM_X_1G_T:
     181                 :            :         case IXGBE_DEV_ID_X550EM_X_SFP:
     182                 :            :         case IXGBE_DEV_ID_X550EM_X_XFI:
     183                 :          0 :                 hw->mac.type = ixgbe_mac_X550EM_x;
     184                 :          0 :                 hw->mvals = ixgbe_mvals_X550EM_x;
     185                 :          0 :                 break;
     186                 :          0 :         case IXGBE_DEV_ID_X550EM_A_KR:
     187                 :            :         case IXGBE_DEV_ID_X550EM_A_KR_L:
     188                 :            :         case IXGBE_DEV_ID_X550EM_A_SFP_N:
     189                 :            :         case IXGBE_DEV_ID_X550EM_A_SGMII:
     190                 :            :         case IXGBE_DEV_ID_X550EM_A_SGMII_L:
     191                 :            :         case IXGBE_DEV_ID_X550EM_A_1G_T:
     192                 :            :         case IXGBE_DEV_ID_X550EM_A_1G_T_L:
     193                 :            :         case IXGBE_DEV_ID_X550EM_A_10G_T:
     194                 :            :         case IXGBE_DEV_ID_X550EM_A_QSFP:
     195                 :            :         case IXGBE_DEV_ID_X550EM_A_QSFP_N:
     196                 :            :         case IXGBE_DEV_ID_X550EM_A_SFP:
     197                 :          0 :                 hw->mac.type = ixgbe_mac_X550EM_a;
     198                 :          0 :                 hw->mvals = ixgbe_mvals_X550EM_a;
     199                 :          0 :                 break;
     200                 :          0 :         case IXGBE_DEV_ID_X550_VF:
     201                 :            :         case IXGBE_DEV_ID_X550_VF_HV:
     202                 :          0 :                 hw->mac.type = ixgbe_mac_X550_vf;
     203                 :          0 :                 hw->mvals = ixgbe_mvals_X550;
     204                 :          0 :                 break;
     205                 :          0 :         case IXGBE_DEV_ID_X550EM_X_VF:
     206                 :            :         case IXGBE_DEV_ID_X550EM_X_VF_HV:
     207                 :          0 :                 hw->mac.type = ixgbe_mac_X550EM_x_vf;
     208                 :          0 :                 hw->mvals = ixgbe_mvals_X550EM_x;
     209                 :          0 :                 break;
     210                 :          0 :         case IXGBE_DEV_ID_X550EM_A_VF:
     211                 :            :         case IXGBE_DEV_ID_X550EM_A_VF_HV:
     212                 :          0 :                 hw->mac.type = ixgbe_mac_X550EM_a_vf;
     213                 :          0 :                 hw->mvals = ixgbe_mvals_X550EM_a;
     214                 :          0 :                 break;
     215                 :          0 :         case IXGBE_DEV_ID_E610_BACKPLANE:
     216                 :            :         case IXGBE_DEV_ID_E610_SFP:
     217                 :            :         case IXGBE_DEV_ID_E610_10G_T:
     218                 :            :         case IXGBE_DEV_ID_E610_2_5G_T:
     219                 :            :         case IXGBE_DEV_ID_E610_SGMII:
     220                 :          0 :                 hw->mac.type = ixgbe_mac_E610;
     221                 :          0 :                 hw->mvals = ixgbe_mvals_X550EM_a;
     222                 :          0 :                 break;
     223                 :          0 :         case IXGBE_DEV_ID_E610_VF:
     224                 :          0 :                 hw->mac.type = ixgbe_mac_E610_vf;
     225                 :          0 :                 hw->mvals = ixgbe_mvals_X550EM_a;
     226                 :          0 :                 break;
     227                 :          0 :         default:
     228                 :            :                 ret_val = IXGBE_ERR_DEVICE_NOT_SUPPORTED;
     229                 :          0 :                 ERROR_REPORT2(IXGBE_ERROR_UNSUPPORTED,
     230                 :            :                              "Unsupported device id: %x",
     231                 :            :                              hw->device_id);
     232                 :          0 :                 break;
     233                 :            :         }
     234                 :            : 
     235                 :            :         return ret_val;
     236                 :            : }
     237                 :            : 
     238                 :            : /**
     239                 :            :  * ixgbe_init_hw - Initialize the hardware
     240                 :            :  * @hw: pointer to hardware structure
     241                 :            :  *
     242                 :            :  * Initialize the hardware by resetting and then starting the hardware
     243                 :            :  **/
     244                 :          0 : s32 ixgbe_init_hw(struct ixgbe_hw *hw)
     245                 :            : {
     246         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.init_hw, (hw),
     247                 :            :                                IXGBE_NOT_IMPLEMENTED);
     248                 :            : }
     249                 :            : 
     250                 :            : /**
     251                 :            :  * ixgbe_reset_hw - Performs a hardware reset
     252                 :            :  * @hw: pointer to hardware structure
     253                 :            :  *
     254                 :            :  * Resets the hardware by resetting the transmit and receive units, masks and
     255                 :            :  * clears all interrupts, performs a PHY reset, and performs a MAC reset
     256                 :            :  **/
     257                 :          0 : s32 ixgbe_reset_hw(struct ixgbe_hw *hw)
     258                 :            : {
     259         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.reset_hw, (hw),
     260                 :            :                                IXGBE_NOT_IMPLEMENTED);
     261                 :            : }
     262                 :            : 
     263                 :            : /**
     264                 :            :  * ixgbe_start_hw - Prepares hardware for Rx/Tx
     265                 :            :  * @hw: pointer to hardware structure
     266                 :            :  *
     267                 :            :  * Starts the hardware by filling the bus info structure and media type,
     268                 :            :  * clears all on chip counters, initializes receive address registers,
     269                 :            :  * multicast table, VLAN filter table, calls routine to setup link and
     270                 :            :  * flow control settings, and leaves transmit and receive units disabled
     271                 :            :  * and uninitialized.
     272                 :            :  **/
     273                 :          0 : s32 ixgbe_start_hw(struct ixgbe_hw *hw)
     274                 :            : {
     275         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.start_hw, (hw),
     276                 :            :                                IXGBE_NOT_IMPLEMENTED);
     277                 :            : }
     278                 :            : 
     279                 :            : /**
     280                 :            :  * ixgbe_enable_relaxed_ordering - Enables tx relaxed ordering,
     281                 :            :  * which is disabled by default in ixgbe_start_hw();
     282                 :            :  *
     283                 :            :  * @hw: pointer to hardware structure
     284                 :            :  *
     285                 :            :  *  Enable relaxed ordering;
     286                 :            :  **/
     287                 :          0 : void ixgbe_enable_relaxed_ordering(struct ixgbe_hw *hw)
     288                 :            : {
     289         [ #  # ]:          0 :         if (hw->mac.ops.enable_relaxed_ordering)
     290                 :          0 :                 hw->mac.ops.enable_relaxed_ordering(hw);
     291                 :          0 : }
     292                 :            : 
     293                 :            : /**
     294                 :            :  * ixgbe_clear_hw_cntrs - Clear hardware counters
     295                 :            :  * @hw: pointer to hardware structure
     296                 :            :  *
     297                 :            :  * Clears all hardware statistics counters by reading them from the hardware
     298                 :            :  * Statistics counters are clear on read.
     299                 :            :  **/
     300                 :          0 : s32 ixgbe_clear_hw_cntrs(struct ixgbe_hw *hw)
     301                 :            : {
     302         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.clear_hw_cntrs, (hw),
     303                 :            :                                IXGBE_NOT_IMPLEMENTED);
     304                 :            : }
     305                 :            : 
     306                 :            : /**
     307                 :            :  * ixgbe_get_media_type - Get media type
     308                 :            :  * @hw: pointer to hardware structure
     309                 :            :  *
     310                 :            :  * Returns the media type (fiber, copper, backplane)
     311                 :            :  **/
     312                 :          0 : enum ixgbe_media_type ixgbe_get_media_type(struct ixgbe_hw *hw)
     313                 :            : {
     314         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_media_type, (hw),
     315                 :            :                                ixgbe_media_type_unknown);
     316                 :            : }
     317                 :            : 
     318                 :            : /**
     319                 :            :  * ixgbe_get_mac_addr - Get MAC address
     320                 :            :  * @hw: pointer to hardware structure
     321                 :            :  * @mac_addr: Adapter MAC address
     322                 :            :  *
     323                 :            :  * Reads the adapter's MAC address from the first Receive Address Register
     324                 :            :  * (RAR0) A reset of the adapter must have been performed prior to calling
     325                 :            :  * this function in order for the MAC address to have been loaded from the
     326                 :            :  * EEPROM into RAR0
     327                 :            :  **/
     328                 :          0 : s32 ixgbe_get_mac_addr(struct ixgbe_hw *hw, u8 *mac_addr)
     329                 :            : {
     330         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_mac_addr,
     331                 :            :                                (hw, mac_addr), IXGBE_NOT_IMPLEMENTED);
     332                 :            : }
     333                 :            : 
     334                 :            : /**
     335                 :            :  * ixgbe_get_san_mac_addr - Get SAN MAC address
     336                 :            :  * @hw: pointer to hardware structure
     337                 :            :  * @san_mac_addr: SAN MAC address
     338                 :            :  *
     339                 :            :  * Reads the SAN MAC address from the EEPROM, if it's available.  This is
     340                 :            :  * per-port, so set_lan_id() must be called before reading the addresses.
     341                 :            :  **/
     342                 :          0 : s32 ixgbe_get_san_mac_addr(struct ixgbe_hw *hw, u8 *san_mac_addr)
     343                 :            : {
     344         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_san_mac_addr,
     345                 :            :                                (hw, san_mac_addr), IXGBE_NOT_IMPLEMENTED);
     346                 :            : }
     347                 :            : 
     348                 :            : /**
     349                 :            :  * ixgbe_set_san_mac_addr - Write a SAN MAC address
     350                 :            :  * @hw: pointer to hardware structure
     351                 :            :  * @san_mac_addr: SAN MAC address
     352                 :            :  *
     353                 :            :  * Writes A SAN MAC address to the EEPROM.
     354                 :            :  **/
     355                 :          0 : s32 ixgbe_set_san_mac_addr(struct ixgbe_hw *hw, u8 *san_mac_addr)
     356                 :            : {
     357         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.set_san_mac_addr,
     358                 :            :                                (hw, san_mac_addr), IXGBE_NOT_IMPLEMENTED);
     359                 :            : }
     360                 :            : 
     361                 :            : /**
     362                 :            :  * ixgbe_get_device_caps - Get additional device capabilities
     363                 :            :  * @hw: pointer to hardware structure
     364                 :            :  * @device_caps: the EEPROM word for device capabilities
     365                 :            :  *
     366                 :            :  * Reads the extra device capabilities from the EEPROM
     367                 :            :  **/
     368                 :          0 : s32 ixgbe_get_device_caps(struct ixgbe_hw *hw, u16 *device_caps)
     369                 :            : {
     370         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_device_caps,
     371                 :            :                                (hw, device_caps), IXGBE_NOT_IMPLEMENTED);
     372                 :            : }
     373                 :            : 
     374                 :            : /**
     375                 :            :  * ixgbe_get_wwn_prefix - Get alternative WWNN/WWPN prefix from the EEPROM
     376                 :            :  * @hw: pointer to hardware structure
     377                 :            :  * @wwnn_prefix: the alternative WWNN prefix
     378                 :            :  * @wwpn_prefix: the alternative WWPN prefix
     379                 :            :  *
     380                 :            :  * This function will read the EEPROM from the alternative SAN MAC address
     381                 :            :  * block to check the support for the alternative WWNN/WWPN prefix support.
     382                 :            :  **/
     383                 :          0 : s32 ixgbe_get_wwn_prefix(struct ixgbe_hw *hw, u16 *wwnn_prefix,
     384                 :            :                          u16 *wwpn_prefix)
     385                 :            : {
     386         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_wwn_prefix,
     387                 :            :                                (hw, wwnn_prefix, wwpn_prefix),
     388                 :            :                                IXGBE_NOT_IMPLEMENTED);
     389                 :            : }
     390                 :            : 
     391                 :            : /**
     392                 :            :  * ixgbe_get_fcoe_boot_status -  Get FCOE boot status from EEPROM
     393                 :            :  * @hw: pointer to hardware structure
     394                 :            :  * @bs: the fcoe boot status
     395                 :            :  *
     396                 :            :  * This function will read the FCOE boot status from the iSCSI FCOE block
     397                 :            :  **/
     398                 :          0 : s32 ixgbe_get_fcoe_boot_status(struct ixgbe_hw *hw, u16 *bs)
     399                 :            : {
     400         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_fcoe_boot_status,
     401                 :            :                                (hw, bs),
     402                 :            :                                IXGBE_NOT_IMPLEMENTED);
     403                 :            : }
     404                 :            : 
     405                 :            : /**
     406                 :            :  * ixgbe_get_bus_info - Set PCI bus info
     407                 :            :  * @hw: pointer to hardware structure
     408                 :            :  *
     409                 :            :  * Sets the PCI bus info (speed, width, type) within the ixgbe_hw structure
     410                 :            :  **/
     411                 :          0 : s32 ixgbe_get_bus_info(struct ixgbe_hw *hw)
     412                 :            : {
     413         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_bus_info, (hw),
     414                 :            :                                IXGBE_NOT_IMPLEMENTED);
     415                 :            : }
     416                 :            : 
     417                 :            : /**
     418                 :            :  * ixgbe_get_num_of_tx_queues - Get Tx queues
     419                 :            :  * @hw: pointer to hardware structure
     420                 :            :  *
     421                 :            :  * Returns the number of transmit queues for the given adapter.
     422                 :            :  **/
     423                 :          0 : u32 ixgbe_get_num_of_tx_queues(struct ixgbe_hw *hw)
     424                 :            : {
     425                 :          0 :         return hw->mac.max_tx_queues;
     426                 :            : }
     427                 :            : 
     428                 :            : /**
     429                 :            :  * ixgbe_get_num_of_rx_queues - Get Rx queues
     430                 :            :  * @hw: pointer to hardware structure
     431                 :            :  *
     432                 :            :  * Returns the number of receive queues for the given adapter.
     433                 :            :  **/
     434                 :          0 : u32 ixgbe_get_num_of_rx_queues(struct ixgbe_hw *hw)
     435                 :            : {
     436                 :          0 :         return hw->mac.max_rx_queues;
     437                 :            : }
     438                 :            : 
     439                 :            : /**
     440                 :            :  * ixgbe_stop_adapter - Disable Rx/Tx units
     441                 :            :  * @hw: pointer to hardware structure
     442                 :            :  *
     443                 :            :  * Sets the adapter_stopped flag within ixgbe_hw struct. Clears interrupts,
     444                 :            :  * disables transmit and receive units. The adapter_stopped flag is used by
     445                 :            :  * the shared code and drivers to determine if the adapter is in a stopped
     446                 :            :  * state and should not touch the hardware.
     447                 :            :  **/
     448                 :          0 : s32 ixgbe_stop_adapter(struct ixgbe_hw *hw)
     449                 :            : {
     450         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.stop_adapter, (hw),
     451                 :            :                                IXGBE_NOT_IMPLEMENTED);
     452                 :            : }
     453                 :            : 
     454                 :            : /**
     455                 :            :  * ixgbe_read_pba_string - Reads part number string from EEPROM
     456                 :            :  * @hw: pointer to hardware structure
     457                 :            :  * @pba_num: stores the part number string from the EEPROM
     458                 :            :  * @pba_num_size: part number string buffer length
     459                 :            :  *
     460                 :            :  * Reads the part number string from the EEPROM.
     461                 :            :  **/
     462                 :          0 : s32 ixgbe_read_pba_string(struct ixgbe_hw *hw, u8 *pba_num, u32 pba_num_size)
     463                 :            : {
     464         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->eeprom.ops.read_pba_string, (hw, pba_num,
     465                 :            :                                pba_num_size), IXGBE_NOT_IMPLEMENTED);
     466                 :            : }
     467                 :            : 
     468                 :            : /**
     469                 :            :  * ixgbe_read_pba_num - Reads part number from EEPROM
     470                 :            :  * @hw: pointer to hardware structure
     471                 :            :  * @pba_num: stores the part number from the EEPROM
     472                 :            :  *
     473                 :            :  * Reads the part number from the EEPROM.
     474                 :            :  **/
     475                 :          0 : s32 ixgbe_read_pba_num(struct ixgbe_hw *hw, u32 *pba_num)
     476                 :            : {
     477                 :          0 :         return ixgbe_read_pba_num_generic(hw, pba_num);
     478                 :            : }
     479                 :            : 
     480                 :            : /**
     481                 :            :  * ixgbe_identify_phy - Get PHY type
     482                 :            :  * @hw: pointer to hardware structure
     483                 :            :  *
     484                 :            :  * Determines the physical layer module found on the current adapter.
     485                 :            :  **/
     486                 :          0 : s32 ixgbe_identify_phy(struct ixgbe_hw *hw)
     487                 :            : {
     488                 :            :         s32 status = IXGBE_SUCCESS;
     489                 :            : 
     490         [ #  # ]:          0 :         if (hw->phy.type == ixgbe_phy_unknown) {
     491         [ #  # ]:          0 :                 status = ixgbe_call_func(hw, hw->phy.ops.identify, (hw),
     492                 :            :                                          IXGBE_NOT_IMPLEMENTED);
     493                 :            :         }
     494                 :            : 
     495                 :          0 :         return status;
     496                 :            : }
     497                 :            : 
     498                 :            : /**
     499                 :            :  * ixgbe_reset_phy - Perform a PHY reset
     500                 :            :  * @hw: pointer to hardware structure
     501                 :            :  **/
     502                 :          0 : s32 ixgbe_reset_phy(struct ixgbe_hw *hw)
     503                 :            : {
     504                 :            :         s32 status = IXGBE_SUCCESS;
     505                 :            : 
     506         [ #  # ]:          0 :         if (hw->phy.type == ixgbe_phy_unknown) {
     507         [ #  # ]:          0 :                 if (ixgbe_identify_phy(hw) != IXGBE_SUCCESS)
     508                 :            :                         status = IXGBE_ERR_PHY;
     509                 :            :         }
     510                 :            : 
     511                 :            :         if (status == IXGBE_SUCCESS) {
     512         [ #  # ]:          0 :                 status = ixgbe_call_func(hw, hw->phy.ops.reset, (hw),
     513                 :            :                                          IXGBE_NOT_IMPLEMENTED);
     514                 :            :         }
     515                 :          0 :         return status;
     516                 :            : }
     517                 :            : 
     518                 :            : /**
     519                 :            :  * ixgbe_get_phy_firmware_version -
     520                 :            :  * @hw: pointer to hardware structure
     521                 :            :  * @firmware_version: pointer to firmware version
     522                 :            :  **/
     523                 :          0 : s32 ixgbe_get_phy_firmware_version(struct ixgbe_hw *hw, u16 *firmware_version)
     524                 :            : {
     525                 :            :         s32 status = IXGBE_SUCCESS;
     526                 :            : 
     527         [ #  # ]:          0 :         status = ixgbe_call_func(hw, hw->phy.ops.get_firmware_version,
     528                 :            :                                  (hw, firmware_version),
     529                 :            :                                  IXGBE_NOT_IMPLEMENTED);
     530                 :          0 :         return status;
     531                 :            : }
     532                 :            : 
     533                 :            : /**
     534                 :            :  * ixgbe_read_phy_reg - Read PHY register
     535                 :            :  * @hw: pointer to hardware structure
     536                 :            :  * @reg_addr: 32 bit address of PHY register to read
     537                 :            :  * @device_type: type of device you want to communicate with
     538                 :            :  * @phy_data: Pointer to read data from PHY register
     539                 :            :  *
     540                 :            :  * Reads a value from a specified PHY register
     541                 :            :  **/
     542                 :          0 : s32 ixgbe_read_phy_reg(struct ixgbe_hw *hw, u32 reg_addr, u32 device_type,
     543                 :            :                        u16 *phy_data)
     544                 :            : {
     545         [ #  # ]:          0 :         if (hw->phy.id == 0)
     546                 :          0 :                 ixgbe_identify_phy(hw);
     547                 :            : 
     548         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.read_reg, (hw, reg_addr,
     549                 :            :                                device_type, phy_data), IXGBE_NOT_IMPLEMENTED);
     550                 :            : }
     551                 :            : 
     552                 :            : /**
     553                 :            :  * ixgbe_write_phy_reg - Write PHY register
     554                 :            :  * @hw: pointer to hardware structure
     555                 :            :  * @reg_addr: 32 bit PHY register to write
     556                 :            :  * @device_type: type of device you want to communicate with
     557                 :            :  * @phy_data: Data to write to the PHY register
     558                 :            :  *
     559                 :            :  * Writes a value to specified PHY register
     560                 :            :  **/
     561                 :          0 : s32 ixgbe_write_phy_reg(struct ixgbe_hw *hw, u32 reg_addr, u32 device_type,
     562                 :            :                         u16 phy_data)
     563                 :            : {
     564         [ #  # ]:          0 :         if (hw->phy.id == 0)
     565                 :          0 :                 ixgbe_identify_phy(hw);
     566                 :            : 
     567         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.write_reg, (hw, reg_addr,
     568                 :            :                                device_type, phy_data), IXGBE_NOT_IMPLEMENTED);
     569                 :            : }
     570                 :            : 
     571                 :            : /**
     572                 :            :  * ixgbe_setup_phy_link - Restart PHY autoneg
     573                 :            :  * @hw: pointer to hardware structure
     574                 :            :  *
     575                 :            :  * Restart autonegotiation and PHY and waits for completion.
     576                 :            :  **/
     577                 :          0 : s32 ixgbe_setup_phy_link(struct ixgbe_hw *hw)
     578                 :            : {
     579         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.setup_link, (hw),
     580                 :            :                                IXGBE_NOT_IMPLEMENTED);
     581                 :            : }
     582                 :            : 
     583                 :            : /**
     584                 :            :  * ixgbe_setup_internal_phy - Configure integrated PHY
     585                 :            :  * @hw: pointer to hardware structure
     586                 :            :  *
     587                 :            :  * Reconfigure the integrated PHY in order to enable talk to the external PHY.
     588                 :            :  * Returns success if not implemented, since nothing needs to be done in this
     589                 :            :  * case.
     590                 :            :  */
     591                 :          0 : s32 ixgbe_setup_internal_phy(struct ixgbe_hw *hw)
     592                 :            : {
     593         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.setup_internal_link, (hw),
     594                 :            :                                IXGBE_SUCCESS);
     595                 :            : }
     596                 :            : 
     597                 :            : /**
     598                 :            :  * ixgbe_check_phy_link - Determine link and speed status
     599                 :            :  * @hw: pointer to hardware structure
     600                 :            :  * @speed: link speed
     601                 :            :  * @link_up: true when link is up
     602                 :            :  *
     603                 :            :  * Reads a PHY register to determine if link is up and the current speed for
     604                 :            :  * the PHY.
     605                 :            :  **/
     606                 :          0 : s32 ixgbe_check_phy_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
     607                 :            :                          bool *link_up)
     608                 :            : {
     609         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.check_link, (hw, speed,
     610                 :            :                                link_up), IXGBE_NOT_IMPLEMENTED);
     611                 :            : }
     612                 :            : 
     613                 :            : /**
     614                 :            :  * ixgbe_setup_phy_link_speed - Set auto advertise
     615                 :            :  * @hw: pointer to hardware structure
     616                 :            :  * @speed: new link speed
     617                 :            :  * @autoneg_wait_to_complete: true when waiting for completion is needed
     618                 :            :  *
     619                 :            :  * Sets the auto advertised capabilities
     620                 :            :  **/
     621                 :          0 : s32 ixgbe_setup_phy_link_speed(struct ixgbe_hw *hw, ixgbe_link_speed speed,
     622                 :            :                                bool autoneg_wait_to_complete)
     623                 :            : {
     624         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.setup_link_speed, (hw, speed,
     625                 :            :                                autoneg_wait_to_complete),
     626                 :            :                                IXGBE_NOT_IMPLEMENTED);
     627                 :            : }
     628                 :            : 
     629                 :            : /**
     630                 :            :  * ixgbe_set_phy_power - Control the phy power state
     631                 :            :  * @hw: pointer to hardware structure
     632                 :            :  * @on: true for on, false for off
     633                 :            :  */
     634                 :          0 : s32 ixgbe_set_phy_power(struct ixgbe_hw *hw, bool on)
     635                 :            : {
     636         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.set_phy_power, (hw, on),
     637                 :            :                                IXGBE_NOT_IMPLEMENTED);
     638                 :            : }
     639                 :            : 
     640                 :            : /**
     641                 :            :  * ixgbe_check_link - Get link and speed status
     642                 :            :  * @hw: pointer to hardware structure
     643                 :            :  * @speed: pointer to link speed
     644                 :            :  * @link_up: true when link is up
     645                 :            :  * @link_up_wait_to_complete: bool used to wait for link up or not
     646                 :            :  *
     647                 :            :  * Reads the links register to determine if link is up and the current speed
     648                 :            :  **/
     649                 :          0 : s32 ixgbe_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
     650                 :            :                      bool *link_up, bool link_up_wait_to_complete)
     651                 :            : {
     652         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.check_link, (hw, speed,
     653                 :            :                                link_up, link_up_wait_to_complete),
     654                 :            :                                IXGBE_NOT_IMPLEMENTED);
     655                 :            : }
     656                 :            : 
     657                 :            : /**
     658                 :            :  * ixgbe_disable_tx_laser - Disable Tx laser
     659                 :            :  * @hw: pointer to hardware structure
     660                 :            :  *
     661                 :            :  * If the driver needs to disable the laser on SFI optics.
     662                 :            :  **/
     663                 :          0 : void ixgbe_disable_tx_laser(struct ixgbe_hw *hw)
     664                 :            : {
     665         [ #  # ]:          0 :         if (hw->mac.ops.disable_tx_laser)
     666                 :          0 :                 hw->mac.ops.disable_tx_laser(hw);
     667                 :          0 : }
     668                 :            : 
     669                 :            : /**
     670                 :            :  * ixgbe_enable_tx_laser - Enable Tx laser
     671                 :            :  * @hw: pointer to hardware structure
     672                 :            :  *
     673                 :            :  * If the driver needs to enable the laser on SFI optics.
     674                 :            :  **/
     675                 :          0 : void ixgbe_enable_tx_laser(struct ixgbe_hw *hw)
     676                 :            : {
     677         [ #  # ]:          0 :         if (hw->mac.ops.enable_tx_laser)
     678                 :          0 :                 hw->mac.ops.enable_tx_laser(hw);
     679                 :          0 : }
     680                 :            : 
     681                 :            : /**
     682                 :            :  * ixgbe_flap_tx_laser - flap Tx laser to start autotry process
     683                 :            :  * @hw: pointer to hardware structure
     684                 :            :  *
     685                 :            :  * When the driver changes the link speeds that it can support then
     686                 :            :  * flap the tx laser to alert the link partner to start autotry
     687                 :            :  * process on its end.
     688                 :            :  **/
     689                 :          0 : void ixgbe_flap_tx_laser(struct ixgbe_hw *hw)
     690                 :            : {
     691         [ #  # ]:          0 :         if (hw->mac.ops.flap_tx_laser)
     692                 :          0 :                 hw->mac.ops.flap_tx_laser(hw);
     693                 :          0 : }
     694                 :            : 
     695                 :            : /**
     696                 :            :  * ixgbe_setup_link - Set link speed
     697                 :            :  * @hw: pointer to hardware structure
     698                 :            :  * @speed: new link speed
     699                 :            :  * @autoneg_wait_to_complete: true when waiting for completion is needed
     700                 :            :  *
     701                 :            :  * Configures link settings.  Restarts the link.
     702                 :            :  * Performs autonegotiation if needed.
     703                 :            :  **/
     704                 :          0 : s32 ixgbe_setup_link(struct ixgbe_hw *hw, ixgbe_link_speed speed,
     705                 :            :                      bool autoneg_wait_to_complete)
     706                 :            : {
     707         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.setup_link, (hw, speed,
     708                 :            :                                autoneg_wait_to_complete),
     709                 :            :                                IXGBE_NOT_IMPLEMENTED);
     710                 :            : }
     711                 :            : 
     712                 :            : /**
     713                 :            :  * ixgbe_setup_mac_link - Set link speed
     714                 :            :  * @hw: pointer to hardware structure
     715                 :            :  * @speed: new link speed
     716                 :            :  * @autoneg_wait_to_complete: true when waiting for completion is needed
     717                 :            :  *
     718                 :            :  * Configures link settings.  Restarts the link.
     719                 :            :  * Performs autonegotiation if needed.
     720                 :            :  **/
     721                 :          0 : s32 ixgbe_setup_mac_link(struct ixgbe_hw *hw, ixgbe_link_speed speed,
     722                 :            :                          bool autoneg_wait_to_complete)
     723                 :            : {
     724         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.setup_mac_link, (hw, speed,
     725                 :            :                                autoneg_wait_to_complete),
     726                 :            :                                IXGBE_NOT_IMPLEMENTED);
     727                 :            : }
     728                 :            : 
     729                 :            : /**
     730                 :            :  * ixgbe_get_link_capabilities - Returns link capabilities
     731                 :            :  * @hw: pointer to hardware structure
     732                 :            :  * @speed: link speed capabilities
     733                 :            :  * @autoneg: true when autoneg or autotry is enabled
     734                 :            :  *
     735                 :            :  * Determines the link capabilities of the current configuration.
     736                 :            :  **/
     737                 :          0 : s32 ixgbe_get_link_capabilities(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
     738                 :            :                                 bool *autoneg)
     739                 :            : {
     740         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_link_capabilities, (hw,
     741                 :            :                                speed, autoneg), IXGBE_NOT_IMPLEMENTED);
     742                 :            : }
     743                 :            : 
     744                 :            : /**
     745                 :            :  * ixgbe_led_on - Turn on LEDs
     746                 :            :  * @hw: pointer to hardware structure
     747                 :            :  * @index: led number to turn on
     748                 :            :  *
     749                 :            :  * Turns on the software controllable LEDs.
     750                 :            :  **/
     751                 :          0 : s32 ixgbe_led_on(struct ixgbe_hw *hw, u32 index)
     752                 :            : {
     753         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.led_on, (hw, index),
     754                 :            :                                IXGBE_NOT_IMPLEMENTED);
     755                 :            : }
     756                 :            : 
     757                 :            : /**
     758                 :            :  * ixgbe_led_off - Turn off LEDs
     759                 :            :  * @hw: pointer to hardware structure
     760                 :            :  * @index: led number to turn off
     761                 :            :  *
     762                 :            :  * Turns off the software controllable LEDs.
     763                 :            :  **/
     764                 :          0 : s32 ixgbe_led_off(struct ixgbe_hw *hw, u32 index)
     765                 :            : {
     766         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.led_off, (hw, index),
     767                 :            :                                IXGBE_NOT_IMPLEMENTED);
     768                 :            : }
     769                 :            : 
     770                 :            : /**
     771                 :            :  * ixgbe_blink_led_start - Blink LEDs
     772                 :            :  * @hw: pointer to hardware structure
     773                 :            :  * @index: led number to blink
     774                 :            :  *
     775                 :            :  * Blink LED based on index.
     776                 :            :  **/
     777                 :          0 : s32 ixgbe_blink_led_start(struct ixgbe_hw *hw, u32 index)
     778                 :            : {
     779         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.blink_led_start, (hw, index),
     780                 :            :                                IXGBE_NOT_IMPLEMENTED);
     781                 :            : }
     782                 :            : 
     783                 :            : /**
     784                 :            :  * ixgbe_blink_led_stop - Stop blinking LEDs
     785                 :            :  * @hw: pointer to hardware structure
     786                 :            :  * @index: led number to stop
     787                 :            :  *
     788                 :            :  * Stop blinking LED based on index.
     789                 :            :  **/
     790                 :          0 : s32 ixgbe_blink_led_stop(struct ixgbe_hw *hw, u32 index)
     791                 :            : {
     792         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.blink_led_stop, (hw, index),
     793                 :            :                                IXGBE_NOT_IMPLEMENTED);
     794                 :            : }
     795                 :            : 
     796                 :            : /**
     797                 :            :  * ixgbe_init_eeprom_params - Initialize EEPROM parameters
     798                 :            :  * @hw: pointer to hardware structure
     799                 :            :  *
     800                 :            :  * Initializes the EEPROM parameters ixgbe_eeprom_info within the
     801                 :            :  * ixgbe_hw struct in order to set up EEPROM access.
     802                 :            :  **/
     803                 :          0 : s32 ixgbe_init_eeprom_params(struct ixgbe_hw *hw)
     804                 :            : {
     805         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->eeprom.ops.init_params, (hw),
     806                 :            :                                IXGBE_NOT_IMPLEMENTED);
     807                 :            : }
     808                 :            : 
     809                 :            : 
     810                 :            : /**
     811                 :            :  * ixgbe_write_eeprom - Write word to EEPROM
     812                 :            :  * @hw: pointer to hardware structure
     813                 :            :  * @offset: offset within the EEPROM to be written to
     814                 :            :  * @data: 16 bit word to be written to the EEPROM
     815                 :            :  *
     816                 :            :  * Writes 16 bit value to EEPROM. If ixgbe_eeprom_update_checksum is not
     817                 :            :  * called after this function, the EEPROM will most likely contain an
     818                 :            :  * invalid checksum.
     819                 :            :  **/
     820                 :          0 : s32 ixgbe_write_eeprom(struct ixgbe_hw *hw, u16 offset, u16 data)
     821                 :            : {
     822         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->eeprom.ops.write, (hw, offset, data),
     823                 :            :                                IXGBE_NOT_IMPLEMENTED);
     824                 :            : }
     825                 :            : 
     826                 :            : /**
     827                 :            :  * ixgbe_write_eeprom_buffer - Write word(s) to EEPROM
     828                 :            :  * @hw: pointer to hardware structure
     829                 :            :  * @offset: offset within the EEPROM to be written to
     830                 :            :  * @data: 16 bit word(s) to be written to the EEPROM
     831                 :            :  * @words: number of words
     832                 :            :  *
     833                 :            :  * Writes 16 bit word(s) to EEPROM. If ixgbe_eeprom_update_checksum is not
     834                 :            :  * called after this function, the EEPROM will most likely contain an
     835                 :            :  * invalid checksum.
     836                 :            :  **/
     837                 :          0 : s32 ixgbe_write_eeprom_buffer(struct ixgbe_hw *hw, u16 offset, u16 words,
     838                 :            :                               u16 *data)
     839                 :            : {
     840         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->eeprom.ops.write_buffer,
     841                 :            :                                (hw, offset, words, data),
     842                 :            :                                IXGBE_NOT_IMPLEMENTED);
     843                 :            : }
     844                 :            : 
     845                 :            : /**
     846                 :            :  * ixgbe_read_eeprom - Read word from EEPROM
     847                 :            :  * @hw: pointer to hardware structure
     848                 :            :  * @offset: offset within the EEPROM to be read
     849                 :            :  * @data: read 16 bit value from EEPROM
     850                 :            :  *
     851                 :            :  * Reads 16 bit value from EEPROM
     852                 :            :  **/
     853                 :          0 : s32 ixgbe_read_eeprom(struct ixgbe_hw *hw, u16 offset, u16 *data)
     854                 :            : {
     855         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->eeprom.ops.read, (hw, offset, data),
     856                 :            :                                IXGBE_NOT_IMPLEMENTED);
     857                 :            : }
     858                 :            : 
     859                 :            : /**
     860                 :            :  * ixgbe_read_eeprom_buffer - Read word(s) from EEPROM
     861                 :            :  * @hw: pointer to hardware structure
     862                 :            :  * @offset: offset within the EEPROM to be read
     863                 :            :  * @data: read 16 bit word(s) from EEPROM
     864                 :            :  * @words: number of words
     865                 :            :  *
     866                 :            :  * Reads 16 bit word(s) from EEPROM
     867                 :            :  **/
     868                 :          0 : s32 ixgbe_read_eeprom_buffer(struct ixgbe_hw *hw, u16 offset,
     869                 :            :                              u16 words, u16 *data)
     870                 :            : {
     871         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->eeprom.ops.read_buffer,
     872                 :            :                                (hw, offset, words, data),
     873                 :            :                                IXGBE_NOT_IMPLEMENTED);
     874                 :            : }
     875                 :            : 
     876                 :            : /**
     877                 :            :  * ixgbe_validate_eeprom_checksum - Validate EEPROM checksum
     878                 :            :  * @hw: pointer to hardware structure
     879                 :            :  * @checksum_val: calculated checksum
     880                 :            :  *
     881                 :            :  * Performs checksum calculation and validates the EEPROM checksum
     882                 :            :  **/
     883                 :          0 : s32 ixgbe_validate_eeprom_checksum(struct ixgbe_hw *hw, u16 *checksum_val)
     884                 :            : {
     885         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->eeprom.ops.validate_checksum,
     886                 :            :                                (hw, checksum_val), IXGBE_NOT_IMPLEMENTED);
     887                 :            : }
     888                 :            : 
     889                 :            : /**
     890                 :            :  * ixgbe_update_eeprom_checksum - Updates the EEPROM checksum
     891                 :            :  * @hw: pointer to hardware structure
     892                 :            :  **/
     893                 :          0 : s32 ixgbe_update_eeprom_checksum(struct ixgbe_hw *hw)
     894                 :            : {
     895         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->eeprom.ops.update_checksum, (hw),
     896                 :            :                                IXGBE_NOT_IMPLEMENTED);
     897                 :            : }
     898                 :            : 
     899                 :            : /**
     900                 :            :  * ixgbe_insert_mac_addr - Find a RAR for this mac address
     901                 :            :  * @hw: pointer to hardware structure
     902                 :            :  * @addr: Address to put into receive address register
     903                 :            :  * @vmdq: VMDq pool to assign
     904                 :            :  *
     905                 :            :  * Puts an ethernet address into a receive address register, or
     906                 :            :  * finds the rar that it is already in; adds to the pool list
     907                 :            :  **/
     908                 :          0 : s32 ixgbe_insert_mac_addr(struct ixgbe_hw *hw, u8 *addr, u32 vmdq)
     909                 :            : {
     910         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.insert_mac_addr,
     911                 :            :                                (hw, addr, vmdq),
     912                 :            :                                IXGBE_NOT_IMPLEMENTED);
     913                 :            : }
     914                 :            : 
     915                 :            : /**
     916                 :            :  * ixgbe_set_rar - Set Rx address register
     917                 :            :  * @hw: pointer to hardware structure
     918                 :            :  * @index: Receive address register to write
     919                 :            :  * @addr: Address to put into receive address register
     920                 :            :  * @vmdq: VMDq "set"
     921                 :            :  * @enable_addr: set flag that address is active
     922                 :            :  *
     923                 :            :  * Puts an ethernet address into a receive address register.
     924                 :            :  **/
     925                 :          0 : s32 ixgbe_set_rar(struct ixgbe_hw *hw, u32 index, u8 *addr, u32 vmdq,
     926                 :            :                   u32 enable_addr)
     927                 :            : {
     928         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.set_rar, (hw, index, addr, vmdq,
     929                 :            :                                enable_addr), IXGBE_NOT_IMPLEMENTED);
     930                 :            : }
     931                 :            : 
     932                 :            : /**
     933                 :            :  * ixgbe_clear_rar - Clear Rx address register
     934                 :            :  * @hw: pointer to hardware structure
     935                 :            :  * @index: Receive address register to write
     936                 :            :  *
     937                 :            :  * Puts an ethernet address into a receive address register.
     938                 :            :  **/
     939                 :          0 : s32 ixgbe_clear_rar(struct ixgbe_hw *hw, u32 index)
     940                 :            : {
     941         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.clear_rar, (hw, index),
     942                 :            :                                IXGBE_NOT_IMPLEMENTED);
     943                 :            : }
     944                 :            : 
     945                 :            : /**
     946                 :            :  * ixgbe_set_vmdq - Associate a VMDq index with a receive address
     947                 :            :  * @hw: pointer to hardware structure
     948                 :            :  * @rar: receive address register index to associate with VMDq index
     949                 :            :  * @vmdq: VMDq set or pool index
     950                 :            :  **/
     951                 :          0 : s32 ixgbe_set_vmdq(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
     952                 :            : {
     953         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.set_vmdq, (hw, rar, vmdq),
     954                 :            :                                IXGBE_NOT_IMPLEMENTED);
     955                 :            : 
     956                 :            : }
     957                 :            : 
     958                 :            : /**
     959                 :            :  * ixgbe_set_vmdq_san_mac - Associate VMDq index 127 with a receive address
     960                 :            :  * @hw: pointer to hardware structure
     961                 :            :  * @vmdq: VMDq default pool index
     962                 :            :  **/
     963                 :          0 : s32 ixgbe_set_vmdq_san_mac(struct ixgbe_hw *hw, u32 vmdq)
     964                 :            : {
     965         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.set_vmdq_san_mac,
     966                 :            :                                (hw, vmdq), IXGBE_NOT_IMPLEMENTED);
     967                 :            : }
     968                 :            : 
     969                 :            : /**
     970                 :            :  * ixgbe_clear_vmdq - Disassociate a VMDq index from a receive address
     971                 :            :  * @hw: pointer to hardware structure
     972                 :            :  * @rar: receive address register index to disassociate with VMDq index
     973                 :            :  * @vmdq: VMDq set or pool index
     974                 :            :  **/
     975                 :          0 : s32 ixgbe_clear_vmdq(struct ixgbe_hw *hw, u32 rar, u32 vmdq)
     976                 :            : {
     977         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.clear_vmdq, (hw, rar, vmdq),
     978                 :            :                                IXGBE_NOT_IMPLEMENTED);
     979                 :            : }
     980                 :            : 
     981                 :            : /**
     982                 :            :  * ixgbe_init_rx_addrs - Initializes receive address filters.
     983                 :            :  * @hw: pointer to hardware structure
     984                 :            :  *
     985                 :            :  * Places the MAC address in receive address register 0 and clears the rest
     986                 :            :  * of the receive address registers. Clears the multicast table. Assumes
     987                 :            :  * the receiver is in reset when the routine is called.
     988                 :            :  **/
     989                 :          0 : s32 ixgbe_init_rx_addrs(struct ixgbe_hw *hw)
     990                 :            : {
     991         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.init_rx_addrs, (hw),
     992                 :            :                                IXGBE_NOT_IMPLEMENTED);
     993                 :            : }
     994                 :            : 
     995                 :            : /**
     996                 :            :  * ixgbe_get_num_rx_addrs - Returns the number of RAR entries.
     997                 :            :  * @hw: pointer to hardware structure
     998                 :            :  **/
     999                 :          0 : u32 ixgbe_get_num_rx_addrs(struct ixgbe_hw *hw)
    1000                 :            : {
    1001                 :          0 :         return hw->mac.num_rar_entries;
    1002                 :            : }
    1003                 :            : 
    1004                 :            : /**
    1005                 :            :  * ixgbe_update_uc_addr_list - Updates the MAC's list of secondary addresses
    1006                 :            :  * @hw: pointer to hardware structure
    1007                 :            :  * @addr_list: the list of new multicast addresses
    1008                 :            :  * @addr_count: number of addresses
    1009                 :            :  * @func: iterator function to walk the multicast address list
    1010                 :            :  *
    1011                 :            :  * The given list replaces any existing list. Clears the secondary addrs from
    1012                 :            :  * receive address registers. Uses unused receive address registers for the
    1013                 :            :  * first secondary addresses, and falls back to promiscuous mode as needed.
    1014                 :            :  **/
    1015                 :          0 : s32 ixgbe_update_uc_addr_list(struct ixgbe_hw *hw, u8 *addr_list,
    1016                 :            :                               u32 addr_count, ixgbe_mc_addr_itr func)
    1017                 :            : {
    1018         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.update_uc_addr_list, (hw,
    1019                 :            :                                addr_list, addr_count, func),
    1020                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1021                 :            : }
    1022                 :            : 
    1023                 :            : /**
    1024                 :            :  * ixgbe_update_mc_addr_list - Updates the MAC's list of multicast addresses
    1025                 :            :  * @hw: pointer to hardware structure
    1026                 :            :  * @mc_addr_list: the list of new multicast addresses
    1027                 :            :  * @mc_addr_count: number of addresses
    1028                 :            :  * @func: iterator function to walk the multicast address list
    1029                 :            :  * @clear: flag, when set clears the table beforehand
    1030                 :            :  *
    1031                 :            :  * The given list replaces any existing list. Clears the MC addrs from receive
    1032                 :            :  * address registers and the multicast table. Uses unused receive address
    1033                 :            :  * registers for the first multicast addresses, and hashes the rest into the
    1034                 :            :  * multicast table.
    1035                 :            :  **/
    1036                 :          0 : s32 ixgbe_update_mc_addr_list(struct ixgbe_hw *hw, u8 *mc_addr_list,
    1037                 :            :                               u32 mc_addr_count, ixgbe_mc_addr_itr func,
    1038                 :            :                               bool clear)
    1039                 :            : {
    1040         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.update_mc_addr_list, (hw,
    1041                 :            :                                mc_addr_list, mc_addr_count, func, clear),
    1042                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1043                 :            : }
    1044                 :            : 
    1045                 :            : /**
    1046                 :            :  * ixgbe_enable_mc - Enable multicast address in RAR
    1047                 :            :  * @hw: pointer to hardware structure
    1048                 :            :  *
    1049                 :            :  * Enables multicast address in RAR and the use of the multicast hash table.
    1050                 :            :  **/
    1051                 :          0 : s32 ixgbe_enable_mc(struct ixgbe_hw *hw)
    1052                 :            : {
    1053         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.enable_mc, (hw),
    1054                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1055                 :            : }
    1056                 :            : 
    1057                 :            : /**
    1058                 :            :  * ixgbe_disable_mc - Disable multicast address in RAR
    1059                 :            :  * @hw: pointer to hardware structure
    1060                 :            :  *
    1061                 :            :  * Disables multicast address in RAR and the use of the multicast hash table.
    1062                 :            :  **/
    1063                 :          0 : s32 ixgbe_disable_mc(struct ixgbe_hw *hw)
    1064                 :            : {
    1065         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.disable_mc, (hw),
    1066                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1067                 :            : }
    1068                 :            : 
    1069                 :            : /**
    1070                 :            :  * ixgbe_clear_vfta - Clear VLAN filter table
    1071                 :            :  * @hw: pointer to hardware structure
    1072                 :            :  *
    1073                 :            :  * Clears the VLAN filer table, and the VMDq index associated with the filter
    1074                 :            :  **/
    1075                 :          0 : s32 ixgbe_clear_vfta(struct ixgbe_hw *hw)
    1076                 :            : {
    1077         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.clear_vfta, (hw),
    1078                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1079                 :            : }
    1080                 :            : 
    1081                 :            : /**
    1082                 :            :  * ixgbe_set_vfta - Set VLAN filter table
    1083                 :            :  * @hw: pointer to hardware structure
    1084                 :            :  * @vlan: VLAN id to write to VLAN filter
    1085                 :            :  * @vind: VMDq output index that maps queue to VLAN id in VLVFB
    1086                 :            :  * @vlan_on: boolean flag to turn on/off VLAN
    1087                 :            :  * @vlvf_bypass: boolean flag indicating updating the default pool is okay
    1088                 :            :  *
    1089                 :            :  * Turn on/off specified VLAN in the VLAN filter table.
    1090                 :            :  **/
    1091                 :          0 : s32 ixgbe_set_vfta(struct ixgbe_hw *hw, u32 vlan, u32 vind, bool vlan_on,
    1092                 :            :                    bool vlvf_bypass)
    1093                 :            : {
    1094         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.set_vfta, (hw, vlan, vind,
    1095                 :            :                                vlan_on, vlvf_bypass), IXGBE_NOT_IMPLEMENTED);
    1096                 :            : }
    1097                 :            : 
    1098                 :            : /**
    1099                 :            :  * ixgbe_set_vlvf - Set VLAN Pool Filter
    1100                 :            :  * @hw: pointer to hardware structure
    1101                 :            :  * @vlan: VLAN id to write to VLAN filter
    1102                 :            :  * @vind: VMDq output index that maps queue to VLAN id in VLVFB
    1103                 :            :  * @vlan_on: boolean flag to turn on/off VLAN in VLVF
    1104                 :            :  * @vfta_delta: pointer to the difference between the current value of VFTA
    1105                 :            :  *               and the desired value
    1106                 :            :  * @vfta: the desired value of the VFTA
    1107                 :            :  * @vlvf_bypass: boolean flag indicating updating the default pool is okay
    1108                 :            :  *
    1109                 :            :  * Turn on/off specified bit in VLVF table.
    1110                 :            :  **/
    1111                 :          0 : s32 ixgbe_set_vlvf(struct ixgbe_hw *hw, u32 vlan, u32 vind, bool vlan_on,
    1112                 :            :                    u32 *vfta_delta, u32 vfta, bool vlvf_bypass)
    1113                 :            : {
    1114         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.set_vlvf, (hw, vlan, vind,
    1115                 :            :                                vlan_on, vfta_delta, vfta, vlvf_bypass),
    1116                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1117                 :            : }
    1118                 :            : 
    1119                 :            : /**
    1120                 :            :  * ixgbe_fc_enable - Enable flow control
    1121                 :            :  * @hw: pointer to hardware structure
    1122                 :            :  *
    1123                 :            :  * Configures the flow control settings based on SW configuration.
    1124                 :            :  **/
    1125                 :          0 : s32 ixgbe_fc_enable(struct ixgbe_hw *hw)
    1126                 :            : {
    1127         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.fc_enable, (hw),
    1128                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1129                 :            : }
    1130                 :            : 
    1131                 :            : /**
    1132                 :            :  * ixgbe_setup_fc - Set up flow control
    1133                 :            :  * @hw: pointer to hardware structure
    1134                 :            :  *
    1135                 :            :  * Called at init time to set up flow control.
    1136                 :            :  **/
    1137                 :          0 : s32 ixgbe_setup_fc(struct ixgbe_hw *hw)
    1138                 :            : {
    1139         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.setup_fc, (hw),
    1140                 :            :                 IXGBE_NOT_IMPLEMENTED);
    1141                 :            : }
    1142                 :            : 
    1143                 :            : /**
    1144                 :            :  * ixgbe_set_fw_drv_ver - Try to send the driver version number FW
    1145                 :            :  * @hw: pointer to hardware structure
    1146                 :            :  * @maj: driver major number to be sent to firmware
    1147                 :            :  * @min: driver minor number to be sent to firmware
    1148                 :            :  * @build: driver build number to be sent to firmware
    1149                 :            :  * @ver: driver version number to be sent to firmware
    1150                 :            :  * @len: length of driver_ver string
    1151                 :            :  * @driver_ver: driver string
    1152                 :            :  **/
    1153                 :          0 : s32 ixgbe_set_fw_drv_ver(struct ixgbe_hw *hw, u8 maj, u8 min, u8 build,
    1154                 :            :                          u8 ver, u16 len, char *driver_ver)
    1155                 :            : {
    1156         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.set_fw_drv_ver, (hw, maj, min,
    1157                 :            :                                build, ver, len, driver_ver),
    1158                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1159                 :            : }
    1160                 :            : 
    1161                 :            : /**
    1162                 :            :  * ixgbe_get_fw_tsam_mode - Returns information whether TSAM is enabled
    1163                 :            :  * @hw: pointer to hardware structure
    1164                 :            :  *
    1165                 :            :  * Checks Thermal Sensor Autonomous Mode by reading the value of the
    1166                 :            :  * dedicated register.
    1167                 :            :  * Returns True if TSAM is enabled, False if TSAM is disabled.
    1168                 :            :  */
    1169                 :          0 : bool ixgbe_get_fw_tsam_mode(struct ixgbe_hw *hw)
    1170                 :            : {
    1171   [ #  #  #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_fw_tsam_mode, (hw),
    1172                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1173                 :            : }
    1174                 :            : 
    1175                 :            : /**
    1176                 :            :  * ixgbe_get_thermal_sensor_data - Gathers thermal sensor data
    1177                 :            :  * @hw: pointer to hardware structure
    1178                 :            :  *
    1179                 :            :  * Updates the temperatures in mac.thermal_sensor_data
    1180                 :            :  **/
    1181                 :          0 : s32 ixgbe_get_thermal_sensor_data(struct ixgbe_hw *hw)
    1182                 :            : {
    1183         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_thermal_sensor_data, (hw),
    1184                 :            :                                 IXGBE_NOT_IMPLEMENTED);
    1185                 :            : }
    1186                 :            : 
    1187                 :            : /**
    1188                 :            :  * ixgbe_init_thermal_sensor_thresh - Inits thermal sensor thresholds
    1189                 :            :  * @hw: pointer to hardware structure
    1190                 :            :  *
    1191                 :            :  * Inits the thermal sensor thresholds according to the NVM map
    1192                 :            :  **/
    1193                 :          0 : s32 ixgbe_init_thermal_sensor_thresh(struct ixgbe_hw *hw)
    1194                 :            : {
    1195         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.init_thermal_sensor_thresh, (hw),
    1196                 :            :                                 IXGBE_NOT_IMPLEMENTED);
    1197                 :            : }
    1198                 :            : 
    1199                 :            : /**
    1200                 :            :  * ixgbe_dmac_config - Configure DMA Coalescing registers.
    1201                 :            :  * @hw: pointer to hardware structure
    1202                 :            :  *
    1203                 :            :  * Configure DMA coalescing. If enabling dmac, dmac is activated.
    1204                 :            :  * When disabling dmac, dmac enable dmac bit is cleared.
    1205                 :            :  **/
    1206                 :          0 : s32 ixgbe_dmac_config(struct ixgbe_hw *hw)
    1207                 :            : {
    1208         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.dmac_config, (hw),
    1209                 :            :                                 IXGBE_NOT_IMPLEMENTED);
    1210                 :            : }
    1211                 :            : 
    1212                 :            : /**
    1213                 :            :  * ixgbe_dmac_update_tcs - Configure DMA Coalescing registers.
    1214                 :            :  * @hw: pointer to hardware structure
    1215                 :            :  *
    1216                 :            :  * Disables dmac, updates per TC settings, and then enable dmac.
    1217                 :            :  **/
    1218                 :          0 : s32 ixgbe_dmac_update_tcs(struct ixgbe_hw *hw)
    1219                 :            : {
    1220         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.dmac_update_tcs, (hw),
    1221                 :            :                                 IXGBE_NOT_IMPLEMENTED);
    1222                 :            : }
    1223                 :            : 
    1224                 :            : /**
    1225                 :            :  * ixgbe_dmac_config_tcs - Configure DMA Coalescing registers.
    1226                 :            :  * @hw: pointer to hardware structure
    1227                 :            :  *
    1228                 :            :  * Configure DMA coalescing threshold per TC and set high priority bit for
    1229                 :            :  * FCOE TC. The dmac enable bit must be cleared before configuring.
    1230                 :            :  **/
    1231                 :          0 : s32 ixgbe_dmac_config_tcs(struct ixgbe_hw *hw)
    1232                 :            : {
    1233         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.dmac_config_tcs, (hw),
    1234                 :            :                                 IXGBE_NOT_IMPLEMENTED);
    1235                 :            : }
    1236                 :            : 
    1237                 :            : /**
    1238                 :            :  * ixgbe_setup_eee - Enable/disable EEE support
    1239                 :            :  * @hw: pointer to the HW structure
    1240                 :            :  * @enable_eee: boolean flag to enable EEE
    1241                 :            :  *
    1242                 :            :  * Enable/disable EEE based on enable_ee flag.
    1243                 :            :  * Auto-negotiation must be started after BASE-T EEE bits in PHY register 7.3C
    1244                 :            :  * are modified.
    1245                 :            :  *
    1246                 :            :  **/
    1247                 :          0 : s32 ixgbe_setup_eee(struct ixgbe_hw *hw, bool enable_eee)
    1248                 :            : {
    1249         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.setup_eee, (hw, enable_eee),
    1250                 :            :                         IXGBE_NOT_IMPLEMENTED);
    1251                 :            : }
    1252                 :            : 
    1253                 :            : /**
    1254                 :            :  * ixgbe_set_source_address_pruning - Enable/Disable source address pruning
    1255                 :            :  * @hw: pointer to hardware structure
    1256                 :            :  * @enable: enable or disable source address pruning
    1257                 :            :  * @pool: Rx pool - Rx pool to toggle source address pruning
    1258                 :            :  **/
    1259                 :          0 : void ixgbe_set_source_address_pruning(struct ixgbe_hw *hw, bool enable,
    1260                 :            :                                       unsigned int pool)
    1261                 :            : {
    1262         [ #  # ]:          0 :         if (hw->mac.ops.set_source_address_pruning)
    1263                 :          0 :                 hw->mac.ops.set_source_address_pruning(hw, enable, pool);
    1264                 :          0 : }
    1265                 :            : 
    1266                 :            : /**
    1267                 :            :  * ixgbe_set_ethertype_anti_spoofing - Enable/Disable Ethertype anti-spoofing
    1268                 :            :  * @hw: pointer to hardware structure
    1269                 :            :  * @enable: enable or disable switch for Ethertype anti-spoofing
    1270                 :            :  * @vf: Virtual Function pool - VF Pool to set for Ethertype anti-spoofing
    1271                 :            :  *
    1272                 :            :  **/
    1273                 :          0 : void ixgbe_set_ethertype_anti_spoofing(struct ixgbe_hw *hw, bool enable, int vf)
    1274                 :            : {
    1275         [ #  # ]:          0 :         if (hw->mac.ops.set_ethertype_anti_spoofing)
    1276                 :          0 :                 hw->mac.ops.set_ethertype_anti_spoofing(hw, enable, vf);
    1277                 :          0 : }
    1278                 :            : 
    1279                 :            : /**
    1280                 :            :  * ixgbe_read_iosf_sb_reg - Read 32 bit PHY register
    1281                 :            :  * @hw: pointer to hardware structure
    1282                 :            :  * @reg_addr: 32 bit address of PHY register to read
    1283                 :            :  * @device_type: type of device you want to communicate with
    1284                 :            :  * @phy_data: Pointer to read data from PHY register
    1285                 :            :  *
    1286                 :            :  * Reads a value from a specified PHY register
    1287                 :            :  **/
    1288                 :          0 : s32 ixgbe_read_iosf_sb_reg(struct ixgbe_hw *hw, u32 reg_addr,
    1289                 :            :                            u32 device_type, u32 *phy_data)
    1290                 :            : {
    1291         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.read_iosf_sb_reg, (hw, reg_addr,
    1292                 :            :                                device_type, phy_data), IXGBE_NOT_IMPLEMENTED);
    1293                 :            : }
    1294                 :            : 
    1295                 :            : /**
    1296                 :            :  * ixgbe_write_iosf_sb_reg - Write 32 bit register through IOSF Sideband
    1297                 :            :  * @hw: pointer to hardware structure
    1298                 :            :  * @reg_addr: 32 bit PHY register to write
    1299                 :            :  * @device_type: type of device you want to communicate with
    1300                 :            :  * @phy_data: Data to write to the PHY register
    1301                 :            :  *
    1302                 :            :  * Writes a value to specified PHY register
    1303                 :            :  **/
    1304                 :          0 : s32 ixgbe_write_iosf_sb_reg(struct ixgbe_hw *hw, u32 reg_addr,
    1305                 :            :                             u32 device_type, u32 phy_data)
    1306                 :            : {
    1307         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.write_iosf_sb_reg, (hw, reg_addr,
    1308                 :            :                                device_type, phy_data), IXGBE_NOT_IMPLEMENTED);
    1309                 :            : }
    1310                 :            : 
    1311                 :            : /**
    1312                 :            :  * ixgbe_disable_mdd - Disable malicious driver detection
    1313                 :            :  * @hw: pointer to hardware structure
    1314                 :            :  *
    1315                 :            :  **/
    1316                 :          0 : void ixgbe_disable_mdd(struct ixgbe_hw *hw)
    1317                 :            : {
    1318         [ #  # ]:          0 :         if (hw->mac.ops.disable_mdd)
    1319                 :          0 :                 hw->mac.ops.disable_mdd(hw);
    1320                 :          0 : }
    1321                 :            : 
    1322                 :            : /**
    1323                 :            :  * ixgbe_enable_mdd - Enable malicious driver detection
    1324                 :            :  * @hw: pointer to hardware structure
    1325                 :            :  *
    1326                 :            :  **/
    1327                 :          0 : void ixgbe_enable_mdd(struct ixgbe_hw *hw)
    1328                 :            : {
    1329         [ #  # ]:          0 :         if (hw->mac.ops.enable_mdd)
    1330                 :          0 :                 hw->mac.ops.enable_mdd(hw);
    1331                 :          0 : }
    1332                 :            : 
    1333                 :            : /**
    1334                 :            :  * ixgbe_mdd_event - Handle malicious driver detection event
    1335                 :            :  * @hw: pointer to hardware structure
    1336                 :            :  * @vf_bitmap: vf bitmap of malicious vfs
    1337                 :            :  *
    1338                 :            :  **/
    1339                 :          0 : void ixgbe_mdd_event(struct ixgbe_hw *hw, u32 *vf_bitmap)
    1340                 :            : {
    1341         [ #  # ]:          0 :         if (hw->mac.ops.mdd_event)
    1342                 :          0 :                 hw->mac.ops.mdd_event(hw, vf_bitmap);
    1343                 :          0 : }
    1344                 :            : 
    1345                 :            : /**
    1346                 :            :  * ixgbe_restore_mdd_vf - Restore VF that was disabled during malicious driver
    1347                 :            :  * detection event
    1348                 :            :  * @hw: pointer to hardware structure
    1349                 :            :  * @vf: vf index
    1350                 :            :  *
    1351                 :            :  **/
    1352                 :          0 : void ixgbe_restore_mdd_vf(struct ixgbe_hw *hw, u32 vf)
    1353                 :            : {
    1354         [ #  # ]:          0 :         if (hw->mac.ops.restore_mdd_vf)
    1355                 :          0 :                 hw->mac.ops.restore_mdd_vf(hw, vf);
    1356                 :          0 : }
    1357                 :            : 
    1358                 :            : /**
    1359                 :            :  * ixgbe_fw_recovery_mode - Check if in FW NVM recovery mode
    1360                 :            :  * @hw: pointer to hardware structure
    1361                 :            :  *
    1362                 :            :  **/
    1363                 :          0 : bool ixgbe_fw_recovery_mode(struct ixgbe_hw *hw)
    1364                 :            : {
    1365         [ #  # ]:          0 :         if (hw->mac.ops.fw_recovery_mode)
    1366                 :          0 :                 return hw->mac.ops.fw_recovery_mode(hw);
    1367                 :            :         return false;
    1368                 :            : }
    1369                 :            : 
    1370                 :            : /**
    1371                 :            :  * ixgbe_enter_lplu - Transition to low power states
    1372                 :            :  * @hw: pointer to hardware structure
    1373                 :            :  *
    1374                 :            :  * Configures Low Power Link Up on transition to low power states
    1375                 :            :  * (from D0 to non-D0).
    1376                 :            :  **/
    1377                 :          0 : s32 ixgbe_enter_lplu(struct ixgbe_hw *hw)
    1378                 :            : {
    1379         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.enter_lplu, (hw),
    1380                 :            :                                 IXGBE_NOT_IMPLEMENTED);
    1381                 :            : }
    1382                 :            : 
    1383                 :            : /**
    1384                 :            :  * ixgbe_handle_lasi - Handle external Base T PHY interrupt
    1385                 :            :  * @hw: pointer to hardware structure
    1386                 :            :  *
    1387                 :            :  * Handle external Base T PHY interrupt. If high temperature
    1388                 :            :  * failure alarm then return error, else if link status change
    1389                 :            :  * then setup internal/external PHY link
    1390                 :            :  *
    1391                 :            :  * Return IXGBE_ERR_OVERTEMP if interrupt is high temperature
    1392                 :            :  * failure alarm, else return PHY access status.
    1393                 :            :  */
    1394                 :          0 : s32 ixgbe_handle_lasi(struct ixgbe_hw *hw)
    1395                 :            : {
    1396         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.handle_lasi, (hw),
    1397                 :            :                                 IXGBE_NOT_IMPLEMENTED);
    1398                 :            : }
    1399                 :            : 
    1400                 :            : /**
    1401                 :            :  * ixgbe_read_analog_reg8 - Reads 8 bit analog register
    1402                 :            :  * @hw: pointer to hardware structure
    1403                 :            :  * @reg: analog register to read
    1404                 :            :  * @val: read value
    1405                 :            :  *
    1406                 :            :  * Performs write operation to analog register specified.
    1407                 :            :  **/
    1408                 :          0 : s32 ixgbe_read_analog_reg8(struct ixgbe_hw *hw, u32 reg, u8 *val)
    1409                 :            : {
    1410         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.read_analog_reg8, (hw, reg,
    1411                 :            :                                val), IXGBE_NOT_IMPLEMENTED);
    1412                 :            : }
    1413                 :            : 
    1414                 :            : /**
    1415                 :            :  * ixgbe_write_analog_reg8 - Writes 8 bit analog register
    1416                 :            :  * @hw: pointer to hardware structure
    1417                 :            :  * @reg: analog register to write
    1418                 :            :  * @val: value to write
    1419                 :            :  *
    1420                 :            :  * Performs write operation to Atlas analog register specified.
    1421                 :            :  **/
    1422                 :          0 : s32 ixgbe_write_analog_reg8(struct ixgbe_hw *hw, u32 reg, u8 val)
    1423                 :            : {
    1424         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.write_analog_reg8, (hw, reg,
    1425                 :            :                                val), IXGBE_NOT_IMPLEMENTED);
    1426                 :            : }
    1427                 :            : 
    1428                 :            : /**
    1429                 :            :  * ixgbe_init_uta_tables - Initializes Unicast Table Arrays.
    1430                 :            :  * @hw: pointer to hardware structure
    1431                 :            :  *
    1432                 :            :  * Initializes the Unicast Table Arrays to zero on device load.  This
    1433                 :            :  * is part of the Rx init addr execution path.
    1434                 :            :  **/
    1435                 :          0 : s32 ixgbe_init_uta_tables(struct ixgbe_hw *hw)
    1436                 :            : {
    1437         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.init_uta_tables, (hw),
    1438                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1439                 :            : }
    1440                 :            : 
    1441                 :            : /**
    1442                 :            :  * ixgbe_read_i2c_byte - Reads 8 bit word over I2C at specified device address
    1443                 :            :  * @hw: pointer to hardware structure
    1444                 :            :  * @byte_offset: byte offset to read
    1445                 :            :  * @dev_addr: I2C bus address to read from
    1446                 :            :  * @data: value read
    1447                 :            :  *
    1448                 :            :  * Performs byte read operation to SFP module's EEPROM over I2C interface.
    1449                 :            :  **/
    1450                 :          0 : s32 ixgbe_read_i2c_byte(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr,
    1451                 :            :                         u8 *data)
    1452                 :            : {
    1453         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.read_i2c_byte, (hw, byte_offset,
    1454                 :            :                                dev_addr, data), IXGBE_NOT_IMPLEMENTED);
    1455                 :            : }
    1456                 :            : 
    1457                 :            : /**
    1458                 :            :  * ixgbe_read_i2c_byte_unlocked - Reads 8 bit word via I2C from device address
    1459                 :            :  * @hw: pointer to hardware structure
    1460                 :            :  * @byte_offset: byte offset to read
    1461                 :            :  * @dev_addr: I2C bus address to read from
    1462                 :            :  * @data: value read
    1463                 :            :  *
    1464                 :            :  * Performs byte read operation to SFP module's EEPROM over I2C interface.
    1465                 :            :  **/
    1466                 :          0 : s32 ixgbe_read_i2c_byte_unlocked(struct ixgbe_hw *hw, u8 byte_offset,
    1467                 :            :                                  u8 dev_addr, u8 *data)
    1468                 :            : {
    1469         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.read_i2c_byte_unlocked,
    1470                 :            :                                (hw, byte_offset, dev_addr, data),
    1471                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1472                 :            : }
    1473                 :            : 
    1474                 :            : /**
    1475                 :            :  * ixgbe_read_link - Perform read operation on link device
    1476                 :            :  * @hw: pointer to the hardware structure
    1477                 :            :  * @addr: bus address to read from
    1478                 :            :  * @reg: device register to read from
    1479                 :            :  * @val: pointer to location to receive read value
    1480                 :            :  *
    1481                 :            :  * Returns an error code on error.
    1482                 :            :  */
    1483                 :          0 : s32 ixgbe_read_link(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 *val)
    1484                 :            : {
    1485         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->link.ops.read_link, (hw, addr,
    1486                 :            :                                reg, val), IXGBE_NOT_IMPLEMENTED);
    1487                 :            : }
    1488                 :            : 
    1489                 :            : /**
    1490                 :            :  * ixgbe_read_link_unlocked - Perform read operation on link device
    1491                 :            :  * @hw: pointer to the hardware structure
    1492                 :            :  * @addr: bus address to read from
    1493                 :            :  * @reg: device register to read from
    1494                 :            :  * @val: pointer to location to receive read value
    1495                 :            :  *
    1496                 :            :  * Returns an error code on error.
    1497                 :            :  **/
    1498                 :          0 : s32 ixgbe_read_link_unlocked(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 *val)
    1499                 :            : {
    1500         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->link.ops.read_link_unlocked,
    1501                 :            :                                (hw, addr, reg, val), IXGBE_NOT_IMPLEMENTED);
    1502                 :            : }
    1503                 :            : 
    1504                 :            : /**
    1505                 :            :  * ixgbe_write_i2c_byte - Writes 8 bit word over I2C
    1506                 :            :  * @hw: pointer to hardware structure
    1507                 :            :  * @byte_offset: byte offset to write
    1508                 :            :  * @dev_addr: I2C bus address to write to
    1509                 :            :  * @data: value to write
    1510                 :            :  *
    1511                 :            :  * Performs byte write operation to SFP module's EEPROM over I2C interface
    1512                 :            :  * at a specified device address.
    1513                 :            :  **/
    1514                 :          0 : s32 ixgbe_write_i2c_byte(struct ixgbe_hw *hw, u8 byte_offset, u8 dev_addr,
    1515                 :            :                          u8 data)
    1516                 :            : {
    1517         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.write_i2c_byte, (hw, byte_offset,
    1518                 :            :                                dev_addr, data), IXGBE_NOT_IMPLEMENTED);
    1519                 :            : }
    1520                 :            : 
    1521                 :            : /**
    1522                 :            :  * ixgbe_write_i2c_byte_unlocked - Writes 8 bit word over I2C
    1523                 :            :  * @hw: pointer to hardware structure
    1524                 :            :  * @byte_offset: byte offset to write
    1525                 :            :  * @dev_addr: I2C bus address to write to
    1526                 :            :  * @data: value to write
    1527                 :            :  *
    1528                 :            :  * Performs byte write operation to SFP module's EEPROM over I2C interface
    1529                 :            :  * at a specified device address.
    1530                 :            :  **/
    1531                 :          0 : s32 ixgbe_write_i2c_byte_unlocked(struct ixgbe_hw *hw, u8 byte_offset,
    1532                 :            :                                   u8 dev_addr, u8 data)
    1533                 :            : {
    1534         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.write_i2c_byte_unlocked,
    1535                 :            :                                (hw, byte_offset, dev_addr, data),
    1536                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1537                 :            : }
    1538                 :            : 
    1539                 :            : /**
    1540                 :            :  * ixgbe_write_link - Perform write operation on link device
    1541                 :            :  * @hw: pointer to the hardware structure
    1542                 :            :  * @addr: bus address to write to
    1543                 :            :  * @reg: device register to write to
    1544                 :            :  * @val: value to write
    1545                 :            :  *
    1546                 :            :  * Returns an error code on error.
    1547                 :            :  */
    1548                 :          0 : s32 ixgbe_write_link(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 val)
    1549                 :            : {
    1550         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->link.ops.write_link,
    1551                 :            :                                (hw, addr, reg, val), IXGBE_NOT_IMPLEMENTED);
    1552                 :            : }
    1553                 :            : 
    1554                 :            : /**
    1555                 :            :  * ixgbe_write_link_unlocked - Perform write operation on link device
    1556                 :            :  * @hw: pointer to the hardware structure
    1557                 :            :  * @addr: bus address to write to
    1558                 :            :  * @reg: device register to write to
    1559                 :            :  * @val: value to write
    1560                 :            :  *
    1561                 :            :  * Returns an error code on error.
    1562                 :            :  **/
    1563                 :          0 : s32 ixgbe_write_link_unlocked(struct ixgbe_hw *hw, u8 addr, u16 reg, u16 val)
    1564                 :            : {
    1565         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->link.ops.write_link_unlocked,
    1566                 :            :                                (hw, addr, reg, val), IXGBE_NOT_IMPLEMENTED);
    1567                 :            : }
    1568                 :            : 
    1569                 :            : /**
    1570                 :            :  * ixgbe_write_i2c_eeprom - Writes 8 bit EEPROM word over I2C interface
    1571                 :            :  * @hw: pointer to hardware structure
    1572                 :            :  * @byte_offset: EEPROM byte offset to write
    1573                 :            :  * @eeprom_data: value to write
    1574                 :            :  *
    1575                 :            :  * Performs byte write operation to SFP module's EEPROM over I2C interface.
    1576                 :            :  **/
    1577                 :          0 : s32 ixgbe_write_i2c_eeprom(struct ixgbe_hw *hw,
    1578                 :            :                            u8 byte_offset, u8 eeprom_data)
    1579                 :            : {
    1580         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.write_i2c_eeprom,
    1581                 :            :                                (hw, byte_offset, eeprom_data),
    1582                 :            :                                IXGBE_NOT_IMPLEMENTED);
    1583                 :            : }
    1584                 :            : 
    1585                 :            : /**
    1586                 :            :  * ixgbe_read_i2c_eeprom - Reads 8 bit EEPROM word over I2C interface
    1587                 :            :  * @hw: pointer to hardware structure
    1588                 :            :  * @byte_offset: EEPROM byte offset to read
    1589                 :            :  * @eeprom_data: value read
    1590                 :            :  *
    1591                 :            :  * Performs byte read operation to SFP module's EEPROM over I2C interface.
    1592                 :            :  **/
    1593                 :          0 : s32 ixgbe_read_i2c_eeprom(struct ixgbe_hw *hw, u8 byte_offset, u8 *eeprom_data)
    1594                 :            : {
    1595         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->phy.ops.read_i2c_eeprom,
    1596                 :            :                               (hw, byte_offset, eeprom_data),
    1597                 :            :                               IXGBE_NOT_IMPLEMENTED);
    1598                 :            : }
    1599                 :            : 
    1600                 :            : /**
    1601                 :            :  * ixgbe_get_supported_physical_layer - Returns physical layer type
    1602                 :            :  * @hw: pointer to hardware structure
    1603                 :            :  *
    1604                 :            :  * Determines physical layer capabilities of the current configuration.
    1605                 :            :  **/
    1606                 :          0 : u64 ixgbe_get_supported_physical_layer(struct ixgbe_hw *hw)
    1607                 :            : {
    1608         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_supported_physical_layer,
    1609                 :            :                                (hw), IXGBE_PHYSICAL_LAYER_UNKNOWN);
    1610                 :            : }
    1611                 :            : 
    1612                 :            : /**
    1613                 :            :  * ixgbe_enable_rx_dma - Enables Rx DMA unit, dependent on device specifics
    1614                 :            :  * @hw: pointer to hardware structure
    1615                 :            :  * @regval: bitfield to write to the Rx DMA register
    1616                 :            :  *
    1617                 :            :  * Enables the Rx DMA unit of the device.
    1618                 :            :  **/
    1619                 :          0 : s32 ixgbe_enable_rx_dma(struct ixgbe_hw *hw, u32 regval)
    1620                 :            : {
    1621         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.enable_rx_dma,
    1622                 :            :                                (hw, regval), IXGBE_NOT_IMPLEMENTED);
    1623                 :            : }
    1624                 :            : 
    1625                 :            : /**
    1626                 :            :  * ixgbe_disable_sec_rx_path - Stops the receive data path
    1627                 :            :  * @hw: pointer to hardware structure
    1628                 :            :  *
    1629                 :            :  * Stops the receive data path.
    1630                 :            :  **/
    1631                 :          0 : s32 ixgbe_disable_sec_rx_path(struct ixgbe_hw *hw)
    1632                 :            : {
    1633         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.disable_sec_rx_path,
    1634                 :            :                                 (hw), IXGBE_NOT_IMPLEMENTED);
    1635                 :            : }
    1636                 :            : 
    1637                 :            : /**
    1638                 :            :  * ixgbe_enable_sec_rx_path - Enables the receive data path
    1639                 :            :  * @hw: pointer to hardware structure
    1640                 :            :  *
    1641                 :            :  * Enables the receive data path.
    1642                 :            :  **/
    1643                 :          0 : s32 ixgbe_enable_sec_rx_path(struct ixgbe_hw *hw)
    1644                 :            : {
    1645         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.enable_sec_rx_path,
    1646                 :            :                                 (hw), IXGBE_NOT_IMPLEMENTED);
    1647                 :            : }
    1648                 :            : 
    1649                 :            : /**
    1650                 :            :  * ixgbe_acquire_swfw_semaphore - Acquire SWFW semaphore
    1651                 :            :  * @hw: pointer to hardware structure
    1652                 :            :  * @mask: Mask to specify which semaphore to acquire
    1653                 :            :  *
    1654                 :            :  * Acquires the SWFW semaphore through SW_FW_SYNC register for the specified
    1655                 :            :  * function (CSR, PHY0, PHY1, EEPROM, Flash)
    1656                 :            :  **/
    1657                 :          0 : s32 ixgbe_acquire_swfw_semaphore(struct ixgbe_hw *hw, u32 mask)
    1658                 :            : {
    1659         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.acquire_swfw_sync,
    1660                 :            :                                (hw, mask), IXGBE_NOT_IMPLEMENTED);
    1661                 :            : }
    1662                 :            : 
    1663                 :            : /**
    1664                 :            :  * ixgbe_release_swfw_semaphore - Release SWFW semaphore
    1665                 :            :  * @hw: pointer to hardware structure
    1666                 :            :  * @mask: Mask to specify which semaphore to release
    1667                 :            :  *
    1668                 :            :  * Releases the SWFW semaphore through SW_FW_SYNC register for the specified
    1669                 :            :  * function (CSR, PHY0, PHY1, EEPROM, Flash)
    1670                 :            :  **/
    1671                 :          0 : void ixgbe_release_swfw_semaphore(struct ixgbe_hw *hw, u32 mask)
    1672                 :            : {
    1673         [ #  # ]:          0 :         if (hw->mac.ops.release_swfw_sync)
    1674                 :          0 :                 hw->mac.ops.release_swfw_sync(hw, mask);
    1675                 :          0 : }
    1676                 :            : 
    1677                 :            : /**
    1678                 :            :  * ixgbe_init_swfw_semaphore - Clean up SWFW semaphore
    1679                 :            :  * @hw: pointer to hardware structure
    1680                 :            :  *
    1681                 :            :  * Attempts to acquire the SWFW semaphore through SW_FW_SYNC register.
    1682                 :            :  * Regardless of whether is succeeds or not it then release the semaphore.
    1683                 :            :  * This is function is called to recover from catastrophic failures that
    1684                 :            :  * may have left the semaphore locked.
    1685                 :            :  **/
    1686                 :          0 : void ixgbe_init_swfw_semaphore(struct ixgbe_hw *hw)
    1687                 :            : {
    1688         [ #  # ]:          0 :         if (hw->mac.ops.init_swfw_sync)
    1689                 :          0 :                 hw->mac.ops.init_swfw_sync(hw);
    1690                 :          0 : }
    1691                 :            : 
    1692                 :            : 
    1693                 :          0 : void ixgbe_disable_rx(struct ixgbe_hw *hw)
    1694                 :            : {
    1695         [ #  # ]:          0 :         if (hw->mac.ops.disable_rx)
    1696                 :          0 :                 hw->mac.ops.disable_rx(hw);
    1697                 :          0 : }
    1698                 :            : 
    1699                 :          0 : void ixgbe_enable_rx(struct ixgbe_hw *hw)
    1700                 :            : {
    1701         [ #  # ]:          0 :         if (hw->mac.ops.enable_rx)
    1702                 :          0 :                 hw->mac.ops.enable_rx(hw);
    1703                 :          0 : }
    1704                 :            : 
    1705                 :            : /**
    1706                 :            :  * ixgbe_set_rate_select_speed - Set module link speed
    1707                 :            :  * @hw: pointer to hardware structure
    1708                 :            :  * @speed: link speed to set
    1709                 :            :  *
    1710                 :            :  * Set module link speed via the rate select.
    1711                 :            :  */
    1712                 :          0 : void ixgbe_set_rate_select_speed(struct ixgbe_hw *hw, ixgbe_link_speed speed)
    1713                 :            : {
    1714         [ #  # ]:          0 :         if (hw->mac.ops.set_rate_select_speed)
    1715                 :          0 :                 hw->mac.ops.set_rate_select_speed(hw, speed);
    1716                 :          0 : }
    1717                 :            : 
    1718                 :            : /**
    1719                 :            :  * ixgbe_get_fw_version - get FW version
    1720                 :            :  * @hw: pointer to hardware structure
    1721                 :            :  *
    1722                 :            :  * Get the current FW version.
    1723                 :            :  *
    1724                 :            :  * Return: the exit code of the operation or IXGBE_NOT_IMPLEMENTED
    1725                 :            :  * if the function is not implemented.
    1726                 :            :  */
    1727                 :          0 : s32 ixgbe_get_fw_version(struct ixgbe_hw *hw)
    1728                 :            : {
    1729         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_fw_version,
    1730                 :            :                                (hw), IXGBE_NOT_IMPLEMENTED);
    1731                 :            : }
    1732                 :            : 
    1733                 :            : /**
    1734                 :            :  * ixgbe_get_nvm_ver - get NVM version
    1735                 :            :  * @hw: pointer to hardware structure
    1736                 :            :  * @nvm: pointer to NVM info structure
    1737                 :            :  *
    1738                 :            :  * Get the current NVM version.
    1739                 :            :  *
    1740                 :            :  * Return: the exit code of the operation or IXGBE_NOT_IMPLEMENTED
    1741                 :            :  * if the function is not implemented.
    1742                 :            :  */
    1743                 :          0 : s32 ixgbe_get_nvm_ver(struct ixgbe_hw* hw, struct ixgbe_nvm_info *nvm)
    1744                 :            : {
    1745         [ #  # ]:          0 :         return ixgbe_call_func(hw, hw->mac.ops.get_nvm_version,
    1746                 :            :                                (hw, nvm), IXGBE_NOT_IMPLEMENTED);
    1747                 :            : }

Generated by: LCOV version 1.14