diff --git a/include/osi_core.h b/include/osi_core.h index 9bac52c..50c28fa 100644 --- a/include/osi_core.h +++ b/include/osi_core.h @@ -347,6 +347,8 @@ typedef my_lint_64 nvel64_t; #define OSI_FRP_MATCH_VLAN 9U /** @} */ +#define XPCS_WRITE_FAIL_CODE -9 + #ifdef HSI_SUPPORT /** * @addtogroup hsi_err_code_idx @@ -362,6 +364,7 @@ typedef my_lint_64 nvel64_t; #define TX_FRAME_ERR_IDX 3U #define RX_CSUM_ERR_IDX 4U #define AUTONEG_ERR_IDX 5U +#define XPCS_WRITE_FAIL_IDX 6U #define MACSEC_RX_CRC_ERR_IDX 0U #define MACSEC_TX_CRC_ERR_IDX 1U @@ -392,7 +395,7 @@ extern nveu16_t hsi_reporter_id[]; * @brief Maximum number of different mac error code * HSI_SW_ERR_CODE + Two (Corrected and Uncorrected error code) */ -#define HSI_MAX_MAC_ERROR_CODE 6U +#define HSI_MAX_MAC_ERROR_CODE 7U /** * @brief Maximum number of different macsec error code @@ -413,6 +416,7 @@ extern nveu16_t hsi_reporter_id[]; #define OSI_MACSEC_TX_CRC_ERR 0x1006U #define OSI_MACSEC_RX_ICV_ERR 0x1007U #define OSI_MACSEC_REG_VIOL_ERR 0x1008U +#define OSI_XPCS_WRITE_FAIL_ERR 0x1009U /** @} */ #endif diff --git a/osi/core/core_common.c b/osi/core/core_common.c index 7175d5d..747edfa 100644 --- a/osi/core/core_common.c +++ b/osi/core/core_common.c @@ -183,8 +183,8 @@ nve32_t hw_set_speed(struct osi_core_priv_data *const osi_core, const nve32_t sp osi_writela(osi_core, value, ((nveu8_t *)osi_core->base + mac_mcr[osi_core->mac])); if (osi_core->mac == OSI_MAC_HW_MGBE) { - if (xpcs_init(osi_core) < 0) { - ret = -1; + ret = xpcs_init(osi_core); + if (ret < 0) { goto fail; } diff --git a/osi/core/xpcs.h b/osi/core/xpcs.h index 9690e93..0509668 100644 --- a/osi/core/xpcs.h +++ b/osi/core/xpcs.h @@ -171,7 +171,7 @@ static inline void xpcs_write(void *xpcs_base, nveu32_t reg_addr, * @param[in] val: write value to register address * * @retval 0 on success - * @retval -1 on failure. + * @retval XPCS_WRITE_FAIL_CODE on failure * */ static inline nve32_t xpcs_write_safety(struct osi_core_priv_data *osi_core, @@ -193,6 +193,6 @@ static inline nve32_t xpcs_write_safety(struct osi_core_priv_data *osi_core, OSI_CORE_ERR(osi_core->osd, OSI_LOG_ARG_HW_FAIL, "xpcs_write_safety failed", reg_addr); - return -1; + return XPCS_WRITE_FAIL_CODE; } #endif