blob: 13a5bf4730abd9a5ddca7805ead734393274d4bc [file] [log] [blame]
Larry Finger1b509ca2013-08-21 22:33:48 -05001/******************************************************************************
2 *
3 * Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2 of the GNU General Public License as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
Larry Finger1b509ca2013-08-21 22:33:48 -050014 ******************************************************************************/
15
16#include <rtw_sreset.h>
navin patidare73fd152014-06-11 22:51:40 +053017#include <usb_ops_linux.h>
Larry Finger1b509ca2013-08-21 22:33:48 -050018
19void sreset_init_value(struct adapter *padapter)
20{
21 struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter);
22 struct sreset_priv *psrtpriv = &pHalData->srestpriv;
23
Larry Finger1b509ca2013-08-21 22:33:48 -050024 psrtpriv->Wifi_Error_Status = WIFI_STATUS_SUCCESS;
Larry Finger1b509ca2013-08-21 22:33:48 -050025}
Larry Finger1b509ca2013-08-21 22:33:48 -050026
27u8 sreset_get_wifi_status(struct adapter *padapter)
28{
29 struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter);
30 struct sreset_priv *psrtpriv = &pHalData->srestpriv;
31
32 u8 status = WIFI_STATUS_SUCCESS;
33 u32 val32 = 0;
34
navin patidar99ecfb02014-06-11 22:51:34 +053035 val32 = usb_read32(padapter, REG_TXDMA_STATUS);
Larry Finger1b509ca2013-08-21 22:33:48 -050036 if (val32 == 0xeaeaeaea) {
37 psrtpriv->Wifi_Error_Status = WIFI_IF_NOT_EXIST;
38 } else if (val32 != 0) {
39 DBG_88E("txdmastatu(%x)\n", val32);
40 psrtpriv->Wifi_Error_Status = WIFI_MAC_TXDMA_ERROR;
41 }
42
43 if (WIFI_STATUS_SUCCESS != psrtpriv->Wifi_Error_Status) {
44 DBG_88E("==>%s error_status(0x%x)\n", __func__, psrtpriv->Wifi_Error_Status);
Haneen Mohammedadb3d772015-03-13 19:55:55 +030045 status = psrtpriv->Wifi_Error_Status & (~(USB_READ_PORT_FAIL|USB_WRITE_PORT_FAIL));
Larry Finger1b509ca2013-08-21 22:33:48 -050046 }
47 DBG_88E("==> %s wifi_status(0x%x)\n", __func__, status);
48
49 /* status restore */
50 psrtpriv->Wifi_Error_Status = WIFI_STATUS_SUCCESS;
51
52 return status;
53}
54
55void sreset_set_wifi_error_status(struct adapter *padapter, u32 status)
56{
57 struct hal_data_8188e *pHalData = GET_HAL_DATA(padapter);
58 pHalData->srestpriv.Wifi_Error_Status = status;
59}