aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2013-03-24 23:06:56 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-04-01 16:20:54 -0400
commit5c69177df48b0847fd08b6dc6a6eb9e81934b57a (patch)
tree27a8e315b86e6cf8128eb9577483f01da45790b7 /drivers
parente6deaf810cc4b6437d55179660776e131ac059df (diff)
rtlwifi: rtl8188ee: Enable recognition of RTL8188EE
These patches modify the common probe routine to recognize the RTL8188EE chip and implement asynchronous firmware reading in the callback routine to initialize the sw variables. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: jcheung@suse.com Cc: machen@suse.com Cc: mmarek@suse.cz Cc: zhiyuan_yang@realsil.com.cn Cc: page_he@realsil.com.cn Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/rtlwifi/efuse.c11
-rw-r--r--drivers/net/wireless/rtlwifi/pci.c4
-rw-r--r--drivers/net/wireless/rtlwifi/pci.h1
-rw-r--r--drivers/net/wireless/rtlwifi/wifi.h1
4 files changed, 15 insertions, 2 deletions
diff --git a/drivers/net/wireless/rtlwifi/efuse.c b/drivers/net/wireless/rtlwifi/efuse.c
index 41a03b12463b..9e3894178e77 100644
--- a/drivers/net/wireless/rtlwifi/efuse.c
+++ b/drivers/net/wireless/rtlwifi/efuse.c
@@ -1124,8 +1124,11 @@ static void efuse_power_switch(struct ieee80211_hw *hw, u8 write, u8 pwrstate)
1124 u8 tempval; 1124 u8 tempval;
1125 u16 tmpV16; 1125 u16 tmpV16;
1126 1126
1127 if (pwrstate && (rtlhal->hw_type != 1127 if (pwrstate && (rtlhal->hw_type != HARDWARE_TYPE_RTL8192SE)) {
1128 HARDWARE_TYPE_RTL8192SE)) { 1128 if (rtlhal->hw_type == HARDWARE_TYPE_RTL8188EE)
1129 rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_ACCESS],
1130 0x69);
1131
1129 tmpV16 = rtl_read_word(rtlpriv, 1132 tmpV16 = rtl_read_word(rtlpriv,
1130 rtlpriv->cfg->maps[SYS_ISO_CTRL]); 1133 rtlpriv->cfg->maps[SYS_ISO_CTRL]);
1131 if (!(tmpV16 & rtlpriv->cfg->maps[EFUSE_PWC_EV12V])) { 1134 if (!(tmpV16 & rtlpriv->cfg->maps[EFUSE_PWC_EV12V])) {
@@ -1175,6 +1178,10 @@ static void efuse_power_switch(struct ieee80211_hw *hw, u8 write, u8 pwrstate)
1175 } 1178 }
1176 1179
1177 } else { 1180 } else {
1181 if (rtlhal->hw_type == HARDWARE_TYPE_RTL8188EE)
1182 rtl_write_byte(rtlpriv,
1183 rtlpriv->cfg->maps[EFUSE_ACCESS], 0);
1184
1178 if (write) { 1185 if (write) {
1179 tempval = rtl_read_byte(rtlpriv, 1186 tempval = rtl_read_byte(rtlpriv,
1180 rtlpriv->cfg->maps[EFUSE_TEST] + 1187 rtlpriv->cfg->maps[EFUSE_TEST] +
diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c
index eab449222ce0..999ffc12578b 100644
--- a/drivers/net/wireless/rtlwifi/pci.c
+++ b/drivers/net/wireless/rtlwifi/pci.c
@@ -1750,6 +1750,10 @@ static bool _rtl_pci_find_adapter(struct pci_dev *pdev,
1750 RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, 1750 RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG,
1751 "8192D PCI-E is found - vid/did=%x/%x\n", 1751 "8192D PCI-E is found - vid/did=%x/%x\n",
1752 venderid, deviceid); 1752 venderid, deviceid);
1753 } else if (deviceid == RTL_PCI_8188EE_DID) {
1754 rtlhal->hw_type = HARDWARE_TYPE_RTL8188EE;
1755 RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD,
1756 "Find adapter, Hardware type is 8188EE\n");
1753 } else { 1757 } else {
1754 RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, 1758 RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
1755 "Err: Unknown device - vid/did=%x/%x\n", 1759 "Err: Unknown device - vid/did=%x/%x\n",
diff --git a/drivers/net/wireless/rtlwifi/pci.h b/drivers/net/wireless/rtlwifi/pci.h
index bd368d9c67fc..d3262ec45d23 100644
--- a/drivers/net/wireless/rtlwifi/pci.h
+++ b/drivers/net/wireless/rtlwifi/pci.h
@@ -94,6 +94,7 @@
94#define RTL_PCI_8192CU_DID 0x8191 /*8192ce */ 94#define RTL_PCI_8192CU_DID 0x8191 /*8192ce */
95#define RTL_PCI_8192DE_DID 0x8193 /*8192de */ 95#define RTL_PCI_8192DE_DID 0x8193 /*8192de */
96#define RTL_PCI_8192DE_DID2 0x002B /*92DE*/ 96#define RTL_PCI_8192DE_DID2 0x002B /*92DE*/
97#define RTL_PCI_8188EE_DID 0x8179 /*8188ee*/
97 98
98/*8192 support 16 pages of IO registers*/ 99/*8192 support 16 pages of IO registers*/
99#define RTL_MEM_MAPPED_IO_RANGE_8190PCI 0x1000 100#define RTL_MEM_MAPPED_IO_RANGE_8190PCI 0x1000
diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h
index c796b01bfcad..44328baa6389 100644
--- a/drivers/net/wireless/rtlwifi/wifi.h
+++ b/drivers/net/wireless/rtlwifi/wifi.h
@@ -162,6 +162,7 @@ enum hardware_type {
162 HARDWARE_TYPE_RTL8192DU, 162 HARDWARE_TYPE_RTL8192DU,
163 HARDWARE_TYPE_RTL8723AE, 163 HARDWARE_TYPE_RTL8723AE,
164 HARDWARE_TYPE_RTL8723U, 164 HARDWARE_TYPE_RTL8723U,
165 HARDWARE_TYPE_RTL8188EE,
165 166
166 /* keep it last */ 167 /* keep it last */
167 HARDWARE_TYPE_NUM 168 HARDWARE_TYPE_NUM