#include <drv_types.h>
 #include <rtw_debug.h>
+#include <asm/unaligned.h>
 
 extern unsigned char RTW_WPA_OUI[];
 extern unsigned char WMM_OUI[];
        /* beacon interval */
        p = rtw_get_beacon_interval_from_ie(ie);/* ie + 8;      8: TimeStamp, 2: Beacon Interval 2:Capability */
        /* pbss_network->Configuration.BeaconPeriod = le16_to_cpu(*(unsigned short*)p); */
-       pbss_network->Configuration.BeaconPeriod = RTW_GET_LE16(p);
+       pbss_network->Configuration.BeaconPeriod = get_unaligned_le16(p);
 
        /* capability */
        /* cap = *(unsigned short *)rtw_get_capability_from_ie(ie); */
        /* cap = le16_to_cpu(cap); */
-       cap = RTW_GET_LE16(ie);
+       cap = get_unaligned_le16(ie);
 
        /* SSID */
        p = rtw_get_ie(
 
        /* pairwise_cipher */
        if (left >= 2) {
                /* count = le16_to_cpu(*(u16*)pos); */
-               count = RTW_GET_LE16(pos);
+               count = get_unaligned_le16(pos);
                pos += 2;
                left -= 2;
 
        /* pairwise_cipher */
        if (left >= 2) {
          /* count = le16_to_cpu(*(u16*)pos); */
-               count = RTW_GET_LE16(pos);
+               count = get_unaligned_le16(pos);
                pos += 2;
                left -= 2;
 
 
 #include <rtw_wifi_regd.h>
 #include <hal_btcoex.h>
 #include <linux/kernel.h>
+#include <asm/unaligned.h>
 
 static struct mlme_handler mlme_sta_tbl[] = {
        {WIFI_ASSOCREQ,         "OnAssocReq",   &OnAssocReq},
                goto asoc_class2_error;
        }
 
-       capab_info = RTW_GET_LE16(pframe + WLAN_HDR_A3_LEN);
+       capab_info = get_unaligned_le16(pframe + WLAN_HDR_A3_LEN);
        /* capab_info = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN)); */
 
        left = pkt_len - (sizeof(struct ieee80211_hdr_3addr) + ie_offset);
                        break;
 
                case RTW_WLAN_ACTION_ADDBA_RESP: /* ADDBA response */
-                       status = RTW_GET_LE16(&frame_body[3]);
+                       status = get_unaligned_le16(&frame_body[3]);
                        tid = ((frame_body[5] >> 2) & 0x7);
 
                        if (status == 0) {
                                        ~BIT((frame_body[3] >> 4) & 0xf);
 
                                /* reason_code = frame_body[4] | (frame_body[5] << 8); */
-                               reason_code = RTW_GET_LE16(&frame_body[4]);
+                               reason_code = get_unaligned_le16(&frame_body[4]);
                        } else if ((frame_body[3] & BIT(3)) == BIT(3)) {
                                tid = (frame_body[3] >> 4) & 0x0F;
 
 
 
 #define RTW_GET_BE16(a) ((u16) (((a)[0] << 8) | (a)[1]))
 
-#define RTW_GET_LE16(a) ((u16) (((a)[1] << 8) | (a)[0]))
-
 void rtw_buf_free(u8 **buf, u32 *buf_len);
 void rtw_buf_update(u8 **buf, u32 *buf_len, u8 *src, u32 src_len);