Print this page
9724 qede needs updates for newer GCC

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/qede/579xx/drivers/ecore/ecore_mcp.c
          +++ new/usr/src/uts/common/io/qede/579xx/drivers/ecore/ecore_mcp.c
↓ open down ↓ 25 lines elided ↑ open up ↑
  26   26  
  27   27  * You may not use this file except in compliance with the License.
  28   28  
  29   29  * You can obtain a copy of the License at available 
  30   30  * at http://opensource.org/licenses/CDDL-1.0
  31   31  
  32   32  * See the License for the specific language governing permissions and 
  33   33  * limitations under the License.
  34   34  */
  35   35  
       36 +/*
       37 + * Copyright 2018 Joyent, Inc.
       38 + */
       39 +
  36   40  #include "bcm_osal.h"
  37   41  #include "ecore.h"
  38   42  #include "ecore_status.h"
  39   43  #include "nvm_map.h"
  40   44  #include "nvm_cfg.h"
  41   45  #include "ecore_mcp.h"
  42   46  #include "mcp_public.h"
  43   47  #include "reg_addr.h"
  44   48  #include "ecore_hw.h"
  45   49  #include "ecore_init_fw_funcs.h"
↓ open down ↓ 309 lines elided ↑ open up ↑
 355  359                    cpu_mode, cpu_state, cpu_pc_0, cpu_pc_1, cpu_pc_2);
 356  360  }
 357  361  
 358  362  static enum _ecore_status_t ecore_do_mcp_cmd(struct ecore_hwfn *p_hwfn,
 359  363                                               struct ecore_ptt *p_ptt,
 360  364                                               u32 cmd, u32 param,
 361  365                                               u32 *o_mcp_resp, u32 *o_mcp_param)
 362  366  {
 363  367          u32 delay = CHIP_MCP_RESP_ITER_US;
 364  368          u32 max_retries = ECORE_DRV_MB_MAX_RETRIES;
 365      -        u32 seq, cnt = 1, actual_mb_seq;
      369 +        u32 seq, cnt = 1, actual_mb_seq __unused;
 366  370          enum _ecore_status_t rc = ECORE_SUCCESS;
 367  371  
 368  372  #ifndef ASIC_ONLY
 369  373          if (CHIP_REV_IS_EMUL(p_hwfn->p_dev))
 370  374                  delay = EMUL_MCP_RESP_ITER_US;
 371  375          /* There is a built-in delay of 100usec in each MFW response read */
 372  376          if (CHIP_REV_IS_FPGA(p_hwfn->p_dev))
 373  377                  max_retries /= 10;
 374  378  #endif
 375  379  
↓ open down ↓ 1050 lines elided ↑ open up ↑
1426 1430          proc_kill_cnt = ecore_get_process_kill_counter(p_hwfn, p_ptt);
1427 1431          DP_NOTICE(p_hwfn, false, "Process kill counter: %d\n", proc_kill_cnt);
1428 1432  
1429 1433          OSAL_SCHEDULE_RECOVERY_HANDLER(p_hwfn);
1430 1434  }
1431 1435  
1432 1436  static void ecore_mcp_send_protocol_stats(struct ecore_hwfn *p_hwfn,
1433 1437                                            struct ecore_ptt *p_ptt,
1434 1438                                            enum MFW_DRV_MSG_TYPE type)
1435 1439  {
1436      -        enum ecore_mcp_protocol_type stats_type;
     1440 +        enum ecore_mcp_protocol_type stats_type __unused;
1437 1441          union ecore_mcp_protocol_stats stats;
1438 1442          struct ecore_mcp_mb_params mb_params;
1439 1443          u32 hsi_param;
1440 1444          enum _ecore_status_t rc;
1441 1445  
1442 1446          switch (type) {
1443 1447          case MFW_DRV_MSG_GET_LAN_STATS:
1444 1448                  stats_type = ECORE_MCP_LAN_STATS;
1445 1449                  hsi_param = DRV_MSG_CODE_STATS_TYPE_LAN;
1446 1450                  break;
↓ open down ↓ 1674 lines elided ↑ open up ↑
3121 3125  
3122 3126          return rc;
3123 3127  }
3124 3128  
3125 3129  enum _ecore_status_t ecore_mcp_phy_sfp_read(struct ecore_hwfn *p_hwfn,
3126 3130                                              struct ecore_ptt *p_ptt,
3127 3131                                              u32 port, u32 addr, u32 offset,
3128 3132                                              u32 len, u8 *p_buf)
3129 3133  {
3130 3134          struct ecore_mcp_nvm_params params;
3131      -        enum _ecore_status_t rc;
3132 3135          u32 bytes_left, bytes_to_copy, buf_size;
3133 3136  
3134 3137          OSAL_MEMSET(&params, 0, sizeof(struct ecore_mcp_nvm_params));
3135 3138          params.nvm_common.offset =
3136 3139                  (port << DRV_MB_PARAM_TRANSCEIVER_PORT_SHIFT) |
3137 3140                  (addr << DRV_MB_PARAM_TRANSCEIVER_I2C_ADDRESS_SHIFT);
3138 3141          addr = offset;
3139 3142          offset = 0;
3140 3143          bytes_left = len;
3141 3144          params.type = ECORE_MCP_NVM_RD;
↓ open down ↓ 4 lines elided ↑ open up ↑
3146 3149                                             MAX_I2C_TRANSACTION_SIZE);
3147 3150                  params.nvm_rd.buf = (u32 *)(p_buf + offset);
3148 3151                  params.nvm_common.offset &=
3149 3152                          (DRV_MB_PARAM_TRANSCEIVER_I2C_ADDRESS_MASK |
3150 3153                           DRV_MB_PARAM_TRANSCEIVER_PORT_MASK);
3151 3154                  params.nvm_common.offset |=
3152 3155                          ((addr + offset) <<
3153 3156                           DRV_MB_PARAM_TRANSCEIVER_OFFSET_SHIFT);
3154 3157                  params.nvm_common.offset |=
3155 3158                          (bytes_to_copy << DRV_MB_PARAM_TRANSCEIVER_SIZE_SHIFT);
3156      -                rc = ecore_mcp_nvm_command(p_hwfn, p_ptt, &params);
     3159 +                (void) ecore_mcp_nvm_command(p_hwfn, p_ptt, &params);
3157 3160                  if ((params.nvm_common.resp & FW_MSG_CODE_MASK) ==
3158 3161                      FW_MSG_CODE_TRANSCEIVER_NOT_PRESENT) {
3159 3162                          return ECORE_NODEV;
3160 3163                  } else if ((params.nvm_common.resp & FW_MSG_CODE_MASK) !=
3161 3164                             FW_MSG_CODE_TRANSCEIVER_DIAG_OK)
3162 3165                          return ECORE_UNKNOWN_ERROR;
3163 3166  
3164 3167                  offset += *params.nvm_rd.buf_size;
3165 3168                  bytes_left -= *params.nvm_rd.buf_size;
3166 3169          }
3167 3170  
3168 3171          return ECORE_SUCCESS;
3169 3172  }
3170 3173  
3171 3174  enum _ecore_status_t ecore_mcp_phy_sfp_write(struct ecore_hwfn *p_hwfn,
3172 3175                                               struct ecore_ptt *p_ptt,
3173 3176                                               u32 port, u32 addr, u32 offset,
3174 3177                                               u32 len, u8 *p_buf)
3175 3178  {
3176 3179          struct ecore_mcp_nvm_params params;
3177      -        enum _ecore_status_t rc;
3178 3180          u32 buf_idx, buf_size;
3179 3181  
3180 3182          OSAL_MEMSET(&params, 0, sizeof(struct ecore_mcp_nvm_params));
3181 3183          params.nvm_common.offset =
3182 3184                  (port << DRV_MB_PARAM_TRANSCEIVER_PORT_SHIFT) |
3183 3185                  (addr << DRV_MB_PARAM_TRANSCEIVER_I2C_ADDRESS_SHIFT);
3184 3186          params.type = ECORE_MCP_NVM_WR;
3185 3187          params.nvm_common.cmd = DRV_MSG_CODE_TRANSCEIVER_WRITE;
3186 3188          buf_idx = 0;
3187 3189          while (buf_idx < len) {
↓ open down ↓ 2 lines elided ↑ open up ↑
3190 3192                  params.nvm_common.offset &=
3191 3193                          (DRV_MB_PARAM_TRANSCEIVER_I2C_ADDRESS_MASK |
3192 3194                           DRV_MB_PARAM_TRANSCEIVER_PORT_MASK);
3193 3195                  params.nvm_common.offset |=
3194 3196                          ((offset + buf_idx) <<
3195 3197                           DRV_MB_PARAM_TRANSCEIVER_OFFSET_SHIFT);
3196 3198                  params.nvm_common.offset |=
3197 3199                          (buf_size << DRV_MB_PARAM_TRANSCEIVER_SIZE_SHIFT);
3198 3200                  params.nvm_wr.buf_size = buf_size;
3199 3201                  params.nvm_wr.buf = (u32 *)&p_buf[buf_idx];
3200      -                rc = ecore_mcp_nvm_command(p_hwfn, p_ptt, &params);
     3202 +                (void) ecore_mcp_nvm_command(p_hwfn, p_ptt, &params);
3201 3203                  if ((params.nvm_common.resp & FW_MSG_CODE_MASK) ==
3202 3204                      FW_MSG_CODE_TRANSCEIVER_NOT_PRESENT) {
3203 3205                          return ECORE_NODEV;
3204 3206                  } else if ((params.nvm_common.resp & FW_MSG_CODE_MASK) !=
3205 3207                             FW_MSG_CODE_TRANSCEIVER_DIAG_OK)
3206 3208                          return ECORE_UNKNOWN_ERROR;
3207 3209  
3208 3210                  buf_idx += buf_size;
3209 3211          }
3210 3212  
↓ open down ↓ 887 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX