Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 May 2016 01:29:00 +0000 (UTC)
From:      Adrian Chadd <adrian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r299028 - head/sys/dev/bwn
Message-ID:  <201605040129.u441T0vn065919@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Wed May  4 01:29:00 2016
New Revision: 299028
URL: https://svnweb.freebsd.org/changeset/base/299028

Log:
  [bwn] ensure the fallback rate stays in the same PHY mode.
  
  Falling back from 6MB OFDM to 5MB CCK (a) may not work well in the
  11bg PHYs, (b) won't work at all if you're 11g only, and (c) plainly
  won't work for the 11a PHY.
  
  So, don't do that!
  
  Tested:
  
  * BCM4312 802.11b/g Wireless, STA mode
    WLAN (chipid 0x4312 rev 15) PHY (analog 6 type 5 rev 1) RADIO (manuf 0x17f ver 0x2062 rev 2)

Modified:
  head/sys/dev/bwn/if_bwn.c

Modified: head/sys/dev/bwn/if_bwn.c
==============================================================================
--- head/sys/dev/bwn/if_bwn.c	Wed May  4 01:28:10 2016	(r299027)
+++ head/sys/dev/bwn/if_bwn.c	Wed May  4 01:29:00 2016	(r299028)
@@ -5958,10 +5958,16 @@ bwn_antenna_sanitize(struct bwn_mac *mac
 	return (n);
 }
 
+/*
+ * Return a fallback rate for the given rate.
+ *
+ * Note: Don't fall back from OFDM to CCK.
+ */
 static uint8_t
 bwn_get_fbrate(uint8_t bitrate)
 {
 	switch (bitrate) {
+	/* CCK */
 	case BWN_CCK_RATE_1MB:
 		return (BWN_CCK_RATE_1MB);
 	case BWN_CCK_RATE_2MB:
@@ -5970,8 +5976,10 @@ bwn_get_fbrate(uint8_t bitrate)
 		return (BWN_CCK_RATE_2MB);
 	case BWN_CCK_RATE_11MB:
 		return (BWN_CCK_RATE_5MB);
+
+	/* OFDM */
 	case BWN_OFDM_RATE_6MB:
-		return (BWN_CCK_RATE_5MB);
+		return (BWN_OFDM_RATE_6MB);
 	case BWN_OFDM_RATE_9MB:
 		return (BWN_OFDM_RATE_6MB);
 	case BWN_OFDM_RATE_12MB:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605040129.u441T0vn065919>