From: Jes Sorensen <jes.soren...@redhat.com>

Signed-off-by: Jes Sorensen <jes.soren...@redhat.com>
---
 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
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to