Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Jul 2010 10:15:18 +0000 (UTC)
From:      Bernhard Schmidt <bschmidt@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r210671 - stable/8/sys/dev/iwn
Message-ID:  <201007311015.o6VAFIkP047451@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bschmidt
Date: Sat Jul 31 10:15:18 2010
New Revision: 210671
URL: http://svn.freebsd.org/changeset/base/210671

Log:
  MFC r210110:
  Detect active chains differently to work around a firmware bug which
  would mark non-existing chains as active.
  
  Obtained from:	OpenBSD

Modified:
  stable/8/sys/dev/iwn/if_iwn.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/iwn/if_iwn.c
==============================================================================
--- stable/8/sys/dev/iwn/if_iwn.c	Sat Jul 31 10:12:53 2010	(r210670)
+++ stable/8/sys/dev/iwn/if_iwn.c	Sat Jul 31 10:15:18 2010	(r210671)
@@ -4134,10 +4134,14 @@ iwn_collect_noise(struct iwn_softc *sc,
 	val = MAX(calib->rssi[2], val);
 
 	/* Determine which antennas are connected. */
-	sc->chainmask = 0;
+	sc->chainmask = sc->rxchainmask;
 	for (i = 0; i < 3; i++)
-		if (val - calib->rssi[i] <= 15 * 20)
-			sc->chainmask |= 1 << i;
+		if (val - calib->rssi[i] > 15 * 20)
+			sc->chainmask &= ~(1 << i);
+	DPRINTF(sc, IWN_DEBUG_CALIBRATE,
+	    "%s: RX chains mask: theoretical=0x%x, actual=0x%x\n",
+	    __func__, sc->rxchainmask, sc->chainmask);
+
 	/* If none of the TX antennas are connected, keep at least one. */
 	if ((sc->chainmask & sc->txchainmask) == 0)
 		sc->chainmask |= IWN_LSB(sc->txchainmask);



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