mirror of
https://github.com/Mange/rtl8192eu-linux-driver
synced 2025-12-10 00:04:17 +00:00
Updated to v4.3.8_12406.20140929
This commit is contained in:
@@ -150,7 +150,6 @@ u8 *rtw_set_ie
|
||||
uint *frlen //frame length
|
||||
)
|
||||
{
|
||||
_func_enter_;
|
||||
*pbuf = (u8)index;
|
||||
|
||||
*(pbuf + 1) = (u8)len;
|
||||
@@ -161,7 +160,6 @@ _func_enter_;
|
||||
*frlen = *frlen + (len + 2);
|
||||
|
||||
return (pbuf + len + 2);
|
||||
_func_exit_;
|
||||
}
|
||||
|
||||
inline u8 *rtw_set_ie_ch_switch(u8 *buf, u32 *buf_len, u8 ch_switch_mode,
|
||||
@@ -1112,7 +1110,7 @@ static int rtw_ieee802_11_parse_vendor_specific(u8 *pos, uint elen,
|
||||
elems->wme_tspec_len = elen;
|
||||
break;
|
||||
default:
|
||||
DBG_871X("unknown WME "
|
||||
DBG_871X_LEVEL(_drv_warning_, "unknown WME "
|
||||
"information element ignored "
|
||||
"(subtype=%d len=%lu)\n",
|
||||
pos[4], (unsigned long) elen);
|
||||
@@ -1125,7 +1123,7 @@ static int rtw_ieee802_11_parse_vendor_specific(u8 *pos, uint elen,
|
||||
elems->wps_ie_len = elen;
|
||||
break;
|
||||
default:
|
||||
DBG_871X("Unknown Microsoft "
|
||||
DBG_871X_LEVEL(_drv_warning_, "Unknown Microsoft "
|
||||
"information element ignored "
|
||||
"(type=%d len=%lu)\n",
|
||||
pos[3], (unsigned long) elen);
|
||||
@@ -1140,7 +1138,7 @@ static int rtw_ieee802_11_parse_vendor_specific(u8 *pos, uint elen,
|
||||
elems->vendor_ht_cap_len = elen;
|
||||
break;
|
||||
default:
|
||||
DBG_871X("Unknown Broadcom "
|
||||
DBG_871X_LEVEL(_drv_warning_, "Unknown Broadcom "
|
||||
"information element ignored "
|
||||
"(type=%d len=%lu)\n",
|
||||
pos[3], (unsigned long) elen);
|
||||
@@ -1149,7 +1147,7 @@ static int rtw_ieee802_11_parse_vendor_specific(u8 *pos, uint elen,
|
||||
break;
|
||||
|
||||
default:
|
||||
DBG_871X("unknown vendor specific information "
|
||||
DBG_871X_LEVEL(_drv_warning_, "unknown vendor specific information "
|
||||
"element ignored (vendor OUI %02x:%02x:%02x "
|
||||
"len=%lu)\n",
|
||||
pos[0], pos[1], pos[2], (unsigned long) elen);
|
||||
@@ -1290,9 +1288,10 @@ ParseRes rtw_ieee802_11_parse_elems(u8 *start, uint len,
|
||||
unknown++;
|
||||
if (!show_errors)
|
||||
break;
|
||||
DBG_871X("IEEE 802.11 element parse "
|
||||
"ignored unknown element (id=%d elen=%d)\n",
|
||||
id, elen);
|
||||
DBG_871X_LEVEL(_drv_warning_,
|
||||
"IEEE 802.11 element parse "
|
||||
"ignored unknown element (id=%d elen=%d)\n",
|
||||
id, elen);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1387,21 +1386,56 @@ void rtw_macaddr_cfg(u8 *mac_addr)
|
||||
DBG_871X("rtw_macaddr_cfg MAC Address = "MAC_FMT"\n", MAC_ARG(mac_addr));
|
||||
}
|
||||
|
||||
void dump_ies(u8 *buf, u32 buf_len)
|
||||
#ifdef CONFIG_80211N_HT
|
||||
void dump_ht_cap_ie_content(void *sel, u8 *buf, u32 buf_len)
|
||||
{
|
||||
if (buf_len != 26) {
|
||||
DBG_871X_SEL_NL(sel, "Invalid HT capability IE len:%d != %d\n", buf_len, 26);
|
||||
return;
|
||||
}
|
||||
|
||||
DBG_871X_SEL_NL(sel, "HT Capabilities Info:%02x%02x\n", *(buf), *(buf+1));
|
||||
DBG_871X_SEL_NL(sel, "A-MPDU Parameters:"HT_AMPDU_PARA_FMT"\n"
|
||||
, HT_AMPDU_PARA_ARG(HT_CAP_ELE_AMPDU_PARA(buf)));
|
||||
DBG_871X_SEL_NL(sel, "Supported MCS Set:"HT_SUP_MCS_SET_FMT"\n"
|
||||
, HT_SUP_MCS_SET_ARG(HT_CAP_ELE_SUP_MCS_SET(buf)));
|
||||
}
|
||||
|
||||
void dump_ht_cap_ie(void *sel, u8 *ie, u32 ie_len)
|
||||
{
|
||||
u8* pos = (u8*)ie;
|
||||
u16 id;
|
||||
u16 len;
|
||||
|
||||
u8 *ht_cap_ie;
|
||||
sint ht_cap_ielen;
|
||||
|
||||
ht_cap_ie = rtw_get_ie(ie, _HT_CAPABILITY_IE_, &ht_cap_ielen, ie_len);
|
||||
if(!ie || ht_cap_ie != ie)
|
||||
return;
|
||||
|
||||
dump_ht_cap_ie_content(sel, ht_cap_ie+2, ht_cap_ielen);
|
||||
}
|
||||
#endif /* CONFIG_80211N_HT */
|
||||
|
||||
void dump_ies(void *sel, u8 *buf, u32 buf_len)
|
||||
{
|
||||
u8* pos = (u8*)buf;
|
||||
u8 id, len;
|
||||
|
||||
while(pos-buf<=buf_len){
|
||||
while(pos-buf+1<buf_len){
|
||||
id = *pos;
|
||||
len = *(pos+1);
|
||||
|
||||
DBG_871X("%s ID:%u, LEN:%u\n", __FUNCTION__, id, len);
|
||||
dump_wps_ie(pos, len);
|
||||
DBG_871X_SEL_NL(sel, "%s ID:%u, LEN:%u\n", __FUNCTION__, id, len);
|
||||
#ifdef CONFIG_80211N_HT
|
||||
dump_ht_cap_ie(sel, pos, len);
|
||||
#endif
|
||||
dump_wps_ie(sel, pos, len);
|
||||
#ifdef CONFIG_P2P
|
||||
dump_p2p_ie(pos, len);
|
||||
dump_p2p_ie(sel, pos, len);
|
||||
#ifdef CONFIG_WFD
|
||||
dump_wfd_ie(pos, len);
|
||||
dump_wfd_ie(sel, pos, len);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -1409,7 +1443,7 @@ void dump_ies(u8 *buf, u32 buf_len)
|
||||
}
|
||||
}
|
||||
|
||||
void dump_wps_ie(u8 *ie, u32 ie_len)
|
||||
void dump_wps_ie(void *sel, u8 *ie, u32 ie_len)
|
||||
{
|
||||
u8* pos = (u8*)ie;
|
||||
u16 id;
|
||||
@@ -1427,7 +1461,7 @@ void dump_wps_ie(u8 *ie, u32 ie_len)
|
||||
id = RTW_GET_BE16(pos);
|
||||
len = RTW_GET_BE16(pos + 2);
|
||||
|
||||
DBG_871X("%s ID:0x%04x, LEN:%u\n", __FUNCTION__, id, len);
|
||||
DBG_871X_SEL_NL(sel, "%s ID:0x%04x, LEN:%u\n", __FUNCTION__, id, len);
|
||||
|
||||
pos+=(4+len);
|
||||
}
|
||||
@@ -1505,7 +1539,7 @@ int rtw_p2p_merge_ies(u8 *in_ie, u32 in_len, u8 *merge_ie)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void dump_p2p_ie(u8 *ie, u32 ie_len) {
|
||||
void dump_p2p_ie(void *sel, u8 *ie, u32 ie_len) {
|
||||
u8* pos = (u8*)ie;
|
||||
u8 id;
|
||||
u16 len;
|
||||
@@ -1522,7 +1556,7 @@ void dump_p2p_ie(u8 *ie, u32 ie_len) {
|
||||
id = *pos;
|
||||
len = RTW_GET_LE16(pos+1);
|
||||
|
||||
DBG_871X("%s ID:%u, LEN:%u\n", __FUNCTION__, id, len);
|
||||
DBG_871X_SEL_NL(sel, "%s ID:%u, LEN:%u\n", __FUNCTION__, id, len);
|
||||
|
||||
pos+=(3+len);
|
||||
}
|
||||
@@ -1726,7 +1760,7 @@ static uint rtw_p2p_attr_remove(u8 *ie, uint ielen_ori, u8 attr_id)
|
||||
{
|
||||
u8 *next_attr = target_attr+target_attr_len;
|
||||
uint remain_len = ielen-(next_attr-ie);
|
||||
//dump_ies(ie, ielen);
|
||||
//dump_ies(RTW_DBGDUMP, ie, ielen);
|
||||
#if 0
|
||||
DBG_871X("[%d] ie:%p, ielen:%u\n"
|
||||
"target_attr:%p, target_attr_len:%u\n"
|
||||
@@ -1747,7 +1781,7 @@ static uint rtw_p2p_attr_remove(u8 *ie, uint ielen_ori, u8 attr_id)
|
||||
else
|
||||
{
|
||||
//if(index>0)
|
||||
// dump_ies(ie, ielen);
|
||||
// dump_ies(RTW_DBGDUMP, ie, ielen);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1763,12 +1797,11 @@ void rtw_WLAN_BSSID_EX_remove_p2p_attr(WLAN_BSSID_EX *bss_ex, u8 attr_id)
|
||||
|
||||
if( (p2p_ie=rtw_get_p2p_ie(bss_ex->IEs+_FIXED_IE_LENGTH_, bss_ex->IELength-_FIXED_IE_LENGTH_, NULL, &p2p_ielen_ori)) )
|
||||
{
|
||||
#if 0
|
||||
if (0)
|
||||
if(rtw_get_p2p_attr(p2p_ie, p2p_ielen_ori, attr_id, NULL, NULL)) {
|
||||
DBG_871X("rtw_get_p2p_attr: GOT P2P_ATTR:%u!!!!!!!!\n", attr_id);
|
||||
dump_ies(bss_ex->IEs+_FIXED_IE_LENGTH_, bss_ex->IELength-_FIXED_IE_LENGTH_);
|
||||
dump_ies(RTW_DBGDUMP, bss_ex->IEs+_FIXED_IE_LENGTH_, bss_ex->IELength-_FIXED_IE_LENGTH_);
|
||||
}
|
||||
#endif
|
||||
|
||||
p2p_ielen=rtw_p2p_attr_remove(p2p_ie, p2p_ielen_ori, attr_id);
|
||||
if(p2p_ielen != p2p_ielen_ori) {
|
||||
@@ -1781,10 +1814,10 @@ void rtw_WLAN_BSSID_EX_remove_p2p_attr(WLAN_BSSID_EX *bss_ex, u8 attr_id)
|
||||
_rtw_memset(next_ie+remain_len, 0, p2p_ielen_ori-p2p_ielen);
|
||||
bss_ex->IELength -= p2p_ielen_ori-p2p_ielen;
|
||||
|
||||
#if 0
|
||||
DBG_871X("remove P2P_ATTR:%u!\n", attr_id);
|
||||
dump_ies(bss_ex->IEs+_FIXED_IE_LENGTH_, bss_ex->IELength-_FIXED_IE_LENGTH_);
|
||||
#endif
|
||||
if (0) {
|
||||
DBG_871X("remove P2P_ATTR:%u!\n", attr_id);
|
||||
dump_ies(RTW_DBGDUMP, bss_ex->IEs+_FIXED_IE_LENGTH_, bss_ex->IELength-_FIXED_IE_LENGTH_);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1792,7 +1825,7 @@ void rtw_WLAN_BSSID_EX_remove_p2p_attr(WLAN_BSSID_EX *bss_ex, u8 attr_id)
|
||||
#endif //CONFIG_P2P
|
||||
|
||||
#ifdef CONFIG_WFD
|
||||
void dump_wfd_ie(u8 *ie, u32 ie_len)
|
||||
void dump_wfd_ie(void *sel, u8 *ie, u32 ie_len)
|
||||
{
|
||||
u8* pos = (u8*)ie;
|
||||
u8 id;
|
||||
@@ -1809,7 +1842,7 @@ void dump_wfd_ie(u8 *ie, u32 ie_len)
|
||||
id = *pos;
|
||||
len = RTW_GET_BE16(pos+1);
|
||||
|
||||
DBG_871X("%s ID:%u, LEN:%u\n", __FUNCTION__, id, len);
|
||||
DBG_871X_SEL_NL(sel, "%s ID:%u, LEN:%u\n", __FUNCTION__, id, len);
|
||||
|
||||
pos+=(3+len);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user