RX_TYPE_ERROR = -1
 };
 
+enum rtl8xxxu_rx_desc_enc {
+       RX_DESC_ENC_NONE        = 0,
+       RX_DESC_ENC_WEP40       = 1,
+       RX_DESC_ENC_TKIP_WO_MIC = 2,
+       RX_DESC_ENC_TKIP_MIC    = 3,
+       RX_DESC_ENC_AES         = 4,
+       RX_DESC_ENC_WEP104      = 5,
+};
+
 struct rtl8xxxu_rxdesc16 {
 #ifdef __LITTLE_ENDIAN
        u32 pktlen:14;
 
                        rx_status->mactime = rx_desc->tsfl;
                        rx_status->flag |= RX_FLAG_MACTIME_START;
 
-                       if (!rx_desc->swdec)
+                       if (!rx_desc->swdec &&
+                           rx_desc->security != RX_DESC_ENC_NONE)
                                rx_status->flag |= RX_FLAG_DECRYPTED;
                        if (rx_desc->crc32)
                                rx_status->flag |= RX_FLAG_FAILED_FCS_CRC;
                        rx_status->mactime = rx_desc->tsfl;
                        rx_status->flag |= RX_FLAG_MACTIME_START;
 
-                       if (!rx_desc->swdec)
+                       if (!rx_desc->swdec &&
+                           rx_desc->security != RX_DESC_ENC_NONE)
                                rx_status->flag |= RX_FLAG_DECRYPTED;
                        if (rx_desc->crc32)
                                rx_status->flag |= RX_FLAG_FAILED_FCS_CRC;
        ieee80211_hw_set(hw, HAS_RATE_CONTROL);
        ieee80211_hw_set(hw, SUPPORT_FAST_XMIT);
        ieee80211_hw_set(hw, AMPDU_AGGREGATION);
+       ieee80211_hw_set(hw, MFP_CAPABLE);
 
        wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);