1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright(c) 2007 - 2012 Realtek Corporation. */ 3 4 #include "../include/rtw_sreset.h" 5 sreset_init_value(struct adapter * padapter)6void sreset_init_value(struct adapter *padapter) 7 { 8 struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); 9 struct sreset_priv *psrtpriv = &pHalData->srestpriv; 10 11 _rtw_mutex_init(&psrtpriv->silentreset_mutex); 12 psrtpriv->silent_reset_inprogress = false; 13 psrtpriv->wifi_error_status = WIFI_STATUS_SUCCESS; 14 psrtpriv->last_tx_time = 0; 15 psrtpriv->last_tx_complete_time = 0; 16 } sreset_reset_value(struct adapter * padapter)17void sreset_reset_value(struct adapter *padapter) 18 { 19 struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); 20 struct sreset_priv *psrtpriv = &pHalData->srestpriv; 21 22 psrtpriv->silent_reset_inprogress = false; 23 psrtpriv->wifi_error_status = WIFI_STATUS_SUCCESS; 24 psrtpriv->last_tx_time = 0; 25 psrtpriv->last_tx_complete_time = 0; 26 } 27 sreset_get_wifi_status(struct adapter * padapter)28u8 sreset_get_wifi_status(struct adapter *padapter) 29 { 30 struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); 31 struct sreset_priv *psrtpriv = &pHalData->srestpriv; 32 33 u8 status = WIFI_STATUS_SUCCESS; 34 u32 val32 = 0; 35 36 if (psrtpriv->silent_reset_inprogress) 37 return status; 38 val32 = rtw_read32(padapter, REG_TXDMA_STATUS); 39 if (val32 == 0xeaeaeaea) { 40 psrtpriv->wifi_error_status = WIFI_IF_NOT_EXIST; 41 } else if (val32 != 0) { 42 DBG_88E("txdmastatu(%x)\n", val32); 43 psrtpriv->wifi_error_status = WIFI_MAC_TXDMA_ERROR; 44 } 45 46 if (WIFI_STATUS_SUCCESS != psrtpriv->wifi_error_status) { 47 DBG_88E("==>%s error_status(0x%x)\n", __func__, psrtpriv->wifi_error_status); 48 status = (psrtpriv->wifi_error_status & (~(USB_READ_PORT_FAIL | USB_WRITE_PORT_FAIL))); 49 } 50 DBG_88E("==> %s wifi_status(0x%x)\n", __func__, status); 51 52 /* status restore */ 53 psrtpriv->wifi_error_status = WIFI_STATUS_SUCCESS; 54 55 return status; 56 } 57 sreset_set_wifi_error_status(struct adapter * padapter,u32 status)58void sreset_set_wifi_error_status(struct adapter *padapter, u32 status) 59 { 60 struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter); 61 pHalData->srestpriv.wifi_error_status = status; 62 } 63