u8 tempval;
        u16 tmpV16;
 
-       if (pwrstate && (rtlhal->hw_type !=
-               HARDWARE_TYPE_RTL8192SE)) {
+       if (pwrstate && (rtlhal->hw_type != HARDWARE_TYPE_RTL8192SE)) {
+               if (rtlhal->hw_type == HARDWARE_TYPE_RTL8188EE)
+                       rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_ACCESS],
+                                      0x69);
+
                tmpV16 = rtl_read_word(rtlpriv,
                                       rtlpriv->cfg->maps[SYS_ISO_CTRL]);
                if (!(tmpV16 & rtlpriv->cfg->maps[EFUSE_PWC_EV12V])) {
                }
 
        } else {
+               if (rtlhal->hw_type == HARDWARE_TYPE_RTL8188EE)
+                       rtl_write_byte(rtlpriv,
+                                      rtlpriv->cfg->maps[EFUSE_ACCESS], 0);
+
                if (write) {
                        tempval = rtl_read_byte(rtlpriv,
                                                rtlpriv->cfg->maps[EFUSE_TEST] +
 
                RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
                         "8192D PCI-E is found - vid/did=%x/%x\n",
                         venderid, deviceid);
+       } else if (deviceid == RTL_PCI_8188EE_DID) {
+               rtlhal->hw_type = HARDWARE_TYPE_RTL8188EE;
+               RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
+                        "Find adapter, Hardware type is 8188EE\n");
        } else {
                RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
                         "Err: Unknown device - vid/did=%x/%x\n",
 
 #define RTL_PCI_8192CU_DID     0x8191  /*8192ce */
 #define RTL_PCI_8192DE_DID     0x8193  /*8192de */
 #define RTL_PCI_8192DE_DID2    0x002B  /*92DE*/
+#define RTL_PCI_8188EE_DID     0x8179  /*8188ee*/
 
 /*8192 support 16 pages of IO registers*/
 #define RTL_MEM_MAPPED_IO_RANGE_8190PCI                0x1000
 
        HARDWARE_TYPE_RTL8192DU,
        HARDWARE_TYPE_RTL8723AE,
        HARDWARE_TYPE_RTL8723U,
+       HARDWARE_TYPE_RTL8188EE,
 
        /* keep it last */
        HARDWARE_TYPE_NUM