Re: 答复: 答复: 答复: RTL8192SE and 802.11n problem
From: Stefan Zwanenburg <hidden>
Date: 2011-09-29 02:33:22
On 09/29/2011 01:28 AM, Stefan Zwanenburg wrote:
quoted hunk ↗ jump to hunk
I had some time on my hands, so I tried to figure out how to dump the EEPROM data myself, and have done so using the following patch (based on linux-3.0.4):--- drivers/net/wireless/rtlwifi/rtl8192se/hw.c 2011-07-2204:17:23.000000000 +0200+++ /home/psychotic/Desktop/rtl8192se_hw.c 2011-09-2901:16:09.361978051 +0200@@ -1645,6 +1645,13 @@ RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, ("MAP\n"), hwinfo, HWSET_MAX_SIZE_92S); + printk("RTL8192SE - got EEPROM data:"); + for (i = 0; i < HWSET_MAX_SIZE_92S; i++) { + if (i % 6 == 0) + printk("\n "); + printk("%02X ", hwinfo[i]); + } + eeprom_id = *((u16 *)&hwinfo[0]); if (eeprom_id != RTL8190_EEPROM_ID) { RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
For posterity's sake, there was a slightly smaller workaround here, and it would be as in the following patch:
--- drivers/net/wireless/rtlwifi/rtl8192se/hw.c 2011-09-2904:20:14.660831861 +0200
+++ drivers/net/wireless/rtlwifi/rtl8192se/hw.c 2011-09-2904:20:05.303831474 +0200
@@ -1642,7 +1642,7 @@ HWSET_MAX_SIZE_92S); } - RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, ("MAP\n"), + RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_EMERG, ("MAP\n"), hwinfo, HWSET_MAX_SIZE_92S); eeprom_id = *((u16 *)&hwinfo[0]);
It's rather nasty though, as it pretends that dumping the EEPROM data is happening right before a fatal error has occurred. But there's really no other way, as using sysfs to set the "global_debuglevel" is not good enough because the EEPROM data is read right after the module is loaded (making it hard to set the debuglevel in time). If this info is useless to you, disregard it! Stefan Zwanenburg PS: the EEPROM data I mentioned in my previous message is still the same though, so I won't bother to repost it.