From: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx> Signed-off-by: Jes Sorensen <Jes.Sorensen@xxxxxxxxxx> --- drivers/staging/rtl8723au/hal/rtl8723a_cmd.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/staging/rtl8723au/hal/rtl8723a_cmd.c b/drivers/staging/rtl8723au/hal/rtl8723a_cmd.c index eb747d6..5f188af 100644 --- a/drivers/staging/rtl8723au/hal/rtl8723a_cmd.c +++ b/drivers/staging/rtl8723au/hal/rtl8723a_cmd.c @@ -215,7 +215,7 @@ static void ConstructBeacon(struct rtw_adapter *padapter, u8 *pframe, u32 *pLeng pwlanhdr = (struct ieee80211_hdr *)pframe; - pwlanhdr->frame_control = 0; + pwlanhdr->frame_control = IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_BEACON; memcpy(pwlanhdr->addr1, bc_addr, ETH_ALEN); memcpy(pwlanhdr->addr2, myid(&padapter->eeprompriv), ETH_ALEN); @@ -224,8 +224,6 @@ static void ConstructBeacon(struct rtw_adapter *padapter, u8 *pframe, u32 *pLeng /* A Beacon frame shouldn't have fragment bits set */ pwlanhdr->seq_ctrl = 0; - SetFrameSubType(pframe, WIFI_BEACON); - pframe += sizeof(struct ieee80211_hdr_3addr); pktlen = sizeof (struct ieee80211_hdr_3addr); @@ -316,8 +314,9 @@ static void ConstructPSPoll(struct rtw_adapter *padapter, pwlanhdr = (struct ieee80211_hdr *)pframe; /* Frame control. */ - pwlanhdr->frame_control = cpu_to_le16(IEEE80211_FCTL_PM); - SetFrameSubType(pframe, WIFI_PSPOLL); + pwlanhdr->frame_control = + cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_PSPOLL); + pwlanhdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_PM); /* AID. */ pwlanhdr->duration_id = cpu_to_le16(pmlmeinfo->aid | 0xc000); @@ -386,7 +385,9 @@ ConstructNullFunctionData(struct rtw_adapter *padapter, u8 *pframe, struct ieee80211_qos_hdr *qoshdr; qoshdr = (struct ieee80211_qos_hdr *)pframe; - SetFrameSubType(pframe, WIFI_QOS_DATA_NULL); + qoshdr->frame_control |= + cpu_to_le16(IEEE80211_FTYPE_DATA | + IEEE80211_STYPE_QOS_NULLFUNC); qoshdr->qos_ctrl = cpu_to_le16(AC & IEEE80211_QOS_CTL_TID_MASK); if (bEosp) @@ -394,7 +395,9 @@ ConstructNullFunctionData(struct rtw_adapter *padapter, u8 *pframe, pktlen = sizeof(struct ieee80211_qos_hdr); } else { - SetFrameSubType(pframe, WIFI_DATA_NULL); + pwlanhdr->frame_control |= + cpu_to_le16(IEEE80211_FTYPE_DATA | + IEEE80211_STYPE_NULLFUNC); pktlen = sizeof(struct ieee80211_hdr_3addr); } @@ -419,15 +422,15 @@ static void ConstructProbeRsp(struct rtw_adapter *padapter, u8 *pframe, mac = myid(&padapter->eeprompriv); bssid = cur_network->MacAddress; - pwlanhdr->frame_control = 0; + pwlanhdr->frame_control = + cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_PROBE_RESP); + pwlanhdr->seq_ctrl = 0; memcpy(pwlanhdr->addr1, StaAddr, ETH_ALEN); memcpy(pwlanhdr->addr2, mac, ETH_ALEN); memcpy(pwlanhdr->addr3, bssid, ETH_ALEN); - SetFrameSubType(&pwlanhdr->frame_control, WIFI_PROBERSP); - pktlen = sizeof(struct ieee80211_hdr_3addr); pframe += pktlen; -- 1.9.0 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel