void sreset_stop_adapter(_adapter *padapter) { struct mlme_priv *pmlmepriv = &(padapter->mlmepriv); struct xmit_priv *pxmitpriv = &padapter->xmitpriv; if (padapter == NULL) return; DBG_871X(FUNC_ADPT_FMT"\n", FUNC_ADPT_ARG(padapter)); if (!rtw_netif_queue_stopped(padapter->pnetdev)) rtw_netif_stop_queue(padapter->pnetdev); rtw_cancel_all_timer(padapter); /* TODO: OS and HCI independent */ #if defined(PLATFORM_LINUX) && defined(CONFIG_USB_HCI) tasklet_kill(&pxmitpriv->xmit_tasklet); #endif if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY)) rtw_scan_abort(padapter); if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING)) _rtw_join_timeout_handler(padapter); }
static u8 _rtw_mi_scan_abort(_adapter *adapter, void *data) { bool bwait = *(bool *)data; if (bwait) rtw_scan_abort(adapter); else rtw_scan_abort_no_wait(adapter); return _TRUE; }
int reset_tsf(PADAPTER Adapter, u8 reset_port ) { u8 reset_cnt_before = 0, reset_cnt_after = 0, loop_cnt = 0; u32 reg_reset_tsf_cnt = (IFACE_PORT0==reset_port) ? REG_FW_RESET_TSF_CNT_0:REG_FW_RESET_TSF_CNT_1; rtw_scan_abort(Adapter->pbuddy_adapter); /* site survey will cause reset_tsf fail */ reset_cnt_after = reset_cnt_before = rtw_read8(Adapter,reg_reset_tsf_cnt); rtl8192d_reset_tsf(Adapter, reset_port); while ((reset_cnt_after == reset_cnt_before ) && (loop_cnt < 10)) { rtw_msleep_os(100); loop_cnt++; reset_cnt_after = rtw_read8(Adapter, reg_reset_tsf_cnt); } return(loop_cnt >= 10) ? _FAIL : _TRUE; }