spin_unlock_bh(&scan_queue->lock);
}
-static void rtw_reset_rx_info(struct debug_priv *pdbgpriv)
-{
- pdbgpriv->dbg_rx_ampdu_drop_count = 0;
- pdbgpriv->dbg_rx_ampdu_forced_indicate_count = 0;
- pdbgpriv->dbg_rx_ampdu_loss_count = 0;
- pdbgpriv->dbg_rx_dup_mgt_frame_drop_count = 0;
- pdbgpriv->dbg_rx_ampdu_window_shift_cnt = 0;
-}
-
static void find_network(struct adapter *adapter)
{
struct wlan_network *pwlan = NULL;
{
struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
struct wlan_network *tgt_network = &pmlmepriv->cur_network;
- struct dvobj_priv *psdpriv = adapter->dvobj;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
if (check_fwstate(pmlmepriv, WIFI_STATION_STATE | WIFI_AP_STATE)) {
struct sta_info *psta;
if (lock_scanned_queue)
adapter->securitypriv.key_mask = 0;
-
- rtw_reset_rx_info(pdbgpriv);
}
/* rtw_indicate_connect: the caller has to lock pmlmepriv->lock */
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
u8 *pframe = precv_frame->u.hdr.rx_data;
struct sta_info *psta = rtw_get_stainfo(&padapter->stapriv, GetAddr2Ptr(pframe));
- struct dvobj_priv *psdpriv = padapter->dvobj;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
if (GetFrameType(pframe) != WIFI_MGT_TYPE)
return;
if (GetRetry(pframe)) {
if (precv_frame->u.hdr.attrib.seq_num == psta->RxMgmtFrameSeqNum) {
/* drop the duplicate management frame */
- pdbgpriv->dbg_rx_dup_mgt_frame_drop_count++;
return;
}
}
void rtw_ps_processor(struct adapter *padapter)
{
struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
- struct dvobj_priv *psdpriv = padapter->dvobj;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
u32 ps_deny = 0;
mutex_lock(&adapter_to_pwrctl(padapter)->lock);
if (ps_deny != 0)
goto exit;
- if (pwrpriv->bInSuspend) {/* system suspend or autosuspend */
- pdbgpriv->dbg_ps_insuspend_cnt++;
+ if (pwrpriv->bInSuspend) /* system suspend or autosuspend */
return;
- }
pwrpriv->ps_processing = true;
static int check_indicate_seq(struct recv_reorder_ctrl *preorder_ctrl, u16 seq_num)
{
- struct adapter *padapter = preorder_ctrl->padapter;
- struct dvobj_priv *psdpriv = padapter->dvobj;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
u8 wsize = preorder_ctrl->wsize_b;
u16 wend = (preorder_ctrl->indicate_seq + wsize - 1) % 4096u;
preorder_ctrl->indicate_seq = seq_num + 1 - wsize;
else
preorder_ctrl->indicate_seq = 0xFFF - (wsize - (seq_num + 1)) + 1;
- pdbgpriv->dbg_rx_ampdu_window_shift_cnt++;
}
return true;
}
-static void recv_indicatepkts_pkt_loss_cnt(struct debug_priv *pdbgpriv, u64 prev_seq, u64 current_seq)
-{
- if (current_seq < prev_seq)
- pdbgpriv->dbg_rx_ampdu_loss_count += (4096 + current_seq - prev_seq);
- else
- pdbgpriv->dbg_rx_ampdu_loss_count += (current_seq - prev_seq);
-
-}
-
static int rtw_recv_indicatepkt(struct adapter *padapter, union recv_frame *precv_frame)
{
struct recv_priv *precvpriv;
int bPktInBuf = false;
struct recv_priv *precvpriv = &padapter->recvpriv;
struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
- struct dvobj_priv *psdpriv = padapter->dvobj;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
/* spin_lock_irqsave(&ppending_recvframe_queue->lock, irql); */
/* spin_lock(&ppending_recvframe_queue->lock); */
/* Handling some condition for forced indicate case. */
if (bforced == true) {
- pdbgpriv->dbg_rx_ampdu_forced_indicate_count++;
if (list_empty(phead)) {
/* spin_unlock_irqrestore(&ppending_recvframe_queue->lock, irql); */
/* spin_unlock(&ppending_recvframe_queue->lock); */
prframe = (union recv_frame *)plist;
pattrib = &prframe->u.hdr.attrib;
- recv_indicatepkts_pkt_loss_cnt(pdbgpriv, preorder_ctrl->indicate_seq, pattrib->seq_num);
preorder_ctrl->indicate_seq = pattrib->seq_num;
}
struct rx_pkt_attrib *pattrib = &prframe->u.hdr.attrib;
struct recv_reorder_ctrl *preorder_ctrl = prframe->u.hdr.preorder_ctrl;
struct __queue *ppending_recvframe_queue = &preorder_ctrl->pending_recvframe_queue;
- struct dvobj_priv *psdpriv = padapter->dvobj;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
if (!pattrib->amsdu) {
/* s1. */
spin_lock_bh(&ppending_recvframe_queue->lock);
/* s2. check if winstart_b(indicate_seq) needs to been updated */
- if (!check_indicate_seq(preorder_ctrl, pattrib->seq_num)) {
- pdbgpriv->dbg_rx_ampdu_drop_count++;
+ if (!check_indicate_seq(preorder_ctrl, pattrib->seq_num))
goto _err_exit;
- }
-
/* s3. Insert all packet into Reorder Queue to maintain its ordering. */
if (!enqueue_reorder_recvframe(preorder_ctrl, prframe)) {
void rtw_hal_check_rxfifo_full(struct adapter *adapter)
{
- struct dvobj_priv *psdpriv = adapter->dvobj;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
- int save_cnt = false;
-
/* switch counter to RX fifo */
rtw_write8(adapter, REG_RXERR_RPT+3, rtw_read8(adapter, REG_RXERR_RPT+3)|0xf0);
- save_cnt = true;
- /* todo: other chips */
-
- if (save_cnt) {
- /* rtw_write8(adapter, REG_RXERR_RPT+3, rtw_read8(adapter, REG_RXERR_RPT+3)|0xa0); */
- pdbgpriv->dbg_rx_fifo_last_overflow = pdbgpriv->dbg_rx_fifo_curr_overflow;
- pdbgpriv->dbg_rx_fifo_curr_overflow = rtw_read16(adapter, REG_RXERR_RPT);
- pdbgpriv->dbg_rx_fifo_diff_overflow = pdbgpriv->dbg_rx_fifo_curr_overflow-pdbgpriv->dbg_rx_fifo_last_overflow;
- }
}
static u32 Array_kfreemap[] = {
const struct firmware *fw;
struct device *device = dvobj_to_dev(padapter->dvobj);
u8 *fwfilepath;
- struct dvobj_priv *psdpriv = padapter->dvobj;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
u8 tmp_ps;
pFirmware = kzalloc(sizeof(struct rt_firmware), GFP_KERNEL);
/* 2. read power_state = 0xA0[1:0] */
tmp_ps = rtw_read8(padapter, 0xa0);
tmp_ps &= 0x03;
- if (tmp_ps != 0x01)
- pdbgpriv->dbg_downloadfw_pwr_state_cnt++;
fwfilepath = "rtlwifi/rtl8723bs_nic.bin";
u32 rtl8723bs_hal_deinit(struct adapter *padapter)
{
- struct dvobj_priv *psdpriv = padapter->dvobj;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
-
if (padapter->hw_init_completed) {
if (adapter_to_pwrctl(padapter)->bips_processing) {
if (padapter->netif_up) {
adapter_to_pwrctl(padapter)->pre_ips_type = 0;
} else {
- pdbgpriv->dbg_carddisable_cnt++;
CardDisableRTL8723BSdio(padapter);
adapter_to_pwrctl(padapter)->pre_ips_type = 1;
}
} else {
- pdbgpriv->dbg_carddisable_cnt++;
CardDisableRTL8723BSdio(padapter);
}
- } else
- pdbgpriv->dbg_deinit_fail_cnt++;
+ }
return _SUCCESS;
}
#define GET_IFACE_NUMS(padapter) (((struct adapter *)padapter)->dvobj->iface_nums)
#define GET_ADAPTER(padapter, iface_id) (((struct adapter *)padapter)->dvobj->padapters[iface_id])
-struct debug_priv {
- u32 dbg_sdio_free_irq_error_cnt;
- u32 dbg_sdio_alloc_irq_error_cnt;
- u32 dbg_sdio_free_irq_cnt;
- u32 dbg_sdio_alloc_irq_cnt;
- u32 dbg_sdio_deinit_error_cnt;
- u32 dbg_sdio_init_error_cnt;
- u32 dbg_suspend_error_cnt;
- u32 dbg_suspend_cnt;
- u32 dbg_resume_cnt;
- u32 dbg_resume_error_cnt;
- u32 dbg_deinit_fail_cnt;
- u32 dbg_carddisable_cnt;
- u32 dbg_carddisable_error_cnt;
- u32 dbg_ps_insuspend_cnt;
- u32 dbg_dev_unload_inIPS_cnt;
- u32 dbg_wow_leave_ps_fail_cnt;
- u32 dbg_scan_pwr_state_cnt;
- u32 dbg_downloadfw_pwr_state_cnt;
- u32 dbg_fw_read_ps_state_fail_cnt;
- u32 dbg_leave_ips_fail_cnt;
- u32 dbg_leave_lps_fail_cnt;
- u32 dbg_h2c_leave32k_fail_cnt;
- u32 dbg_diswow_dload_fw_fail_cnt;
- u32 dbg_enwow_dload_fw_fail_cnt;
- u32 dbg_ips_drvopen_fail_cnt;
- u32 dbg_poll_fail_cnt;
- u32 dbg_rpwm_toggle_cnt;
- u32 dbg_rpwm_timeout_fail_cnt;
- u64 dbg_rx_fifo_last_overflow;
- u64 dbg_rx_fifo_curr_overflow;
- u64 dbg_rx_fifo_diff_overflow;
- u64 dbg_rx_ampdu_drop_count;
- u64 dbg_rx_ampdu_forced_indicate_count;
- u64 dbg_rx_ampdu_loss_count;
- u64 dbg_rx_dup_mgt_frame_drop_count;
- u64 dbg_rx_ampdu_window_shift_cnt;
-};
-
struct rtw_traffic_statistics {
/* tx statistics */
u64 tx_bytes;
s32 processing_dev_remove;
- struct debug_priv drv_dbg;
-
/* for local/global synchronization */
/* */
spinlock_t lock;
void rtw_dev_unload(struct adapter *padapter)
{
struct pwrctrl_priv *pwrctl = adapter_to_pwrctl(padapter);
- struct dvobj_priv *pobjpriv = padapter->dvobj;
- struct debug_priv *pdbgpriv = &pobjpriv->drv_dbg;
struct cmd_priv *pcmdpriv = &padapter->cmdpriv;
u8 cnt = 0;
/* check HW status and SW state */
netdev_dbg(padapter->pnetdev,
"%s: driver in IPS-FWLPS\n", __func__);
- pdbgpriv->dbg_dev_unload_inIPS_cnt++;
LeaveAllPowerSaveMode(padapter);
} else {
netdev_dbg(padapter->pnetdev,
void rtw_suspend_common(struct adapter *padapter)
{
struct dvobj_priv *psdpriv = padapter->dvobj;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(psdpriv);
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
unsigned long start_time = jiffies;
netdev_dbg(padapter->pnetdev, " suspend start\n");
- pdbgpriv->dbg_suspend_cnt++;
pwrpriv->bInSuspend = true;
while (pwrpriv->bips_processing)
msleep(1);
- if ((!padapter->bup) || (padapter->bDriverStopped) || (padapter->bSurpriseRemoved)) {
- pdbgpriv->dbg_suspend_error_cnt++;
+ if ((!padapter->bup) || (padapter->bDriverStopped) || (padapter->bSurpriseRemoved))
return;
- }
+
rtw_ps_deny(padapter, PS_DENY_SUSPEND);
rtw_cancel_all_timer(padapter);
struct net_device *pnetdev;
struct pwrctrl_priv *pwrpriv;
struct mlme_priv *pmlmepriv;
- struct dvobj_priv *psdpriv;
- struct debug_priv *pdbgpriv;
int ret = _SUCCESS;
pnetdev = padapter->pnetdev;
pwrpriv = adapter_to_pwrctl(padapter);
pmlmepriv = &padapter->mlmepriv;
- psdpriv = padapter->dvobj;
- pdbgpriv = &psdpriv->drv_dbg;
/* interface init */
/* if (sdio_init(adapter_to_dvobj(padapter)) != _SUCCESS) */
if ((padapter->intf_init) && (padapter->intf_init(adapter_to_dvobj(padapter)) != _SUCCESS)) {
if (pm_netdev_open(pnetdev, true) != 0) {
ret = -1;
- pdbgpriv->dbg_resume_error_cnt++;
goto exit;
}
sdio_claim_host(func);
err = sdio_claim_irq(func, &sd_sync_int_hdl);
- if (err) {
- dvobj->drv_dbg.dbg_sdio_alloc_irq_error_cnt++;
+ if (err)
netdev_crit(dvobj->if1->pnetdev, "%s: sdio_claim_irq FAIL(%d)!\n", __func__, err);
- } else {
- dvobj->drv_dbg.dbg_sdio_alloc_irq_cnt++;
+ else
dvobj->irq_alloc = 1;
- }
sdio_release_host(func);
sdio_claim_host(func);
err = sdio_release_irq(func);
if (err) {
- dvobj->drv_dbg.dbg_sdio_free_irq_error_cnt++;
netdev_err(dvobj->if1->pnetdev,
"%s: sdio_release_irq FAIL(%d)!\n",
__func__, err);
- } else
- dvobj->drv_dbg.dbg_sdio_free_irq_cnt++;
+ }
sdio_release_host(func);
}
dvobj->irq_alloc = 0;
sdio_claim_host(func);
err = sdio_enable_func(func);
- if (err) {
- dvobj->drv_dbg.dbg_sdio_init_error_cnt++;
+ if (err)
goto release;
- }
err = sdio_set_block_size(func, 512);
- if (err) {
- dvobj->drv_dbg.dbg_sdio_init_error_cnt++;
+ if (err)
goto release;
- }
+
psdio_data->block_transfer_len = 512;
psdio_data->tx_block_mode = 1;
psdio_data->rx_block_mode = 1;
static void sdio_deinit(struct dvobj_priv *dvobj)
{
struct sdio_func *func;
- int err;
func = dvobj->intf_data.func;
if (func) {
sdio_claim_host(func);
- err = sdio_disable_func(func);
- if (err)
- dvobj->drv_dbg.dbg_sdio_deinit_error_cnt++;
+ sdio_disable_func(func);
if (dvobj->irq_alloc) {
- err = sdio_release_irq(func);
- if (err)
- dvobj->drv_dbg.dbg_sdio_free_irq_error_cnt++;
- else
- dvobj->drv_dbg.dbg_sdio_free_irq_cnt++;
+ sdio_release_irq(func);
}
sdio_release_host(func);
struct dvobj_priv *psdpriv = sdio_get_drvdata(func);
struct pwrctrl_priv *pwrpriv = dvobj_to_pwrctl(psdpriv);
struct adapter *padapter = psdpriv->if1;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
if (padapter->bDriverStopped)
return 0;
- if (pwrpriv->bInSuspend) {
- pdbgpriv->dbg_suspend_error_cnt++;
+ if (pwrpriv->bInSuspend)
return 0;
- }
rtw_suspend_common(padapter);
static int rtw_resume_process(struct adapter *padapter)
{
struct pwrctrl_priv *pwrpriv = adapter_to_pwrctl(padapter);
- struct dvobj_priv *psdpriv = padapter->dvobj;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
- if (!pwrpriv->bInSuspend) {
- pdbgpriv->dbg_resume_error_cnt++;
+ if (!pwrpriv->bInSuspend)
return -1;
- }
return rtw_resume_common(padapter);
}
struct adapter *padapter = psdpriv->if1;
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
int ret = 0;
- struct debug_priv *pdbgpriv = &psdpriv->drv_dbg;
-
- pdbgpriv->dbg_resume_cnt++;
ret = rtw_resume_process(padapter);