Search Linux Wireless

Re: Anyone using rtl8192de with 2.4GHz 802.11g?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Larry,

On Thu, Jul 12, 2012 at 10:14:05PM -0500, Larry Finger wrote:
> On 07/12/2012 04:57 PM, Forest Bond wrote:
> >On Thu, Jul 12, 2012 at 05:07:03PM -0400, Forest Bond wrote:
> >>On Thu, Jul 12, 2012 at 02:17:51PM -0400, Forest Bond wrote:
> >>>On Thu, Jul 12, 2012 at 11:23:20AM -0500, Larry Finger wrote:
> >>>>On 07/12/2012 10:25 AM, Forest Bond wrote:
> >>>>>On Wed, Jul 11, 2012 at 08:58:16PM -0500, Larry Finger wrote:
> >>>>>>On 07/11/2012 08:32 PM, Forest Bond wrote:
> >>>>>>>On Wed, Jul 11, 2012 at 07:58:04PM -0500, Larry Finger wrote:
> >>>>>>>>On 07/11/2012 07:21 PM, Forest Bond wrote:
> >>>>>>>>>The rtl8192de driver is working fine for me at 5GHz, but I am having trouble
> >>>>>>>>>getting scan results for 2.4GHz 802.11g networks.  I have been doing a lot of
> >>>>>>>>>debugging but am not making much progress.  I suspect the 802.11 b/g/n phy is
> >>>>>>>>>not being initialized correctly, but I'm pretty far outside my domain on this
> >>>>>>>>>one.
> >>>>>>>>>
> >>>>>>>>>Is anyone successfully using this driver with a 2.4GHz 802.11g network?
> >>>>>>>>
> >>>>>>>>I have several different models - some work better than others. What
> >>>>>>>>is the PCI ID for yours?
> >>>>>>>
> >>>>>>>This is the one I have:
> >>>>>>>
> >>>>>>>02:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:8193]
> >>>>>>>02:00.1 Network controller [0280]: Realtek Semiconductor Co., Ltd. Device [10ec:8193] (rev 01)
> >>>>>>
> >>>>>>It turns out that both kinds have the same ID. I think one of them
> >>>>>>is a prototype, while the other is probably a production unit.
> >>>>>>Obviously, bitrot has set in while I wasn't testing. With the kernel
> >>>>>>driver, neither unit can even scan in the 2.4 GHz band. Using the
> >>>>>>latest version of the vendor driver, the production version connects
> >>>>>>with APs running WEP, WPA, or WPA2. The prototype can only handle
> >>>>>>WEP.
> >>>>>>
> >>>>>>Obviously, I have some work to do. In the meantime, I will send you
> >>>>>>a tarball containing the vendor driver - privately so as not to spam
> >>>>>>the list.
> >>>>>
> >>>>>Thank you, I appreciate that.
> >>>>>
> >>>>>Of course, my preference would be to fix up the kernel driver.  I don't mind
> >>>>>doing some manual bisection with compat-wireless releases unless you think that
> >>>>>would be a total waste of time.  Do you have any sense for what the last working
> >>>>>kernel version would have been?
> >>>>>
> >>>>>As you suggest, we may need to use the vendor driver in the meantime.  Thanks
> >>>>>again for sending it over (although I suspect it is the same version I
> >>>>>downloaded from Realtek's web site).
> >>>>
> >>>>It started with the Realtek version, but has some important bug
> >>>>fixes that I wanted you to have.
> >>>
> >>>Thanks, that's really helpful.
> >>>
> >>>>Of course, we want to fix the kernel version, but if you want to
> >>>>bisect compat-wireless, that would be a big help. In the meantime, I
> >>>>will try bisecting wireless-testing when I get a chance.
> >>>
> >>>I have begun disecting compat-wireless releases.  3.1.1-1 works, 3.2.5-1
> >>>doesn't.  I'm going to try to identify the commit that broke things by applying
> >>>patches to 3.1.1-1.
> >>
> >>So unless I screwed something up while bisecting, I think this is where things
> >>broke:
> >>
> >>
> >>commit d83579e2a50ac68389e6b4c58b845c702cf37516
> >>Author: Chaoming Li <chaoming_li@xxxxxxxxxxxxxx>
> >>Date:   Tue Oct 11 21:28:51 2011 -0500
> >>
> >>     rtlwifi: rtl8192de: Updates from latest Reaktek driver - Part III
> >>
> >>     This patch incorporate the differences between the 06/20/2011 and
> >>     08/16/2011 Realtek releases of the rtl8192de driver.
> >>
> >>     The changes include:
> >>
> >>     1. Update for new chip versions
> >>
> >>     Signed-off-by: Chaoming Li <chaoming_li@xxxxxxxxxxxxxx>
> >>     Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
> >>     Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
> >>
> >>
> >>I managed to get into an interesting situation at one point during testing where
> >>neither MAC would return scan results, even after reverting to a known-good
> >>driver version.  This was resolved by removing and re-applying power (i.e. a
> >>reboot did not fix it).  Something must've put the hardware in a bad state.  I
> >>haven't seen this problem again.
> >>
> >>Anyway, I'll probably play with that patch a bit to see if I can figure out what
> >>broke, but let me know if you have any ideas.
> >
> >
> >So this seems to fix things:
> >
> >diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
> >index 18380a7..be21c81 100644
> >--- a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
> >+++ b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
> >@@ -3345,21 +3345,25 @@ void rtl92d_phy_config_macphymode_info(struct ieee80211_hw *hw)
> >  	switch (rtlhal->macphymode) {
> >  	case DUALMAC_SINGLEPHY:
> >  		rtlphy->rf_type = RF_2T2R;
> >-		rtlhal->version |= CHIP_92D_SINGLEPHY;
> >+		/*rtlhal->version |= CHIP_92D_SINGLEPHY;*/
> >+		rtlhal->version |= RF_TYPE_2T2R;
> >  		rtlhal->bandset = BAND_ON_BOTH;
> >  		rtlhal->current_bandtype = BAND_ON_2_4G;
> >  		break;
> >
> >  	case SINGLEMAC_SINGLEPHY:
> >  		rtlphy->rf_type = RF_2T2R;
> >-		rtlhal->version |= CHIP_92D_SINGLEPHY;
> >+		/*rtlhal->version |= CHIP_92D_SINGLEPHY;*/
> >+		rtlhal->version |= RF_TYPE_2T2R;
> >  		rtlhal->bandset = BAND_ON_BOTH;
> >  		rtlhal->current_bandtype = BAND_ON_2_4G;
> >  		break;
> >
> >  	case DUALMAC_DUALPHY:
> >  		rtlphy->rf_type = RF_1T1R;
> >-		rtlhal->version &= (~CHIP_92D_SINGLEPHY);
> >+		/*rtlhal->version &= (~CHIP_92D_SINGLEPHY);*/
> >+		rtlhal->version &= RF_TYPE_1T1R;
> >+
> >  		/* Now we let MAC0 run on 5G band. */
> >  		if (rtlhal->interfaceindex == 0) {
> >  			rtlhal->bandset = BAND_ON_5G;
> >
> >
> >And this is unrelated, but also seems important:
> >
> >diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/hw.c b/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
> >index b338d52..59e85f5 100644
> >--- a/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
> >+++ b/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
> >@@ -1058,11 +1058,14 @@ static enum version_8192d _rtl92de_read_chip_version(struct ieee80211_hw *hw)
> >  	u32 value32;
> >
> >  	value32 = rtl_read_dword(rtlpriv, REG_SYS_CFG);
> >+	version |= CHIP_92D;
> >+
> >  	if (!(value32 & 0x000f0000)) {
> >  		version = VERSION_TEST_CHIP_92D_SINGLEPHY;
> >  		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "TEST CHIP!!!\n");
> >  	} else {
> >-		version = VERSION_NORMAL_CHIP_92D_SINGLEPHY;
> >+		/*version = VERSION_NORMAL_CHIP_92D_SINGLEPHY;*/
> >+		version |= NORMAL_CHIP;
> >  		RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Normal CHIP!!!\n");
> >  	}
> >  	return version;
> >
> >
> >Let me know what you think.  I can prepare some proper patches sometime
> >tomorrow.
> 
> All of those match the code in the 0816.2011 driver. I have no idea
> what went wrong earlier, but I think those patches are OK.

Okay, I sent a patch off that fixes the scanning issue.  The other change turned
out to be a no-op.

I'd like to tackle some clean-up work for the version calculation logic at some
point, as there are likely some other bugs there.  For instance, I'm pretty sure
in the dual-mac, dual-phy case we end up with both RF_TYPE_1T1R and RF_TYPE_2T2R
set since VERSION_NORMAL_CHIP_92D_SINGLEPHY implies RF_TYPE_2T2R.  And, bugs
aside, the code is a bit difficult to understand, which I imagine makes it
harder to avoid introducing new bugs, particularly when integrating changes from
the vendor driver.

Thanks,
Forest
-- 
Forest Bond
http://www.alittletooquiet.net
http://www.rapidrollout.com

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux