padapter->HalFunc.Add_RateATid(padapter, bitmap, arg, rssi_level);
 }
 
-/*     Start specifical interface thread               */
-void   rtw_hal_start_thread23a(struct rtw_adapter *padapter)
-{
-       if (padapter->HalFunc.run_thread)
-               padapter->HalFunc.run_thread(padapter);
-}
-/*     Start specifical interface thread               */
-void   rtw_hal_stop_thread23a(struct rtw_adapter *padapter)
-{
-       if (padapter->HalFunc.cancel_thread)
-               padapter->HalFunc.cancel_thread(padapter);
-}
-
 u32    rtw_hal_read_bbreg23a(struct rtw_adapter *padapter, u32 RegAddr, u32 BitMask)
 {
        u32 data = 0;
 
                &rtl8723a_SetBeaconRelatedRegisters;
 
        pHalFunc->Add_RateATid = &rtl8723a_add_rateatid;
-       pHalFunc->run_thread = NULL;
-       pHalFunc->cancel_thread = NULL;
 
        pHalFunc->read_bbreg = &PHY_QueryBBReg;
        pHalFunc->write_bbreg = &PHY_SetBBReg;
 
 
        void (*Add_RateATid)(struct rtw_adapter *padapter, u32 bitmap,
                             u8 arg, u8 rssi_level);
-       void (*run_thread)(struct rtw_adapter *padapter);
-       void (*cancel_thread)(struct rtw_adapter *padapter);
 
        u8 (*interface_ps_func)(struct rtw_adapter *padapter,
                                enum hal_intf_ps_func efunc_id, u8 *val);
 void rtw_hal_update_ra_mask23a(struct sta_info *psta, u8 rssi_level);
 void   rtw_hal_add_ra_tid23a(struct rtw_adapter *padapter, u32 bitmap, u8 arg, u8 rssi_level);
 void   rtw_hal_clone_data(struct rtw_adapter *dst_padapter, struct rtw_adapter *src_padapter);
-void   rtw_hal_start_thread23a(struct rtw_adapter *padapter);
-void   rtw_hal_stop_thread23a(struct rtw_adapter *padapter);
 
 void rtw_hal_bcn_related_reg_setting23a(struct rtw_adapter *padapter);
 
 
 u8 rtw_free_drv_sw23a(struct rtw_adapter *padapter);
 u8 rtw_reset_drv_sw23a(struct rtw_adapter *padapter);
 
-u32 rtw_start_drv_threads23a(struct rtw_adapter *padapter);
-void rtw_stop_drv_threads23a (struct rtw_adapter *padapter);
 void rtw_cancel_all_timer23a(struct rtw_adapter *padapter);
 
 int rtw_init_netdev23a_name23a(struct net_device *pnetdev, const char *ifname);
 
        return pnetdev;
 }
 
-u32 rtw_start_drv_threads23a(struct rtw_adapter *padapter)
-{
-       u32 _status = _SUCCESS;
-
-       RT_TRACE(_module_os_intfs_c_, _drv_info_,
-                ("+rtw_start_drv_threads23a\n"));
-
-       rtw_hal_start_thread23a(padapter);
-       return _status;
-}
-
-void rtw_stop_drv_threads23a(struct rtw_adapter *padapter)
-{
-       RT_TRACE(_module_os_intfs_c_, _drv_info_, ("+rtw_stop_drv_threads23a\n"));
-
-       flush_workqueue(padapter->cmdpriv.wq);
-
-       rtw_hal_stop_thread23a(padapter);
-}
-
 static u8 rtw_init_default_value(struct rtw_adapter *padapter)
 {
        struct registry_priv *pregistrypriv = &padapter->registrypriv;
                DBG_8723A("MAC Address = "MAC_FMT"\n",
                          MAC_ARG(pnetdev->dev_addr));
 
-               status = rtw_start_drv_threads23a(padapter);
-               if (status == _FAIL) {
-                       DBG_8723A("Initialize driver software resource Failed!\n");
-                       goto netdev_open23a_error;
-               }
-
                if (init_hw_mlme_ext23a(padapter) == _FAIL) {
                        DBG_8723A("can't init mlme_ext_priv\n");
                        goto netdev_open23a_error;
 
 
                /* s4. */
                if (!padapter->pwrctrlpriv.bInternalAutoSuspend)
-                       rtw_stop_drv_threads23a(padapter);
+                       flush_workqueue(padapter->cmdpriv.wq);
 
                /* s5. */
                if (!padapter->bSurpriseRemoved) {