mirror of
https://github.com/lwfinger/rtl8188eu.git
synced 2025-05-08 14:33:05 +00:00
rtl8188eu: Remove trailing white space from all source files
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
parent
77e736c66a
commit
f5f3863bc5
205 changed files with 55371 additions and 55581 deletions
10359
os_dep/ioctl_cfg80211.c
10359
os_dep/ioctl_cfg80211.c
File diff suppressed because it is too large
Load diff
3087
os_dep/ioctl_linux.c
3087
os_dep/ioctl_linux.c
File diff suppressed because it is too large
Load diff
|
@ -1,7 +1,7 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation.
|
||||
|
@ -95,19 +95,19 @@ void _dynamic_check_timer_handlder (void *FunctionContext)
|
|||
{
|
||||
_adapter *adapter = (_adapter *)FunctionContext;
|
||||
|
||||
#if (MP_DRIVER == 1)
|
||||
#if (MP_DRIVER == 1)
|
||||
if (adapter->registrypriv.mp_mode == 1)
|
||||
return;
|
||||
#endif
|
||||
rtw_dynamic_check_timer_handlder(adapter);
|
||||
|
||||
|
||||
_set_timer(&adapter->mlmepriv.dynamic_chk_timer, 2000);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SET_SCAN_DENY_TIMER
|
||||
void _rtw_set_scan_deny_timer_hdl(void *FunctionContext)
|
||||
{
|
||||
_adapter *adapter = (_adapter *)FunctionContext;
|
||||
_adapter *adapter = (_adapter *)FunctionContext;
|
||||
rtw_set_scan_deny_timer_hdl(adapter);
|
||||
}
|
||||
#endif
|
||||
|
@ -134,13 +134,13 @@ void rtw_init_mlme_timer(_adapter *padapter)
|
|||
#if defined(CONFIG_CHECK_BT_HANG) && defined(CONFIG_BT_COEXIST)
|
||||
if (padapter->HalFunc.hal_init_checkbthang_workqueue)
|
||||
padapter->HalFunc.hal_init_checkbthang_workqueue(padapter);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void rtw_os_indicate_connect(_adapter *adapter)
|
||||
{
|
||||
|
||||
_func_enter_;
|
||||
_func_enter_;
|
||||
|
||||
#ifdef CONFIG_IOCTL_CFG80211
|
||||
rtw_cfg80211_indicate_connect(adapter);
|
||||
|
@ -156,7 +156,7 @@ _func_enter_;
|
|||
_set_workitem(&adapter->mlmepriv.Linkup_workitem);
|
||||
#endif
|
||||
|
||||
_func_exit_;
|
||||
_func_exit_;
|
||||
|
||||
}
|
||||
|
||||
|
@ -177,7 +177,7 @@ void rtw_reset_securitypriv( _adapter *adapter )
|
|||
u32 backupTKIPcountermeasure_time = 0;
|
||||
|
||||
if (adapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X)//802.1x
|
||||
{
|
||||
{
|
||||
// Added by Albert 2009/02/18
|
||||
// We have to backup the PMK information for WiFi PMK Caching test item.
|
||||
//
|
||||
|
@ -189,7 +189,7 @@ void rtw_reset_securitypriv( _adapter *adapter )
|
|||
_rtw_memcpy( &backupPMKIDList[ 0 ], &adapter->securitypriv.PMKIDList[ 0 ], sizeof( RT_PMKID_LIST ) * NUM_PMKID_CACHE );
|
||||
backupPMKIDIndex = adapter->securitypriv.PMKIDIndex;
|
||||
backupTKIPCountermeasure = adapter->securitypriv.btkip_countermeasure;
|
||||
backupTKIPcountermeasure_time = adapter->securitypriv.btkip_countermeasure_time;
|
||||
backupTKIPcountermeasure_time = adapter->securitypriv.btkip_countermeasure_time;
|
||||
|
||||
_rtw_memset((unsigned char *)&adapter->securitypriv, 0, sizeof (struct security_priv));
|
||||
//_init_timer(&(adapter->securitypriv.tkip_timer),adapter->pnetdev, rtw_use_tkipkey_handler, adapter);
|
||||
|
@ -199,13 +199,13 @@ void rtw_reset_securitypriv( _adapter *adapter )
|
|||
_rtw_memcpy( &adapter->securitypriv.PMKIDList[ 0 ], &backupPMKIDList[ 0 ], sizeof( RT_PMKID_LIST ) * NUM_PMKID_CACHE );
|
||||
adapter->securitypriv.PMKIDIndex = backupPMKIDIndex;
|
||||
adapter->securitypriv.btkip_countermeasure = backupTKIPCountermeasure;
|
||||
adapter->securitypriv.btkip_countermeasure_time = backupTKIPcountermeasure_time;
|
||||
adapter->securitypriv.btkip_countermeasure_time = backupTKIPcountermeasure_time;
|
||||
|
||||
adapter->securitypriv.ndisauthtype = Ndis802_11AuthModeOpen;
|
||||
adapter->securitypriv.ndisencryptstatus = Ndis802_11WEPDisabled;
|
||||
|
||||
}
|
||||
else //reset values in securitypriv
|
||||
else //reset values in securitypriv
|
||||
{
|
||||
//if (adapter->mlmepriv.fw_state & WIFI_STATION_STATE)
|
||||
//{
|
||||
|
@ -227,7 +227,7 @@ void rtw_reset_securitypriv( _adapter *adapter )
|
|||
void rtw_os_indicate_disconnect( _adapter *adapter )
|
||||
{
|
||||
//RT_PMKID_LIST backupPMKIDList[ NUM_PMKID_CACHE ];
|
||||
|
||||
|
||||
_func_enter_;
|
||||
|
||||
netif_carrier_off(adapter->pnetdev); // Do it first for tx broadcast pkt after disconnection issue!
|
||||
|
@ -261,37 +261,37 @@ _func_enter_;
|
|||
if (authmode==_WPA_IE_ID_)
|
||||
{
|
||||
RT_TRACE(_module_mlme_osdep_c_,_drv_info_,("rtw_report_sec_ie, authmode=%d\n", authmode));
|
||||
|
||||
|
||||
buff = rtw_malloc(IW_CUSTOM_MAX);
|
||||
|
||||
|
||||
_rtw_memset(buff,0,IW_CUSTOM_MAX);
|
||||
|
||||
|
||||
p=buff;
|
||||
|
||||
|
||||
p+=sprintf(p,"ASSOCINFO(ReqIEs=");
|
||||
|
||||
len = sec_ie[1]+2;
|
||||
len = (len < IW_CUSTOM_MAX) ? len:IW_CUSTOM_MAX;
|
||||
|
||||
|
||||
for (i=0;i<len;i++){
|
||||
p+=sprintf(p,"%02x",sec_ie[i]);
|
||||
}
|
||||
|
||||
p+=sprintf(p,")");
|
||||
|
||||
|
||||
_rtw_memset(&wrqu,0,sizeof(wrqu));
|
||||
|
||||
|
||||
wrqu.data.length=p-buff;
|
||||
|
||||
|
||||
wrqu.data.length = (wrqu.data.length<IW_CUSTOM_MAX) ? wrqu.data.length:IW_CUSTOM_MAX;
|
||||
|
||||
|
||||
#ifndef CONFIG_IOCTL_CFG80211
|
||||
wireless_send_event(adapter->pnetdev,IWEVCUSTOM,&wrqu,buff);
|
||||
#endif
|
||||
|
||||
if (buff)
|
||||
rtw_mfree(buff, IW_CUSTOM_MAX);
|
||||
|
||||
|
||||
}
|
||||
|
||||
_func_exit_;
|
||||
|
@ -301,7 +301,7 @@ _func_exit_;
|
|||
void _survey_timer_hdl (void *FunctionContext)
|
||||
{
|
||||
_adapter *padapter = (_adapter *)FunctionContext;
|
||||
|
||||
|
||||
survey_timer_hdl(padapter);
|
||||
}
|
||||
|
||||
|
@ -338,7 +338,7 @@ void _reassoc_timer_hdl(void *FunctionContext)
|
|||
*/
|
||||
|
||||
void init_mlme_ext_timer(_adapter *padapter)
|
||||
{
|
||||
{
|
||||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
||||
|
||||
_init_timer(&pmlmeext->survey_timer, padapter->pnetdev, _survey_timer_hdl, padapter);
|
||||
|
@ -364,14 +364,14 @@ void rtw_indicate_sta_assoc_event(_adapter *padapter, struct sta_info *psta)
|
|||
|
||||
if (pstapriv->sta_aid[psta->aid - 1] != psta)
|
||||
return;
|
||||
|
||||
|
||||
wrqu.addr.sa_family = ARPHRD_ETHER;
|
||||
|
||||
|
||||
|
||||
wrqu.addr.sa_family = ARPHRD_ETHER;
|
||||
|
||||
_rtw_memcpy(wrqu.addr.sa_data, psta->hwaddr, ETH_ALEN);
|
||||
|
||||
DBG_871X("+rtw_indicate_sta_assoc_event\n");
|
||||
|
||||
|
||||
#ifndef CONFIG_IOCTL_CFG80211
|
||||
wireless_send_event(padapter->pnetdev, IWEVREGISTERED, &wrqu, NULL);
|
||||
#endif
|
||||
|
@ -391,18 +391,18 @@ void rtw_indicate_sta_disassoc_event(_adapter *padapter, struct sta_info *psta)
|
|||
|
||||
if (pstapriv->sta_aid[psta->aid - 1] != psta)
|
||||
return;
|
||||
|
||||
|
||||
wrqu.addr.sa_family = ARPHRD_ETHER;
|
||||
|
||||
|
||||
|
||||
wrqu.addr.sa_family = ARPHRD_ETHER;
|
||||
|
||||
_rtw_memcpy(wrqu.addr.sa_data, psta->hwaddr, ETH_ALEN);
|
||||
|
||||
DBG_871X("+rtw_indicate_sta_disassoc_event\n");
|
||||
|
||||
|
||||
#ifndef CONFIG_IOCTL_CFG80211
|
||||
wireless_send_event(padapter->pnetdev, IWEVEXPIRED, &wrqu, NULL);
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -426,7 +426,7 @@ static int mgnt_netdev_open(struct net_device *pnetdev)
|
|||
|
||||
|
||||
init_usb_anchor(&phostapdpriv->anchored);
|
||||
|
||||
|
||||
if (!rtw_netif_queue_stopped(pnetdev))
|
||||
rtw_netif_start_queue(pnetdev);
|
||||
else
|
||||
|
@ -434,10 +434,10 @@ static int mgnt_netdev_open(struct net_device *pnetdev)
|
|||
|
||||
|
||||
netif_carrier_on(pnetdev);
|
||||
|
||||
//rtw_write16(phostapdpriv->padapter, 0x0116, 0x0100);//only excluding beacon
|
||||
|
||||
return 0;
|
||||
|
||||
//rtw_write16(phostapdpriv->padapter, 0x0116, 0x0100);//only excluding beacon
|
||||
|
||||
return 0;
|
||||
}
|
||||
static int mgnt_netdev_close(struct net_device *pnetdev)
|
||||
{
|
||||
|
@ -451,10 +451,10 @@ static int mgnt_netdev_close(struct net_device *pnetdev)
|
|||
|
||||
if (!rtw_netif_queue_stopped(pnetdev))
|
||||
rtw_netif_stop_queue(pnetdev);
|
||||
|
||||
|
||||
//rtw_write16(phostapdpriv->padapter, 0x0116, 0x3f3f);
|
||||
|
||||
return 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,29))
|
||||
|
@ -473,8 +473,8 @@ int hostapd_mode_init(_adapter *padapter)
|
|||
unsigned char mac[ETH_ALEN];
|
||||
struct hostapd_priv *phostapdpriv;
|
||||
struct net_device *pnetdev;
|
||||
|
||||
pnetdev = rtw_alloc_etherdev(sizeof(struct hostapd_priv));
|
||||
|
||||
pnetdev = rtw_alloc_etherdev(sizeof(struct hostapd_priv));
|
||||
if (!pnetdev)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -482,49 +482,49 @@ int hostapd_mode_init(_adapter *padapter)
|
|||
ether_setup(pnetdev);
|
||||
|
||||
//pnetdev->type = ARPHRD_IEEE80211;
|
||||
|
||||
|
||||
phostapdpriv = rtw_netdev_priv(pnetdev);
|
||||
phostapdpriv->pmgnt_netdev = pnetdev;
|
||||
phostapdpriv->padapter= padapter;
|
||||
padapter->phostapdpriv = phostapdpriv;
|
||||
|
||||
|
||||
//pnetdev->init = NULL;
|
||||
|
||||
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,29))
|
||||
|
||||
DBG_871X("register rtl871x_mgnt_netdev_ops to netdev_ops\n");
|
||||
|
||||
pnetdev->netdev_ops = &rtl871x_mgnt_netdev_ops;
|
||||
|
||||
|
||||
#else
|
||||
|
||||
pnetdev->open = mgnt_netdev_open;
|
||||
|
||||
pnetdev->stop = mgnt_netdev_close;
|
||||
|
||||
pnetdev->stop = mgnt_netdev_close;
|
||||
|
||||
pnetdev->hard_start_xmit = mgnt_xmit_entry;
|
||||
|
||||
|
||||
//pnetdev->set_mac_address = r871x_net_set_mac_address;
|
||||
|
||||
|
||||
//pnetdev->get_stats = r871x_net_get_stats;
|
||||
|
||||
//pnetdev->do_ioctl = r871x_mp_ioctl;
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
pnetdev->watchdog_timeo = HZ; /* 1 second timeout */
|
||||
pnetdev->watchdog_timeo = HZ; /* 1 second timeout */
|
||||
|
||||
//pnetdev->wireless_handlers = NULL;
|
||||
|
||||
#ifdef CONFIG_TCP_CSUM_OFFLOAD_TX
|
||||
pnetdev->features |= NETIF_F_IP_CSUM;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (dev_alloc_name(pnetdev,"mgnt.wlan%d") < 0)
|
||||
{
|
||||
DBG_871X("hostapd_mode_init(): dev_alloc_name, fail!\n");
|
||||
DBG_871X("hostapd_mode_init(): dev_alloc_name, fail!\n");
|
||||
}
|
||||
|
||||
|
||||
|
@ -537,9 +537,9 @@ int hostapd_mode_init(_adapter *padapter)
|
|||
mac[3]=0x87;
|
||||
mac[4]=0x11;
|
||||
mac[5]=0x12;
|
||||
|
||||
|
||||
_rtw_memcpy(pnetdev->dev_addr, mac, ETH_ALEN);
|
||||
|
||||
|
||||
|
||||
netif_carrier_off(pnetdev);
|
||||
|
||||
|
@ -548,15 +548,15 @@ int hostapd_mode_init(_adapter *padapter)
|
|||
if (register_netdev(pnetdev) != 0)
|
||||
{
|
||||
DBG_871X("hostapd_mode_init(): register_netdev fail!\n");
|
||||
|
||||
|
||||
if (pnetdev)
|
||||
{
|
||||
{
|
||||
rtw_free_netdev(pnetdev);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
void hostapd_mode_unload(_adapter *padapter)
|
||||
|
@ -566,9 +566,8 @@ void hostapd_mode_unload(_adapter *padapter)
|
|||
|
||||
unregister_netdev(pnetdev);
|
||||
rtw_free_netdev(pnetdev);
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -45,7 +45,7 @@ int rtw_os_recv_resource_init(struct recv_priv *precvpriv, _adapter *padapter)
|
|||
int rtw_os_recv_resource_alloc(_adapter *padapter, union recv_frame *precvframe)
|
||||
{
|
||||
int res=_SUCCESS;
|
||||
|
||||
|
||||
precvframe->u.hdr.pkt_newalloc = precvframe->u.hdr.pkt = NULL;
|
||||
|
||||
return res;
|
||||
|
@ -92,7 +92,7 @@ int rtw_os_recvbuf_resource_alloc(_adapter *padapter, struct recv_buf *precvbuf)
|
|||
if (precvbuf->pallocated_buf == NULL)
|
||||
return _FAIL;
|
||||
#endif //CONFIG_USE_USB_BUFFER_ALLOC_RX
|
||||
|
||||
|
||||
#endif //CONFIG_USB_HCI
|
||||
|
||||
return res;
|
||||
|
@ -141,7 +141,7 @@ void rtw_handle_tkip_mic_err(_adapter *padapter,u8 bgroup)
|
|||
union iwreq_data wrqu;
|
||||
struct iw_michaelmicfailure ev;
|
||||
struct mlme_priv* pmlmepriv = &padapter->mlmepriv;
|
||||
struct security_priv *psecuritypriv = &padapter->securitypriv;
|
||||
struct security_priv *psecuritypriv = &padapter->securitypriv;
|
||||
u32 cur_time = 0;
|
||||
|
||||
if ( psecuritypriv->last_mic_err_time == 0 )
|
||||
|
@ -281,7 +281,7 @@ _func_enter_;
|
|||
goto _recv_indicatepkt_drop;
|
||||
}
|
||||
|
||||
RT_TRACE(_module_recv_osdep_c_,_drv_info_,("rtw_recv_indicatepkt():skb != NULL !!!\n"));
|
||||
RT_TRACE(_module_recv_osdep_c_,_drv_info_,("rtw_recv_indicatepkt():skb != NULL !!!\n"));
|
||||
RT_TRACE(_module_recv_osdep_c_,_drv_info_,("rtw_recv_indicatepkt():precv_frame->u.hdr.rx_head=%p precv_frame->hdr.rx_data=%p\n", precv_frame->u.hdr.rx_head, precv_frame->u.hdr.rx_data));
|
||||
RT_TRACE(_module_recv_osdep_c_,_drv_info_,("precv_frame->hdr.rx_tail=%p precv_frame->u.hdr.rx_end=%p precv_frame->hdr.len=%d\n", precv_frame->u.hdr.rx_tail, precv_frame->u.hdr.rx_end, precv_frame->u.hdr.len));
|
||||
|
||||
|
@ -296,9 +296,9 @@ _func_enter_;
|
|||
skb->head, skb->data, skb_tail_pointer(skb), skb_end_pointer(skb), skb->len));
|
||||
|
||||
if (check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE) {
|
||||
_pkt *pskb2=NULL;
|
||||
struct sta_info *psta = NULL;
|
||||
struct sta_priv *pstapriv = &padapter->stapriv;
|
||||
_pkt *pskb2=NULL;
|
||||
struct sta_info *psta = NULL;
|
||||
struct sta_priv *pstapriv = &padapter->stapriv;
|
||||
struct rx_pkt_attrib *pattrib = &precv_frame->u.hdr.attrib;
|
||||
int bmcast = IS_MCAST(pattrib->dst);
|
||||
|
||||
|
@ -314,16 +314,16 @@ _func_enter_;
|
|||
|
||||
if (psta)
|
||||
{
|
||||
struct net_device *pnetdev= (struct net_device*)padapter->pnetdev;
|
||||
struct net_device *pnetdev= (struct net_device*)padapter->pnetdev;
|
||||
|
||||
//DBG_871X("directly forwarding to the rtw_xmit_entry\n");
|
||||
|
||||
//skb->ip_summed = CHECKSUM_NONE;
|
||||
skb->dev = pnetdev;
|
||||
skb->dev = pnetdev;
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35))
|
||||
skb_set_queue_mapping(skb, rtw_recv_select_queue(skb));
|
||||
#endif //LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35)
|
||||
|
||||
|
||||
rtw_xmit_entry(skb, pnetdev);
|
||||
|
||||
if (bmcast)
|
||||
|
@ -339,7 +339,7 @@ _func_enter_;
|
|||
//DBG_871X("to APSelf\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef CONFIG_BR_EXT
|
||||
|
||||
|
@ -351,19 +351,19 @@ _func_enter_;
|
|||
rcu_read_unlock();
|
||||
#endif // (LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 35))
|
||||
|
||||
if ( br_port && (check_fwstate(pmlmepriv, WIFI_STATION_STATE|WIFI_ADHOC_STATE) == _TRUE) )
|
||||
if ( br_port && (check_fwstate(pmlmepriv, WIFI_STATION_STATE|WIFI_ADHOC_STATE) == _TRUE) )
|
||||
{
|
||||
int nat25_handle_frame(_adapter *priv, struct sk_buff *skb);
|
||||
if (nat25_handle_frame(padapter, skb) == -1) {
|
||||
//priv->ext_stats.rx_data_drops++;
|
||||
//DEBUG_ERR("RX DROP: nat25_handle_frame fail!\n");
|
||||
//return FAIL;
|
||||
#if 1
|
||||
#if 1
|
||||
// bypass this frame to upper layer!!
|
||||
#else
|
||||
goto _recv_indicatepkt_drop;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // CONFIG_BR_EXT
|
||||
|
@ -452,4 +452,3 @@ void rtw_init_recv_timer(struct recv_reorder_ctrl *preorder_ctrl)
|
|||
_init_timer(&(preorder_ctrl->reordering_ctrl_timer), padapter->pnetdev, _rtw_reordering_ctrl_timeout_handler, preorder_ctrl);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation.
|
||||
|
@ -75,13 +75,13 @@ const char *android_wifi_cmd_str[ANDROID_WIFI_CMD_MAX] = {
|
|||
"WFD-DISABLE",
|
||||
"WFD-SET-TCPPORT",
|
||||
"WFD-SET-MAXTPUT",
|
||||
"WFD-SET-DEVTYPE",
|
||||
"WFD-SET-DEVTYPE",
|
||||
};
|
||||
|
||||
#ifdef PNO_SUPPORT
|
||||
#define PNO_TLV_PREFIX 'S'
|
||||
#define PNO_TLV_VERSION '1'
|
||||
#define PNO_TLV_SUBVERSION '2'
|
||||
#define PNO_TLV_SUBVERSION '2'
|
||||
#define PNO_TLV_RESERVED '0'
|
||||
#define PNO_TLV_TYPE_SSID_IE 'S'
|
||||
#define PNO_TLV_TYPE_TIME 'T'
|
||||
|
@ -233,19 +233,19 @@ int rtw_android_cmdstr_to_num(char *cmdstr)
|
|||
for (cmd_num=0 ; cmd_num<ANDROID_WIFI_CMD_MAX; cmd_num++)
|
||||
if (0 == strnicmp(cmdstr , android_wifi_cmd_str[cmd_num], strlen(android_wifi_cmd_str[cmd_num])) )
|
||||
break;
|
||||
|
||||
|
||||
return cmd_num;
|
||||
}
|
||||
|
||||
int rtw_android_get_rssi(struct net_device *net, char *command, int total_len)
|
||||
{
|
||||
_adapter *padapter = (_adapter *)rtw_netdev_priv(net);
|
||||
struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
|
||||
struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
|
||||
struct wlan_network *pcur_network = &pmlmepriv->cur_network;
|
||||
int bytes_written = 0;
|
||||
|
||||
if (check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE) {
|
||||
bytes_written += snprintf(&command[bytes_written], total_len, "%s rssi %d",
|
||||
if (check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE) {
|
||||
bytes_written += snprintf(&command[bytes_written], total_len, "%s rssi %d",
|
||||
pcur_network->network.Ssid.Ssid, padapter->recvpriv.rssi);
|
||||
}
|
||||
|
||||
|
@ -255,7 +255,7 @@ int rtw_android_get_rssi(struct net_device *net, char *command, int total_len)
|
|||
int rtw_android_get_link_speed(struct net_device *net, char *command, int total_len)
|
||||
{
|
||||
_adapter *padapter = (_adapter *)rtw_netdev_priv(net);
|
||||
struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
|
||||
struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);
|
||||
struct wlan_network *pcur_network = &pmlmepriv->cur_network;
|
||||
int bytes_written = 0;
|
||||
u16 link_speed = 0;
|
||||
|
@ -270,7 +270,7 @@ int rtw_android_get_macaddr(struct net_device *net, char *command, int total_len
|
|||
{
|
||||
_adapter *adapter = (_adapter *)rtw_netdev_priv(net);
|
||||
int bytes_written = 0;
|
||||
|
||||
|
||||
bytes_written = snprintf(command, total_len, "Macaddr = "MAC_FMT, MAC_ARG(net->dev_addr));
|
||||
return bytes_written;
|
||||
}
|
||||
|
@ -280,7 +280,7 @@ int rtw_android_set_country(struct net_device *net, char *command, int total_len
|
|||
_adapter *adapter = (_adapter *)rtw_netdev_priv(net);
|
||||
char *country_code = command + strlen(android_wifi_cmd_str[ANDROID_WIFI_CMD_COUNTRY]) + 1;
|
||||
int ret;
|
||||
|
||||
|
||||
ret = rtw_set_country(adapter, country_code);
|
||||
|
||||
return (ret==_SUCCESS)?0:-1;
|
||||
|
@ -293,7 +293,7 @@ int rtw_android_get_p2p_dev_addr(struct net_device *net, char *command, int tota
|
|||
|
||||
//We use the same address as our HW MAC address
|
||||
_rtw_memcpy(command, net->dev_addr, ETH_ALEN);
|
||||
|
||||
|
||||
bytes_written = ETH_ALEN;
|
||||
return bytes_written;
|
||||
}
|
||||
|
@ -307,7 +307,7 @@ int rtw_android_set_block(struct net_device *net, char *command, int total_len)
|
|||
#ifdef CONFIG_IOCTL_CFG80211
|
||||
wdev_to_priv(adapter->rtw_wdev)->block = (*block_value=='0')?_FALSE:_TRUE;
|
||||
#endif
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -345,7 +345,7 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
|||
ret = -EFAULT;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
|
||||
//DBG_871X("%s priv_cmd.buf=%p priv_cmd.total_len=%d priv_cmd.used_len=%d\n",__func__,priv_cmd.buf,priv_cmd.total_len,priv_cmd.used_len);
|
||||
command = kmalloc(priv_cmd.total_len, GFP_KERNEL);
|
||||
if (!command)
|
||||
|
@ -356,7 +356,7 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
|||
}
|
||||
|
||||
if (!access_ok(VERIFY_READ, priv_cmd.buf, priv_cmd.total_len)){
|
||||
DBG_871X("%s: failed to access memory\n", __func__);
|
||||
DBG_871X("%s: failed to access memory\n", __func__);
|
||||
ret = -EFAULT;
|
||||
goto exit;
|
||||
}
|
||||
|
@ -369,7 +369,7 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
|||
, __func__, command, ifr->ifr_name);
|
||||
|
||||
cmd_num = rtw_android_cmdstr_to_num(command);
|
||||
|
||||
|
||||
switch (cmd_num) {
|
||||
case ANDROID_WIFI_CMD_START:
|
||||
//bytes_written = wl_android_wifi_on(net);
|
||||
|
@ -390,19 +390,19 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
|||
case ANDROID_WIFI_CMD_STOP:
|
||||
//bytes_written = wl_android_wifi_off(net);
|
||||
break;
|
||||
|
||||
|
||||
case ANDROID_WIFI_CMD_SCAN_ACTIVE:
|
||||
//rtw_set_scan_mode((_adapter *)rtw_netdev_priv(net), SCAN_ACTIVE);
|
||||
#ifdef CONFIG_PLATFORM_MSTAR_TITANIA12
|
||||
#ifdef CONFIG_PLATFORM_MSTAR_TITANIA12
|
||||
#ifdef CONFIG_IOCTL_CFG80211
|
||||
(wdev_to_priv(net->ieee80211_ptr))->bandroid_scan = _TRUE;
|
||||
(wdev_to_priv(net->ieee80211_ptr))->bandroid_scan = _TRUE;
|
||||
#endif //CONFIG_IOCTL_CFG80211
|
||||
#endif //CONFIG_PLATFORM_MSTAR_TITANIA12
|
||||
break;
|
||||
case ANDROID_WIFI_CMD_SCAN_PASSIVE:
|
||||
//rtw_set_scan_mode((_adapter *)rtw_netdev_priv(net), SCAN_PASSIVE);
|
||||
break;
|
||||
|
||||
|
||||
case ANDROID_WIFI_CMD_RSSI:
|
||||
bytes_written = rtw_android_get_rssi(net, command, priv_cmd.total_len);
|
||||
break;
|
||||
|
@ -413,11 +413,11 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
|||
case ANDROID_WIFI_CMD_MACADDR:
|
||||
bytes_written = rtw_android_get_macaddr(net, command, priv_cmd.total_len);
|
||||
break;
|
||||
|
||||
|
||||
case ANDROID_WIFI_CMD_BLOCK:
|
||||
bytes_written = rtw_android_set_block(net, command, priv_cmd.total_len);
|
||||
break;
|
||||
|
||||
|
||||
case ANDROID_WIFI_CMD_RXFILTER_START:
|
||||
//bytes_written = net_os_set_packet_filter(net, 1);
|
||||
break;
|
||||
|
@ -432,7 +432,7 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
|||
//int filter_num = *(command + strlen(CMD_RXFILTER_REMOVE) + 1) - '0';
|
||||
//bytes_written = net_os_rxfilter_add_remove(net, FALSE, filter_num);
|
||||
break;
|
||||
|
||||
|
||||
case ANDROID_WIFI_CMD_BTCOEXSCAN_START:
|
||||
/* TBD: BTCOEXSCAN-START */
|
||||
break;
|
||||
|
@ -451,7 +451,7 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
|||
case ANDROID_WIFI_CMD_COUNTRY:
|
||||
bytes_written = rtw_android_set_country(net, command, priv_cmd.total_len);
|
||||
break;
|
||||
|
||||
|
||||
#ifdef PNO_SUPPORT
|
||||
case ANDROID_WIFI_CMD_PNOSSIDCLR_SET:
|
||||
break;
|
||||
|
@ -475,7 +475,7 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
|||
//int skip = strlen(CMD_P2P_SET_PS) + 1;
|
||||
//bytes_written = wl_cfg80211_set_p2p_ps(net, command + skip, priv_cmd.total_len - skip);
|
||||
break;
|
||||
|
||||
|
||||
#ifdef CONFIG_IOCTL_CFG80211
|
||||
case ANDROID_WIFI_CMD_SET_AP_WPS_P2P_IE:
|
||||
{
|
||||
|
@ -491,10 +491,10 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
|||
// Commented by Albert 2012/07/24
|
||||
// We can enable the WFD function by using the following command:
|
||||
// wpa_cli driver wfd-enable
|
||||
|
||||
|
||||
struct wifi_display_info *pwfd_info;
|
||||
_adapter* padapter = ( _adapter * ) rtw_netdev_priv(net);
|
||||
|
||||
|
||||
pwfd_info = &padapter->wfd_info;
|
||||
pwfd_info->wfd_enable = _TRUE;
|
||||
break;
|
||||
|
@ -505,10 +505,10 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
|||
// Commented by Albert 2012/07/24
|
||||
// We can disable the WFD function by using the following command:
|
||||
// wpa_cli driver wfd-disable
|
||||
|
||||
|
||||
struct wifi_display_info *pwfd_info;
|
||||
_adapter* padapter = ( _adapter * ) rtw_netdev_priv(net);
|
||||
|
||||
|
||||
pwfd_info = &padapter->wfd_info;
|
||||
pwfd_info->wfd_enable = _FALSE;
|
||||
break;
|
||||
|
@ -518,31 +518,31 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
|
|||
// Commented by Albert 2012/07/24
|
||||
// We can set the tcp port number by using the following command:
|
||||
// wpa_cli driver wfd-set-tcpport = 554
|
||||
|
||||
|
||||
struct wifi_display_info *pwfd_info;
|
||||
_adapter* padapter = ( _adapter * ) rtw_netdev_priv(net);
|
||||
|
||||
|
||||
pwfd_info = &padapter->wfd_info;
|
||||
pwfd_info->rtsp_ctrlport = ( u16 ) get_int_from_command( priv_cmd.buf );
|
||||
break;
|
||||
}
|
||||
case ANDROID_WIFI_CMD_WFD_SET_MAX_TPUT:
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
case ANDROID_WIFI_CMD_WFD_SET_DEVTYPE:
|
||||
{
|
||||
// Commented by Albert 2012/08/28
|
||||
// Specify the WFD device type ( WFD source/primary sink )
|
||||
|
||||
|
||||
struct wifi_display_info *pwfd_info;
|
||||
_adapter* padapter = ( _adapter * ) rtw_netdev_priv(net);
|
||||
|
||||
|
||||
pwfd_info = &padapter->wfd_info;
|
||||
pwfd_info->wfd_device_type = ( u8 ) get_int_from_command( priv_cmd.buf );
|
||||
|
||||
|
||||
pwfd_info->wfd_device_type &= WFD_DEVINFO_DUAL;
|
||||
break;
|
||||
}
|
||||
|
@ -791,4 +791,3 @@ static void wifi_del_dev(void)
|
|||
platform_driver_unregister(&wifi_device_legacy);
|
||||
}
|
||||
#endif /* defined(RTW_ENABLE_WIFI_CONTROL_FUNC) */
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation.
|
||||
|
@ -68,24 +68,24 @@ static void rtw_dev_remove(struct usb_interface *pusb_intf);
|
|||
|
||||
#if (LINUX_VERSION_CODE<=KERNEL_VERSION(2,6,23))
|
||||
/* Some useful macros to use to create struct usb_device_id */
|
||||
#define USB_DEVICE_ID_MATCH_VENDOR 0x0001
|
||||
#define USB_DEVICE_ID_MATCH_VENDOR 0x0001
|
||||
#define USB_DEVICE_ID_MATCH_PRODUCT 0x0002
|
||||
#define USB_DEVICE_ID_MATCH_DEV_LO 0x0004
|
||||
#define USB_DEVICE_ID_MATCH_DEV_HI 0x0008
|
||||
#define USB_DEVICE_ID_MATCH_DEV_LO 0x0004
|
||||
#define USB_DEVICE_ID_MATCH_DEV_HI 0x0008
|
||||
#define USB_DEVICE_ID_MATCH_DEV_CLASS 0x0010
|
||||
#define USB_DEVICE_ID_MATCH_DEV_SUBCLASS 0x0020
|
||||
#define USB_DEVICE_ID_MATCH_DEV_PROTOCOL 0x0040
|
||||
#define USB_DEVICE_ID_MATCH_INT_CLASS 0x0080
|
||||
#define USB_DEVICE_ID_MATCH_INT_SUBCLASS 0x0100
|
||||
#define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200
|
||||
#define USB_DEVICE_ID_MATCH_INT_NUMBER 0x0400
|
||||
#define USB_DEVICE_ID_MATCH_INT_NUMBER 0x0400
|
||||
|
||||
|
||||
#define USB_DEVICE_ID_MATCH_INT_INFO \
|
||||
(USB_DEVICE_ID_MATCH_INT_CLASS | \
|
||||
USB_DEVICE_ID_MATCH_INT_SUBCLASS | \
|
||||
USB_DEVICE_ID_MATCH_INT_PROTOCOL)
|
||||
|
||||
|
||||
|
||||
#define USB_DEVICE_AND_INTERFACE_INFO(vend, prod, cl, sc, pr) \
|
||||
.match_flags = USB_DEVICE_ID_MATCH_INT_INFO \
|
||||
|
@ -95,7 +95,7 @@ static void rtw_dev_remove(struct usb_interface *pusb_intf);
|
|||
.bInterfaceClass = (cl), \
|
||||
.bInterfaceSubClass = (sc), \
|
||||
.bInterfaceProtocol = (pr)
|
||||
|
||||
|
||||
/**
|
||||
* USB_VENDOR_AND_INTERFACE_INFO - describe a specific usb vendor with a class of usb interfaces
|
||||
* @vend: the 16 bit USB Vendor ID
|
||||
|
@ -116,7 +116,7 @@ static void rtw_dev_remove(struct usb_interface *pusb_intf);
|
|||
.bInterfaceClass = (cl), \
|
||||
.bInterfaceSubClass = (sc), \
|
||||
.bInterfaceProtocol = (pr)
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------------- */
|
||||
#endif
|
||||
|
||||
|
@ -246,7 +246,7 @@ static void rtw_dev_remove(struct usb_interface *pusb_intf);
|
|||
{USB_DEVICE_AND_INTERFACE_INFO(USB_VENDER_ID_REALTEK, 0x8724,0xff,0xff,0xff)}, /* 8723AU 1*1 */ \
|
||||
{USB_DEVICE_AND_INTERFACE_INFO(USB_VENDER_ID_REALTEK, 0x1724,0xff,0xff,0xff)}, /* 8723AU 1*1 */ \
|
||||
{USB_DEVICE_AND_INTERFACE_INFO(USB_VENDER_ID_REALTEK, 0x0724,0xff,0xff,0xff)}, /* 8723AU 1*1 */
|
||||
|
||||
|
||||
#define RTL8188E_USB_IDS \
|
||||
/*=== Realtek demoboard ===*/ \
|
||||
{USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8179)}, /* 8188EUS */ \
|
||||
|
@ -288,7 +288,7 @@ static struct specific_device_id specific_device_id_tbl[] = {
|
|||
{.idVendor=USB_VENDER_ID_REALTEK, .idProduct=0x817E, .flags=SPEC_DEV_ID_DISABLE_HT},//8188CE-VAU USB minCard (b/g mode only)
|
||||
{.idVendor=0x0b05, .idProduct=0x1791, .flags=SPEC_DEV_ID_DISABLE_HT},
|
||||
{.idVendor=0x13D3, .idProduct=0x3311, .flags=SPEC_DEV_ID_DISABLE_HT},
|
||||
{.idVendor=0x13D3, .idProduct=0x3359, .flags=SPEC_DEV_ID_DISABLE_HT},//Russian customer -Azwave (8188CE-VAU g mode)
|
||||
{.idVendor=0x13D3, .idProduct=0x3359, .flags=SPEC_DEV_ID_DISABLE_HT},//Russian customer -Azwave (8188CE-VAU g mode)
|
||||
#ifdef RTK_DMP_PLATFORM
|
||||
{.idVendor=USB_VENDER_ID_REALTEK, .idProduct=0x8111, .flags=SPEC_DEV_ID_ASSIGN_IFNAME}, // Realtek 5G dongle for WiFi Display
|
||||
{.idVendor=0x2019, .idProduct=0xAB2D, .flags=SPEC_DEV_ID_ASSIGN_IFNAME}, // PCI-Abocom 5G dongle for WiFi Display
|
||||
|
@ -323,10 +323,10 @@ struct rtw_usb_drv rtl8192c_usb_drv = {
|
|||
.usbdrv.suspend = rtw_suspend,
|
||||
.usbdrv.resume = rtw_resume,
|
||||
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 22))
|
||||
.usbdrv.reset_resume = rtw_resume,
|
||||
.usbdrv.reset_resume = rtw_resume,
|
||||
#endif
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
.usbdrv.supports_autosuspend = 1,
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
.usbdrv.supports_autosuspend = 1,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -347,10 +347,10 @@ struct rtw_usb_drv rtl8192d_usb_drv = {
|
|||
.usbdrv.suspend = rtw_suspend,
|
||||
.usbdrv.resume = rtw_resume,
|
||||
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 22))
|
||||
.usbdrv.reset_resume = rtw_resume,
|
||||
.usbdrv.reset_resume = rtw_resume,
|
||||
#endif
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
.usbdrv.supports_autosuspend = 1,
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
.usbdrv.supports_autosuspend = 1,
|
||||
#endif
|
||||
};
|
||||
static struct rtw_usb_drv *usb_drv = &rtl8192d_usb_drv;
|
||||
|
@ -370,10 +370,10 @@ struct rtw_usb_drv rtl8723a_usb_drv = {
|
|||
.usbdrv.suspend = rtw_suspend,
|
||||
.usbdrv.resume = rtw_resume,
|
||||
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 22))
|
||||
.usbdrv.reset_resume = rtw_resume,
|
||||
.usbdrv.reset_resume = rtw_resume,
|
||||
#endif
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
.usbdrv.supports_autosuspend = 1,
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
.usbdrv.supports_autosuspend = 1,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -394,10 +394,10 @@ struct rtw_usb_drv rtl8188e_usb_drv = {
|
|||
.usbdrv.suspend = rtw_suspend,
|
||||
.usbdrv.resume = rtw_resume,
|
||||
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 22))
|
||||
.usbdrv.reset_resume = rtw_resume,
|
||||
.usbdrv.reset_resume = rtw_resume,
|
||||
#endif
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
.usbdrv.supports_autosuspend = 1,
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
.usbdrv.supports_autosuspend = 1,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -421,7 +421,7 @@ static inline int RT_usb_endpoint_xfer_int(const struct usb_endpoint_descriptor
|
|||
|
||||
static inline int RT_usb_endpoint_xfer_bulk(const struct usb_endpoint_descriptor *epd)
|
||||
{
|
||||
return ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK);
|
||||
return ((epd->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK);
|
||||
}
|
||||
|
||||
static inline int RT_usb_endpoint_is_bulk_in(const struct usb_endpoint_descriptor *epd)
|
||||
|
@ -446,8 +446,8 @@ static inline int RT_usb_endpoint_num(const struct usb_endpoint_descriptor *epd)
|
|||
|
||||
static u8 rtw_init_intf_priv(struct dvobj_priv *dvobj)
|
||||
{
|
||||
u8 rst = _SUCCESS;
|
||||
|
||||
u8 rst = _SUCCESS;
|
||||
|
||||
#ifdef CONFIG_USB_VENDOR_REQ_MUTEX
|
||||
_rtw_mutex_init(&dvobj->usb_vendor_req_mutex);
|
||||
#endif
|
||||
|
@ -460,18 +460,18 @@ static u8 rtw_init_intf_priv(struct dvobj_priv *dvobj)
|
|||
rst = _FAIL;
|
||||
goto exit;
|
||||
}
|
||||
dvobj->usb_vendor_req_buf =
|
||||
dvobj->usb_vendor_req_buf =
|
||||
(u8 *)N_BYTE_ALIGMENT((SIZE_PTR)(dvobj->usb_alloc_vendor_req_buf ), ALIGNMENT_UNIT);
|
||||
exit:
|
||||
#endif
|
||||
|
||||
return rst;
|
||||
|
||||
|
||||
}
|
||||
|
||||
static u8 rtw_deinit_intf_priv(struct dvobj_priv *dvobj)
|
||||
{
|
||||
u8 rst = _SUCCESS;
|
||||
u8 rst = _SUCCESS;
|
||||
|
||||
#ifdef CONFIG_USB_VENDOR_REQ_BUFFER_PREALLOC
|
||||
if (dvobj->usb_vendor_req_buf)
|
||||
|
@ -481,7 +481,7 @@ static u8 rtw_deinit_intf_priv(struct dvobj_priv *dvobj)
|
|||
#ifdef CONFIG_USB_VENDOR_REQ_MUTEX
|
||||
_rtw_mutex_free(&dvobj->usb_vendor_req_mutex);
|
||||
#endif
|
||||
|
||||
|
||||
return rst;
|
||||
}
|
||||
|
||||
|
@ -491,7 +491,7 @@ static struct dvobj_priv *usb_dvobj_init(struct usb_interface *usb_intf)
|
|||
u8 val8;
|
||||
int status = _FAIL;
|
||||
struct dvobj_priv *pdvobjpriv;
|
||||
struct usb_device_descriptor *pdev_desc;
|
||||
struct usb_device_descriptor *pdev_desc;
|
||||
struct usb_host_config *phost_conf;
|
||||
struct usb_config_descriptor *pconf_desc;
|
||||
struct usb_host_interface *phost_iface;
|
||||
|
@ -559,7 +559,7 @@ _func_enter_;
|
|||
pdvobjpriv->ep_num[i] = RT_usb_endpoint_num(pendp_desc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DBG_871X("nr_endpoint=%d, in_num=%d, out_num=%d\n\n", pdvobjpriv->nr_endpoint, pdvobjpriv->RtNumInPipes, pdvobjpriv->RtNumOutPipes);
|
||||
|
||||
if (pusbd->speed == USB_SPEED_HIGH) {
|
||||
|
@ -569,14 +569,14 @@ _func_enter_;
|
|||
pdvobjpriv->ishighspeed = _FALSE;
|
||||
DBG_871X("NON USB_SPEED_HIGH\n");
|
||||
}
|
||||
|
||||
|
||||
if (rtw_init_intf_priv(pdvobjpriv) == _FAIL) {
|
||||
RT_TRACE(_module_os_intfs_c_,_drv_err_,("\n Can't INIT rtw_init_intf_priv\n"));
|
||||
goto free_dvobj;
|
||||
}
|
||||
|
||||
//.3 misc
|
||||
_rtw_init_sema(&(pdvobjpriv->usb_suspend_sema), 0);
|
||||
_rtw_init_sema(&(pdvobjpriv->usb_suspend_sema), 0);
|
||||
rtw_reset_continual_urb_error(pdvobjpriv);
|
||||
|
||||
usb_get_dev(pusbd);
|
||||
|
@ -606,7 +606,7 @@ _func_enter_;
|
|||
if ((dvobj->NumInterfaces != 2 && dvobj->NumInterfaces != 3)
|
||||
|| (dvobj->InterfaceNumber == 1)) {
|
||||
if (interface_to_usbdev(usb_intf)->state != USB_STATE_NOTATTACHED) {
|
||||
//If we didn't unplug usb dongle and remove/insert modlue, driver fails on sitesurvey for the first time when device is up .
|
||||
//If we didn't unplug usb dongle and remove/insert modlue, driver fails on sitesurvey for the first time when device is up .
|
||||
//Reset usb port for sitesurvey fail issue. 2009.8.13, by Thomas
|
||||
DBG_871X("usb attached..., try to reset usb device\n");
|
||||
usb_reset_device(interface_to_usbdev(usb_intf));
|
||||
|
@ -615,7 +615,7 @@ _func_enter_;
|
|||
rtw_deinit_intf_priv(dvobj);
|
||||
rtw_mfree((u8*)dvobj, sizeof(*dvobj));
|
||||
}
|
||||
|
||||
|
||||
//DBG_871X("%s %d\n", __func__, ATOMIC_READ(&usb_intf->dev.kobj.kref.refcount));
|
||||
usb_put_dev(interface_to_usbdev(usb_intf));
|
||||
|
||||
|
@ -631,8 +631,8 @@ static void decide_chip_type_by_usb_device_id(_adapter *padapter, const struct u
|
|||
static void usb_intf_start(_adapter *padapter)
|
||||
{
|
||||
|
||||
RT_TRACE(_module_hci_intfs_c_,_drv_err_,("+usb_intf_start\n"));
|
||||
|
||||
RT_TRACE(_module_hci_intfs_c_,_drv_err_,("+usb_intf_start\n"));
|
||||
|
||||
rtw_hal_inirp_init(padapter);
|
||||
|
||||
RT_TRACE(_module_hci_intfs_c_,_drv_err_,("-usb_intf_start\n"));
|
||||
|
@ -653,7 +653,7 @@ static void usb_intf_stop(_adapter *padapter)
|
|||
}
|
||||
|
||||
//cancel in irp
|
||||
rtw_hal_inirp_deinit(padapter);
|
||||
rtw_hal_inirp_deinit(padapter);
|
||||
|
||||
//cancel out irp
|
||||
rtw_write_port_cancel(padapter);
|
||||
|
@ -687,7 +687,7 @@ static void rtw_dev_unload(_adapter *padapter)
|
|||
}
|
||||
|
||||
//s4.
|
||||
if (!padapter->pwrctrlpriv.bInternalAutoSuspend )
|
||||
if (!padapter->pwrctrlpriv.bInternalAutoSuspend )
|
||||
rtw_stop_drv_threads(padapter);
|
||||
|
||||
|
||||
|
@ -751,7 +751,7 @@ static void process_spec_devid(const struct usb_device_id *pdid)
|
|||
if ((pdid->idVendor==vid) && (pdid->idProduct==pid) && (flags&SPEC_DEV_ID_ASSIGN_IFNAME))
|
||||
{
|
||||
extern char* ifname;
|
||||
strncpy(ifname, "wlan10", 6);
|
||||
strncpy(ifname, "wlan10", 6);
|
||||
//DBG_871X("%s()-%d: ifname=%s, vid=%04X, pid=%04X\n", __func__, __LINE__, ifname, vid, pid);
|
||||
}
|
||||
#endif /* RTK_DMP_PLATFORM */
|
||||
|
@ -763,23 +763,23 @@ static void process_spec_devid(const struct usb_device_id *pdid)
|
|||
int rtw_hw_suspend(_adapter *padapter )
|
||||
{
|
||||
struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv;
|
||||
struct usb_interface *pusb_intf = adapter_to_dvobj(padapter)->pusbintf;
|
||||
struct usb_interface *pusb_intf = adapter_to_dvobj(padapter)->pusbintf;
|
||||
struct net_device *pnetdev = padapter->pnetdev;
|
||||
|
||||
|
||||
_func_enter_;
|
||||
|
||||
if ((!padapter->bup) || (padapter->bDriverStopped)||(padapter->bSurpriseRemoved))
|
||||
{
|
||||
DBG_871X("padapter->bup=%d bDriverStopped=%d bSurpriseRemoved = %d\n",
|
||||
padapter->bup, padapter->bDriverStopped,padapter->bSurpriseRemoved);
|
||||
padapter->bup, padapter->bDriverStopped,padapter->bSurpriseRemoved);
|
||||
goto error_exit;
|
||||
}
|
||||
|
||||
|
||||
if (padapter)//system suspend
|
||||
{
|
||||
{
|
||||
LeaveAllPowerSaveMode(padapter);
|
||||
|
||||
DBG_871X("==> rtw_hw_suspend\n");
|
||||
|
||||
DBG_871X("==> rtw_hw_suspend\n");
|
||||
_enter_pwrlock(&pwrpriv->lock);
|
||||
pwrpriv->bips_processing = _TRUE;
|
||||
//padapter->net_closed = _TRUE;
|
||||
|
@ -792,11 +792,11 @@ int rtw_hw_suspend(_adapter *padapter )
|
|||
|
||||
//s2.
|
||||
rtw_disassoc_cmd(padapter, 500, _FALSE);
|
||||
|
||||
|
||||
//s2-2. indicate disconnect to os
|
||||
//rtw_indicate_disconnect(padapter);
|
||||
{
|
||||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||
|
||||
if (check_fwstate(pmlmepriv, _FW_LINKED))
|
||||
{
|
||||
|
@ -805,7 +805,7 @@ int rtw_hw_suspend(_adapter *padapter )
|
|||
rtw_led_control(padapter, LED_CTL_NO_LINK);
|
||||
|
||||
rtw_os_indicate_disconnect(padapter);
|
||||
|
||||
|
||||
#ifdef CONFIG_LPS
|
||||
//donnot enqueue cmd
|
||||
rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_DISCONNECT, 0);
|
||||
|
@ -819,19 +819,19 @@ int rtw_hw_suspend(_adapter *padapter )
|
|||
//s2-4.
|
||||
rtw_free_network_queue(padapter,_TRUE);
|
||||
#ifdef CONFIG_IPS
|
||||
rtw_ips_dev_unload(padapter);
|
||||
#endif
|
||||
rtw_ips_dev_unload(padapter);
|
||||
#endif
|
||||
pwrpriv->rf_pwrstate = rf_off;
|
||||
pwrpriv->bips_processing = _FALSE;
|
||||
pwrpriv->bips_processing = _FALSE;
|
||||
|
||||
_exit_pwrlock(&pwrpriv->lock);
|
||||
}
|
||||
else
|
||||
goto error_exit;
|
||||
|
||||
|
||||
_func_exit_;
|
||||
return 0;
|
||||
|
||||
|
||||
error_exit:
|
||||
DBG_871X("%s, failed\n",__func__);
|
||||
return (-1);
|
||||
|
@ -847,41 +847,41 @@ int rtw_hw_resume(_adapter *padapter)
|
|||
_func_enter_;
|
||||
|
||||
if (padapter)//system resume
|
||||
{
|
||||
{
|
||||
DBG_871X("==> rtw_hw_resume\n");
|
||||
_enter_pwrlock(&pwrpriv->lock);
|
||||
pwrpriv->bips_processing = _TRUE;
|
||||
rtw_reset_drv_sw(padapter);
|
||||
|
||||
|
||||
if (pm_netdev_open(pnetdev,_FALSE) != 0)
|
||||
{
|
||||
_exit_pwrlock(&pwrpriv->lock);
|
||||
goto error_exit;
|
||||
}
|
||||
|
||||
netif_device_attach(pnetdev);
|
||||
netif_device_attach(pnetdev);
|
||||
netif_carrier_on(pnetdev);
|
||||
|
||||
if (!netif_queue_stopped(pnetdev))
|
||||
netif_start_queue(pnetdev);
|
||||
netif_start_queue(pnetdev);
|
||||
else
|
||||
netif_wake_queue(pnetdev);
|
||||
|
||||
|
||||
pwrpriv->bkeepfwalive = _FALSE;
|
||||
pwrpriv->brfoffbyhw = _FALSE;
|
||||
|
||||
|
||||
pwrpriv->rf_pwrstate = rf_on;
|
||||
pwrpriv->bips_processing = _FALSE;
|
||||
|
||||
pwrpriv->bips_processing = _FALSE;
|
||||
|
||||
_exit_pwrlock(&pwrpriv->lock);
|
||||
}
|
||||
else
|
||||
{
|
||||
goto error_exit;
|
||||
goto error_exit;
|
||||
}
|
||||
|
||||
_func_exit_;
|
||||
|
||||
|
||||
return 0;
|
||||
error_exit:
|
||||
DBG_871X("%s, Open net dev failed\n",__func__);
|
||||
|
@ -903,7 +903,7 @@ static int rtw_suspend(struct usb_interface *pusb_intf, pm_message_t message)
|
|||
|
||||
int ret = 0;
|
||||
u32 start_time = rtw_get_current_time();
|
||||
|
||||
|
||||
_func_enter_;
|
||||
|
||||
DBG_871X("==> %s (%s:%d)\n",__func__, current->comm, current->pid);
|
||||
|
@ -921,10 +921,10 @@ static int rtw_suspend(struct usb_interface *pusb_intf, pm_message_t message)
|
|||
padapter->bup, padapter->bDriverStopped,padapter->bSurpriseRemoved);
|
||||
goto exit;
|
||||
}
|
||||
|
||||
|
||||
if (pwrpriv->bInternalAutoSuspend )
|
||||
{
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
#ifdef SUPPORT_HW_RFOFF_DETECTED
|
||||
// The FW command register update must after MAC and FW init ready.
|
||||
if ((padapter->bFWReady) && ( padapter->pwrctrlpriv.bHWPwrPindetect ) && (padapter->registrypriv.usbss_enable ))
|
||||
|
@ -936,8 +936,8 @@ static int rtw_suspend(struct usb_interface *pusb_intf, pm_message_t message)
|
|||
#endif
|
||||
#endif
|
||||
}
|
||||
pwrpriv->bInSuspend = _TRUE;
|
||||
rtw_cancel_all_timer(padapter);
|
||||
pwrpriv->bInSuspend = _TRUE;
|
||||
rtw_cancel_all_timer(padapter);
|
||||
LeaveAllPowerSaveMode(padapter);
|
||||
|
||||
_enter_pwrlock(&pwrpriv->lock);
|
||||
|
@ -972,7 +972,7 @@ static int rtw_suspend(struct usb_interface *pusb_intf, pm_message_t message)
|
|||
MAC_ARG(pmlmepriv->cur_network.network.MacAddress),
|
||||
pmlmepriv->cur_network.network.Ssid.SsidLength,
|
||||
pmlmepriv->assoc_ssid.SsidLength);
|
||||
|
||||
|
||||
pmlmepriv->to_roaming = 1;
|
||||
}
|
||||
#endif
|
||||
|
@ -998,7 +998,7 @@ static int rtw_suspend(struct usb_interface *pusb_intf, pm_message_t message)
|
|||
|
||||
if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING))
|
||||
rtw_indicate_disconnect(padapter);
|
||||
|
||||
|
||||
exit:
|
||||
DBG_871X("<=== %s return %d.............. in %dms\n", __func__
|
||||
, ret, rtw_get_passing_time_ms(start_time));
|
||||
|
@ -1014,15 +1014,15 @@ static int rtw_resume(struct usb_interface *pusb_intf)
|
|||
struct net_device *pnetdev = padapter->pnetdev;
|
||||
struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv;
|
||||
int ret = 0;
|
||||
|
||||
|
||||
if (pwrpriv->bInternalAutoSuspend ){
|
||||
ret = rtw_resume_process(padapter);
|
||||
ret = rtw_resume_process(padapter);
|
||||
} else {
|
||||
#ifdef CONFIG_RESUME_IN_WORKQUEUE
|
||||
rtw_resume_in_workqueue(pwrpriv);
|
||||
#elif defined(CONFIG_HAS_EARLYSUSPEND) || defined(CONFIG_ANDROID_POWER)
|
||||
#ifdef CONFIG_WOWLAN
|
||||
if (rtw_is_earlysuspend_registered(pwrpriv) &&
|
||||
if (rtw_is_earlysuspend_registered(pwrpriv) &&
|
||||
!padapter->pwrctrlpriv.wowlan_mode) {
|
||||
#else
|
||||
if (rtw_is_earlysuspend_registered(pwrpriv)) {
|
||||
|
@ -1036,7 +1036,7 @@ static int rtw_resume(struct usb_interface *pusb_intf)
|
|||
ret = rtw_resume_process(padapter);
|
||||
#endif //CONFIG_RESUME_IN_WORKQUEUE
|
||||
}
|
||||
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
@ -1070,7 +1070,7 @@ int rtw_resume_process(_adapter *padapter)
|
|||
#else
|
||||
DBG_871X("...pm_usage_cnt(%d).....\n", adapter_to_dvobj(padapter)->pusbintf->pm_usage_cnt);
|
||||
pm_cnt = adapter_to_dvobj(padapter)->pusbintf->pm_usage_cnt;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
DBG_871X("pwrpriv->bAutoResume (%x)\n",pwrpriv->bAutoResume );
|
||||
if ( _TRUE == pwrpriv->bAutoResume ){
|
||||
|
@ -1088,7 +1088,7 @@ int rtw_resume_process(_adapter *padapter)
|
|||
if (pm_netdev_open(pnetdev,_TRUE) != 0)
|
||||
goto exit;
|
||||
|
||||
netif_device_attach(pnetdev);
|
||||
netif_device_attach(pnetdev);
|
||||
netif_carrier_on(pnetdev);
|
||||
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
|
@ -1123,9 +1123,9 @@ int rtw_resume_process(_adapter *padapter)
|
|||
if ( (_WEP40_ == padapter->securitypriv.dot11PrivacyAlgrthm) ||
|
||||
(_WEP104_ == padapter->securitypriv.dot11PrivacyAlgrthm))
|
||||
{
|
||||
sint keyid;
|
||||
|
||||
for (keyid=0;keyid<4;keyid++){
|
||||
sint keyid;
|
||||
|
||||
for (keyid=0;keyid<4;keyid++){
|
||||
if (pwrpriv->wepkeymask & BIT(keyid)) {
|
||||
if (keyid == padapter->securitypriv.dot11PrivacyKeyIndex)
|
||||
rtw_set_key(padapter,&padapter->securitypriv, keyid, 1);
|
||||
|
@ -1142,11 +1142,11 @@ int rtw_resume_process(_adapter *padapter)
|
|||
if ( padapter->pid[1]!=0) {
|
||||
DBG_871X("pid[1]:%d\n",padapter->pid[1]);
|
||||
rtw_signal_process(padapter->pid[1], SIGUSR2);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_LAYER2_ROAMING_RESUME
|
||||
rtw_roaming(padapter, NULL);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
ret = 0;
|
||||
exit:
|
||||
|
@ -1157,35 +1157,35 @@ exit:
|
|||
pwrpriv->bInSuspend = _FALSE;
|
||||
DBG_871X("<=== %s return %d.............. in %dms\n", __func__
|
||||
, ret, rtw_get_passing_time_ms(start_time));
|
||||
|
||||
|
||||
_func_exit_;
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_AUTOSUSPEND
|
||||
void autosuspend_enter(_adapter* padapter)
|
||||
void autosuspend_enter(_adapter* padapter)
|
||||
{
|
||||
struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv;
|
||||
struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
|
||||
|
||||
|
||||
DBG_871X("==>autosuspend_enter...........\n");
|
||||
|
||||
pwrpriv->bInternalAutoSuspend = _TRUE;
|
||||
pwrpriv->bips_processing = _TRUE;
|
||||
|
||||
|
||||
if (rf_off == pwrpriv->change_rfpwrstate )
|
||||
{
|
||||
{
|
||||
#ifndef CONFIG_BT_COEXIST
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35))
|
||||
usb_enable_autosuspend(dvobj->pusbdev);
|
||||
#else
|
||||
dvobj->pusbdev->autosuspend_disabled = 0;//autosuspend disabled by the user
|
||||
dvobj->pusbdev->autosuspend_disabled = 0;//autosuspend disabled by the user
|
||||
#endif
|
||||
|
||||
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,33))
|
||||
usb_autopm_put_interface(dvobj->pusbintf);
|
||||
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,20))
|
||||
usb_autopm_put_interface(dvobj->pusbintf);
|
||||
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,20))
|
||||
usb_autopm_enable(dvobj->pusbintf);
|
||||
#else
|
||||
usb_autosuspend_device(dvobj->pusbdev, 1);
|
||||
|
@ -1195,12 +1195,12 @@ void autosuspend_enter(_adapter* padapter)
|
|||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35))
|
||||
usb_enable_autosuspend(dvobj->pusbdev);
|
||||
#else
|
||||
dvobj->pusbdev->autosuspend_disabled = 0;//autosuspend disabled by the user
|
||||
dvobj->pusbdev->autosuspend_disabled = 0;//autosuspend disabled by the user
|
||||
#endif
|
||||
|
||||
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,33))
|
||||
usb_autopm_put_interface(dvobj->pusbintf);
|
||||
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,20))
|
||||
usb_autopm_put_interface(dvobj->pusbintf);
|
||||
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,20))
|
||||
usb_autopm_enable(dvobj->pusbintf);
|
||||
#else
|
||||
usb_autosuspend_device(dvobj->pusbdev, 1);
|
||||
|
@ -1217,7 +1217,7 @@ void autosuspend_enter(_adapter* padapter)
|
|||
#else
|
||||
DBG_871X("...pm_usage_cnt(%d).....\n", dvobj->pusbintf->pm_usage_cnt);
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
int autoresume_enter(_adapter* padapter)
|
||||
{
|
||||
|
@ -1227,21 +1227,21 @@ int autoresume_enter(_adapter* padapter)
|
|||
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
|
||||
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
|
||||
struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);
|
||||
|
||||
|
||||
DBG_871X("====> autoresume_enter\n");
|
||||
|
||||
|
||||
if (rf_off == pwrpriv->rf_pwrstate )
|
||||
{
|
||||
pwrpriv->ps_flag = _FALSE;
|
||||
#ifndef CONFIG_BT_COEXIST
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,33))
|
||||
if (usb_autopm_get_interface(dvobj->pusbintf) < 0)
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,33))
|
||||
if (usb_autopm_get_interface(dvobj->pusbintf) < 0)
|
||||
{
|
||||
DBG_871X( "can't get autopm: %d\n", result);
|
||||
result = _FAIL;
|
||||
goto error_exit;
|
||||
}
|
||||
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,20))
|
||||
}
|
||||
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,20))
|
||||
usb_autopm_disable(dvobj->pusbintf);
|
||||
#else
|
||||
usb_autoresume_device(dvobj->pusbdev, 1);
|
||||
|
@ -1251,18 +1251,18 @@ int autoresume_enter(_adapter* padapter)
|
|||
DBG_871X("...pm_usage_cnt(%d).....\n", atomic_read(&(dvobj->pusbintf->pm_usage_cnt)));
|
||||
#else
|
||||
DBG_871X("...pm_usage_cnt(%d).....\n", dvobj->pusbintf->pm_usage_cnt);
|
||||
#endif
|
||||
#endif
|
||||
#else //#ifndef CONFIG_BT_COEXIST
|
||||
pwrpriv->bAutoResume=_TRUE;
|
||||
pwrpriv->bAutoResume=_TRUE;
|
||||
if (0==pwrpriv->autopm_cnt){
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,33))
|
||||
if (usb_autopm_get_interface(dvobj->pusbintf) < 0)
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,33))
|
||||
if (usb_autopm_get_interface(dvobj->pusbintf) < 0)
|
||||
{
|
||||
DBG_871X( "can't get autopm: %d\n", result);
|
||||
result = _FAIL;
|
||||
goto error_exit;
|
||||
}
|
||||
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,20))
|
||||
}
|
||||
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,20))
|
||||
usb_autopm_disable(dvobj->pusbintf);
|
||||
#else
|
||||
usb_autoresume_device(dvobj->pusbdev, 1);
|
||||
|
@ -1271,15 +1271,15 @@ int autoresume_enter(_adapter* padapter)
|
|||
DBG_871X("...pm_usage_cnt(%d).....\n", atomic_read(&(dvobj->pusbintf->pm_usage_cnt)));
|
||||
#else
|
||||
DBG_871X("...pm_usage_cnt(%d).....\n", dvobj->pusbintf->pm_usage_cnt);
|
||||
#endif
|
||||
#endif
|
||||
pwrpriv->autopm_cnt++;
|
||||
}
|
||||
else
|
||||
DBG_871X("0!=pwrpriv->autopm_cnt[%d] didn't usb_autopm_get_interface\n",pwrpriv->autopm_cnt);
|
||||
#endif //#ifndef CONFIG_BT_COEXIST
|
||||
}
|
||||
}
|
||||
DBG_871X("<==== autoresume_enter\n");
|
||||
error_exit:
|
||||
error_exit:
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -1317,13 +1317,13 @@ _adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj,
|
|||
}
|
||||
padapter->dvobj = dvobj;
|
||||
dvobj->if1 = padapter;
|
||||
|
||||
|
||||
padapter->bDriverStopped=_TRUE;
|
||||
|
||||
#if defined(CONFIG_CONCURRENT_MODE) || defined(CONFIG_DUALMAC_CONCURRENT)
|
||||
//set adapter_type/iface type for primary padapter
|
||||
padapter->isprimary = _TRUE;
|
||||
padapter->adapter_type = PRIMARY_ADAPTER;
|
||||
padapter->adapter_type = PRIMARY_ADAPTER;
|
||||
#ifndef CONFIG_HWPORT_SWAP
|
||||
padapter->iface_type = IFACE_PORT0;
|
||||
#else
|
||||
|
@ -1377,7 +1377,7 @@ _adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj,
|
|||
rtw_hal_chip_configure(padapter);
|
||||
|
||||
//step read efuse/eeprom data and get mac_addr
|
||||
rtw_hal_read_chip_info(padapter);
|
||||
rtw_hal_read_chip_info(padapter);
|
||||
|
||||
//step 5.
|
||||
if (rtw_init_drv_sw(padapter) ==_FAIL) {
|
||||
|
@ -1390,7 +1390,7 @@ _adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj,
|
|||
if (padapter->pwrctrlpriv.bSupportRemoteWakeup)
|
||||
{
|
||||
dvobj->pusbdev->do_remote_wakeup=1;
|
||||
pusb_intf->needs_remote_wakeup = 1;
|
||||
pusb_intf->needs_remote_wakeup = 1;
|
||||
device_init_wakeup(&pusb_intf->dev, 1);
|
||||
DBG_871X("\n padapter->pwrctrlpriv.bSupportRemoteWakeup~~~~~~\n");
|
||||
DBG_871X("\n padapter->pwrctrlpriv.bSupportRemoteWakeup~~~[%d]~~~\n",device_may_wakeup(&pusb_intf->dev));
|
||||
|
@ -1401,11 +1401,11 @@ _adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj,
|
|||
#ifdef CONFIG_AUTOSUSPEND
|
||||
if ( padapter->registrypriv.power_mgnt != PS_MODE_ACTIVE )
|
||||
{
|
||||
if (padapter->registrypriv.usbss_enable ){ /* autosuspend (2s delay) */
|
||||
if (padapter->registrypriv.usbss_enable ){ /* autosuspend (2s delay) */
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,38))
|
||||
dvobj->pusbdev->dev.power.autosuspend_delay = 0 * HZ;//15 * HZ; idle-delay time
|
||||
dvobj->pusbdev->dev.power.autosuspend_delay = 0 * HZ;//15 * HZ; idle-delay time
|
||||
#else
|
||||
dvobj->pusbdev->autosuspend_delay = 0 * HZ;//15 * HZ; idle-delay time
|
||||
dvobj->pusbdev->autosuspend_delay = 0 * HZ;//15 * HZ; idle-delay time
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35))
|
||||
|
@ -1421,13 +1421,13 @@ _adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj,
|
|||
DBG_871X("%s...pm_usage_cnt(%d).....\n",__func__,atomic_read(&(dvobj->pusbintf ->pm_usage_cnt)));
|
||||
#else
|
||||
DBG_871X("%s...pm_usage_cnt(%d).....\n",__func__,dvobj->pusbintf ->pm_usage_cnt);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
//2012-07-11 Move here to prevent the 8723AS-VAU BT auto suspend influence
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,33))
|
||||
if (usb_autopm_get_interface(pusb_intf) < 0)
|
||||
//2012-07-11 Move here to prevent the 8723AS-VAU BT auto suspend influence
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,33))
|
||||
if (usb_autopm_get_interface(pusb_intf) < 0)
|
||||
{
|
||||
DBG_871X( "can't get autopm:\n");
|
||||
}
|
||||
|
@ -1435,13 +1435,13 @@ _adapter *rtw_usb_if1_init(struct dvobj_priv *dvobj,
|
|||
#ifdef CONFIG_BT_COEXIST
|
||||
padapter->pwrctrlpriv.autopm_cnt=1;
|
||||
#endif
|
||||
|
||||
|
||||
// alloc dev name after read efuse.
|
||||
rtw_init_netdev_name(pnetdev, padapter->registrypriv.ifname);
|
||||
rtw_macaddr_cfg(padapter->eeprompriv.mac_addr);
|
||||
rtw_init_wifidirect_addrs(padapter, padapter->eeprompriv.mac_addr, padapter->eeprompriv.mac_addr);
|
||||
_rtw_memcpy(pnetdev->dev_addr, padapter->eeprompriv.mac_addr, ETH_ALEN);
|
||||
DBG_871X("MAC Address from pnetdev->dev_addr= " MAC_FMT "\n", MAC_ARG(pnetdev->dev_addr));
|
||||
DBG_871X("MAC Address from pnetdev->dev_addr= " MAC_FMT "\n", MAC_ARG(pnetdev->dev_addr));
|
||||
|
||||
#ifdef CONFIG_HOSTAPD_MLME
|
||||
hostapd_mode_init(padapter);
|
||||
|
@ -1539,8 +1539,8 @@ static void rtw_usb_if1_deinit(_adapter *if1)
|
|||
#ifdef CONFIG_BT_COEXIST
|
||||
if (1 == if1->pwrctrlpriv.autopm_cnt){
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,33))
|
||||
usb_autopm_put_interface(adapter_to_dvobj(if1)->pusbintf);
|
||||
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,20))
|
||||
usb_autopm_put_interface(adapter_to_dvobj(if1)->pusbintf);
|
||||
#elif (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,20))
|
||||
usb_autopm_enable(adapter_to_dvobj(if1)->pusbintf);
|
||||
#else
|
||||
usb_autosuspend_device(adapter_to_dvobj(if1)->pusbdev, 1);
|
||||
|
@ -1567,11 +1567,11 @@ static void dump_usb_interface(struct usb_interface *usb_intf)
|
|||
u8 val8;
|
||||
|
||||
struct usb_device *udev = interface_to_usbdev(usb_intf);
|
||||
struct usb_device_descriptor *dev_desc = &udev->descriptor;
|
||||
|
||||
struct usb_device_descriptor *dev_desc = &udev->descriptor;
|
||||
|
||||
struct usb_host_config *act_conf = udev->actconfig;
|
||||
struct usb_config_descriptor *act_conf_desc = &act_conf->desc;
|
||||
|
||||
|
||||
struct usb_host_interface *host_iface;
|
||||
struct usb_interface_descriptor *iface_desc;
|
||||
struct usb_host_endpoint *host_endp;
|
||||
|
@ -1594,7 +1594,7 @@ static void dump_usb_interface(struct usb_interface *usb_intf)
|
|||
DBG_871X("iSerialNumber:0x%02x\n", dev_desc->iSerialNumber);
|
||||
DBG_871X("bNumConfigurations:%u\n", dev_desc->bNumConfigurations);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if 1 /* The acting usb_config_descriptor */
|
||||
DBG_871X("\nact_conf_desc:%p\n", act_conf_desc);
|
||||
|
@ -1667,7 +1667,7 @@ static void dump_usb_interface(struct usb_interface *usb_intf)
|
|||
//pdvobjpriv->ep_num[i] = RT_usb_endpoint_num(pendp_desc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//DBG_871X("nr_endpoint=%d, in_num=%d, out_num=%d\n\n", pdvobjpriv->nr_endpoint, pdvobjpriv->RtNumInPipes, pdvobjpriv->RtNumOutPipes);
|
||||
#endif
|
||||
|
||||
|
@ -1710,10 +1710,10 @@ static int rtw_drv_init(struct usb_interface *pusb_intf, const struct usb_device
|
|||
#ifdef CONFIG_CONCURRENT_MODE
|
||||
if ((if2 = rtw_drv_if2_init(if1, NULL, usb_set_intf_ops)) == NULL) {
|
||||
goto free_if1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_INTEL_PROXIM
|
||||
#ifdef CONFIG_INTEL_PROXIM
|
||||
rtw_sw_export=if1;
|
||||
#endif
|
||||
|
||||
|
@ -1791,7 +1791,7 @@ _func_enter_;
|
|||
DBG_871X("-r871xu_dev_remove, done\n");
|
||||
|
||||
|
||||
#ifdef CONFIG_INTEL_PROXIM
|
||||
#ifdef CONFIG_INTEL_PROXIM
|
||||
rtw_sw_export=NULL;
|
||||
#endif
|
||||
|
||||
|
@ -1803,7 +1803,7 @@ _func_exit_;
|
|||
return;
|
||||
|
||||
}
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
|
||||
extern int console_suspend_enabled;
|
||||
#endif
|
||||
|
||||
|
@ -1819,16 +1819,16 @@ static int __init rtw_drv_entry(void)
|
|||
#ifdef CONFIG_PLATFORM_ARM_SUNxI
|
||||
#ifndef CONFIG_RTL8723A
|
||||
int ret = 0;
|
||||
/* ----------get usb_wifi_usbc_num------------- */
|
||||
ret = script_parser_fetch("usb_wifi_para", "usb_wifi_usbc_num", (int *)&usb_wifi_host, 64);
|
||||
if (ret != 0){
|
||||
DBG_8192C("ERR: script_parser_fetch usb_wifi_usbc_num failed\n");
|
||||
ret = -ENOMEM;
|
||||
return ret;
|
||||
}
|
||||
DBG_8192C("sw_usb_enable_hcd: usbc_num = %d\n", usb_wifi_host);
|
||||
/* ----------get usb_wifi_usbc_num------------- */
|
||||
ret = script_parser_fetch("usb_wifi_para", "usb_wifi_usbc_num", (int *)&usb_wifi_host, 64);
|
||||
if (ret != 0){
|
||||
DBG_8192C("ERR: script_parser_fetch usb_wifi_usbc_num failed\n");
|
||||
ret = -ENOMEM;
|
||||
return ret;
|
||||
}
|
||||
DBG_8192C("sw_usb_enable_hcd: usbc_num = %d\n", usb_wifi_host);
|
||||
sw_usb_enable_hcd(usb_wifi_host);
|
||||
#endif //CONFIG_RTL8723A
|
||||
#endif //CONFIG_RTL8723A
|
||||
#endif //CONFIG_PLATFORM_ARM_SUNxI
|
||||
|
||||
|
||||
|
@ -1836,8 +1836,8 @@ static int __init rtw_drv_entry(void)
|
|||
|
||||
DBG_871X(DRV_NAME " driver version=%s\n", DRIVERVERSION);
|
||||
DBG_871X("build time: %s %s\n", __DATE__, __TIME__);
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24))
|
||||
//console_suspend_enabled=0;
|
||||
#endif
|
||||
|
||||
|
@ -1875,7 +1875,7 @@ static void __exit rtw_drv_halt(void)
|
|||
#ifndef CONFIG_RTL8723A
|
||||
DBG_8192C("sw_usb_disable_hcd: usbc_num = %d\n", usb_wifi_host);
|
||||
sw_usb_disable_hcd(usb_wifi_host);
|
||||
#endif //ifndef CONFIG_RTL8723A
|
||||
#endif //ifndef CONFIG_RTL8723A
|
||||
#endif //CONFIG_PLATFORM_ARM_SUNxI
|
||||
|
||||
DBG_871X("-rtw_drv_halt\n");
|
||||
|
@ -1885,11 +1885,10 @@ static void __exit rtw_drv_halt(void)
|
|||
module_init(rtw_drv_entry);
|
||||
module_exit(rtw_drv_halt);
|
||||
|
||||
#ifdef CONFIG_INTEL_PROXIM
|
||||
#ifdef CONFIG_INTEL_PROXIM
|
||||
_adapter *rtw_usb_get_sw_pointer(void)
|
||||
{
|
||||
return rtw_sw_export;
|
||||
}
|
||||
EXPORT_SYMBOL(rtw_usb_get_sw_pointer);
|
||||
#endif //CONFIG_INTEL_PROXIM
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,7 +1,7 @@
|
|||
/******************************************************************************
|
||||
*
|
||||
* Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of version 2 of the GNU General Public License as
|
||||
* published by the Free Software Foundation.
|
||||
|
@ -45,28 +45,28 @@ _func_enter_;
|
|||
pfile->pkt_len = pfile->buf_len = pktptr->len;
|
||||
|
||||
pfile->cur_buffer = pfile->buf_start ;
|
||||
|
||||
|
||||
_func_exit_;
|
||||
}
|
||||
|
||||
uint _rtw_pktfile_read (struct pkt_file *pfile, u8 *rmem, uint rlen)
|
||||
{
|
||||
{
|
||||
uint len = 0;
|
||||
|
||||
|
||||
_func_enter_;
|
||||
|
||||
len = rtw_remainder_len(pfile);
|
||||
len = (rlen > len)? len: rlen;
|
||||
len = (rlen > len)? len: rlen;
|
||||
|
||||
if (rmem)
|
||||
skb_copy_bits(pfile->pkt, pfile->buf_len-pfile->pkt_len, rmem, len);
|
||||
|
||||
pfile->cur_addr += len;
|
||||
pfile->pkt_len -= len;
|
||||
|
||||
_func_exit_;
|
||||
|
||||
return len;
|
||||
_func_exit_;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
sint rtw_endofpktfile(struct pkt_file *pfile)
|
||||
|
@ -89,10 +89,10 @@ void rtw_set_tx_chksum_offload(_pkt *pkt, struct pkt_attrib *pattrib)
|
|||
#ifdef CONFIG_TCP_CSUM_OFFLOAD_TX
|
||||
struct sk_buff *skb = (struct sk_buff *)pkt;
|
||||
pattrib->hw_tcp_csum = 0;
|
||||
|
||||
|
||||
if (skb->ip_summed == CHECKSUM_PARTIAL) {
|
||||
if (skb_shinfo(skb)->nr_frags == 0)
|
||||
{
|
||||
{
|
||||
const struct iphdr *ip = ip_hdr(skb);
|
||||
if (ip->protocol == IPPROTO_TCP) {
|
||||
// TCP checksum offload by HW
|
||||
|
@ -101,7 +101,7 @@ void rtw_set_tx_chksum_offload(_pkt *pkt, struct pkt_attrib *pattrib)
|
|||
//skb_checksum_help(skb);
|
||||
} else if (ip->protocol == IPPROTO_UDP) {
|
||||
//DBG_871X("CHECKSUM_PARTIAL UDP\n");
|
||||
#if 1
|
||||
#if 1
|
||||
skb_checksum_help(skb);
|
||||
#else
|
||||
// Set UDP checksum = 0 to skip checksum check
|
||||
|
@ -115,11 +115,11 @@ void rtw_set_tx_chksum_offload(_pkt *pkt, struct pkt_attrib *pattrib)
|
|||
}
|
||||
else { // IP fragmentation case
|
||||
DBG_871X("%s-%d nr_frags != 0, using skb_checksum_help(skb);!!\n", __func__, __LINE__);
|
||||
skb_checksum_help(skb);
|
||||
}
|
||||
skb_checksum_help(skb);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
int rtw_os_xmit_resource_alloc(_adapter *padapter, struct xmit_buf *pxmitbuf,u32 alloc_sz)
|
||||
|
@ -135,7 +135,7 @@ int rtw_os_xmit_resource_alloc(_adapter *padapter, struct xmit_buf *pxmitbuf,u32
|
|||
if (pxmitbuf->pallocated_buf == NULL)
|
||||
return _FAIL;
|
||||
#else // CONFIG_USE_USB_BUFFER_ALLOC_TX
|
||||
|
||||
|
||||
pxmitbuf->pallocated_buf = rtw_zmalloc(alloc_sz);
|
||||
if (pxmitbuf->pallocated_buf == NULL)
|
||||
{
|
||||
|
@ -148,15 +148,15 @@ int rtw_os_xmit_resource_alloc(_adapter *padapter, struct xmit_buf *pxmitbuf,u32
|
|||
#endif // CONFIG_USE_USB_BUFFER_ALLOC_TX
|
||||
|
||||
for (i=0; i<8; i++)
|
||||
{
|
||||
pxmitbuf->pxmit_urb[i] = usb_alloc_urb(0, GFP_KERNEL);
|
||||
if (pxmitbuf->pxmit_urb[i] == NULL)
|
||||
{
|
||||
DBG_871X("pxmitbuf->pxmit_urb[i]==NULL");
|
||||
return _FAIL;
|
||||
}
|
||||
|
||||
}
|
||||
{
|
||||
pxmitbuf->pxmit_urb[i] = usb_alloc_urb(0, GFP_KERNEL);
|
||||
if (pxmitbuf->pxmit_urb[i] == NULL)
|
||||
{
|
||||
DBG_871X("pxmitbuf->pxmit_urb[i]==NULL");
|
||||
return _FAIL;
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
#if defined(CONFIG_PCI_HCI) || defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)
|
||||
pxmitbuf->pallocated_buf = rtw_zmalloc(alloc_sz);
|
||||
|
@ -168,7 +168,7 @@ int rtw_os_xmit_resource_alloc(_adapter *padapter, struct xmit_buf *pxmitbuf,u32
|
|||
pxmitbuf->pbuf = (u8 *)N_BYTE_ALIGMENT((SIZE_PTR)(pxmitbuf->pallocated_buf), XMITBUF_ALIGN_SZ);
|
||||
#endif
|
||||
|
||||
return _SUCCESS;
|
||||
return _SUCCESS;
|
||||
}
|
||||
|
||||
void rtw_os_xmit_resource_free(_adapter *padapter, struct xmit_buf *pxmitbuf,u32 free_sz)
|
||||
|
@ -235,12 +235,12 @@ void rtw_os_xmit_complete(_adapter *padapter, struct xmit_frame *pxframe)
|
|||
{
|
||||
if (pxframe->pkt)
|
||||
{
|
||||
//RT_TRACE(_module_xmit_osdep_c_,_drv_err_,("linux : rtw_os_xmit_complete, dev_kfree_skb()\n"));
|
||||
//RT_TRACE(_module_xmit_osdep_c_,_drv_err_,("linux : rtw_os_xmit_complete, dev_kfree_skb()\n"));
|
||||
|
||||
//dev_kfree_skb_any(pxframe->pkt);
|
||||
//dev_kfree_skb_any(pxframe->pkt);
|
||||
rtw_os_pkt_complete(padapter, pxframe->pkt);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
pxframe->pkt = NULL;
|
||||
}
|
||||
|
@ -273,7 +273,7 @@ void rtw_os_xmit_schedule(_adapter *padapter)
|
|||
|
||||
_enter_critical_bh(&pxmitpriv->lock, &irqL);
|
||||
|
||||
if (rtw_txframes_pending(padapter))
|
||||
if (rtw_txframes_pending(padapter))
|
||||
{
|
||||
tasklet_hi_schedule(&pxmitpriv->xmit_tasklet);
|
||||
}
|
||||
|
@ -324,27 +324,27 @@ int rtw_mlcst2unicst(_adapter *padapter, struct sk_buff *skb)
|
|||
_enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
|
||||
phead = &pstapriv->asoc_list;
|
||||
plist = get_next(phead);
|
||||
|
||||
|
||||
//free sta asoc_queue
|
||||
while ((rtw_end_of_queue_search(phead, plist)) == _FALSE)
|
||||
{
|
||||
while ((rtw_end_of_queue_search(phead, plist)) == _FALSE)
|
||||
{
|
||||
psta = LIST_CONTAINOR(plist, struct sta_info, asoc_list);
|
||||
|
||||
|
||||
plist = get_next(plist);
|
||||
|
||||
/* avoid come from STA1 and send back STA1 */
|
||||
if (!memcmp(psta->hwaddr, &skb->data[6], 6))
|
||||
continue;
|
||||
/* avoid come from STA1 and send back STA1 */
|
||||
if (!memcmp(psta->hwaddr, &skb->data[6], 6))
|
||||
continue;
|
||||
|
||||
newskb = skb_copy(skb, GFP_ATOMIC);
|
||||
|
||||
|
||||
if (newskb) {
|
||||
memcpy(newskb->data, psta->hwaddr, 6);
|
||||
res = rtw_xmit(padapter, &newskb);
|
||||
if (res < 0) {
|
||||
DBG_871X("%s()-%d: rtw_xmit() return error!\n", __func__, __LINE__);
|
||||
pxmitpriv->tx_drop++;
|
||||
dev_kfree_skb_any(newskb);
|
||||
dev_kfree_skb_any(newskb);
|
||||
} else
|
||||
pxmitpriv->tx_pkts++;
|
||||
} else {
|
||||
|
@ -371,7 +371,7 @@ int rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev)
|
|||
#ifdef CONFIG_TX_MCAST2UNI
|
||||
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
|
||||
extern int rtw_mc2u_disable;
|
||||
#endif // CONFIG_TX_MCAST2UNI
|
||||
#endif // CONFIG_TX_MCAST2UNI
|
||||
s32 res = 0;
|
||||
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35))
|
||||
u16 queue;
|
||||
|
@ -408,8 +408,8 @@ _func_enter_;
|
|||
//DBG_871X("Stop M2U(%d, %d)! ", pxmitpriv->free_xmitframe_cnt, pxmitpriv->free_xmitbuf_cnt);
|
||||
//DBG_871X("!m2u );
|
||||
}
|
||||
}
|
||||
#endif // CONFIG_TX_MCAST2UNI
|
||||
}
|
||||
#endif // CONFIG_TX_MCAST2UNI
|
||||
|
||||
res = rtw_xmit(padapter, &pkt);
|
||||
if (res < 0) {
|
||||
|
@ -434,4 +434,3 @@ _func_exit_;
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue