Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Jun 2013 22:21:13 +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: r251441 - head/sys/dev/ath/ath_hal/ar9002
Message-ID:  <201306052221.r55MLDIk069066@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: adrian
Date: Wed Jun  5 22:21:13 2013
New Revision: 251441
URL: http://svnweb.freebsd.org/changeset/base/251441

Log:
  As a temporary work-around (read: until there's a nice API for exposing
  and controlling this form of antenna diversity) - print out the AR9285
  antenna diversity configuration at attach time.
  
  This will help track down and diagose if/when people have connectivity
  issues on cards (eg if they connect a single antenna to LNA1, yet the
  card has RX configured to only occur on LNA2.)
  
  Tested:
  
  * AR9285 w/ antenna diversity enabled in EEPROM;
  * AR9285 w/ antenna diversity disabled in EEPROM; mapping only to a
    single antenna (LNA1.)

Modified:
  head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c

Modified: head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c	Wed Jun  5 21:56:29 2013	(r251440)
+++ head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c	Wed Jun  5 22:21:13 2013	(r251441)
@@ -105,6 +105,28 @@ ar9285AniSetup(struct ath_hal *ah)
         ar5416AniAttach(ah, &aniparams, &aniparams, AH_TRUE);
 }
 
+static const char * ar9285_lna_conf[] = {
+	"LNA1-LNA2",
+	"LNA2",
+	"LNA1",
+	"LNA1+LNA2",
+};
+
+static void
+ar9285_eeprom_print_diversity_settings(struct ath_hal *ah)
+{
+	const HAL_EEPROM_v4k *ee = AH_PRIVATE(ah)->ah_eeprom;
+	const MODAL_EEP4K_HEADER *pModal = &ee->ee_base.modalHeader;
+
+	ath_hal_printf(ah, "[ath] AR9285 Main LNA config: %s\n",
+	    ar9285_lna_conf[(pModal->antdiv_ctl2 >> 2) & 0x3]);
+	ath_hal_printf(ah, "[ath] AR9285 Alt LNA config: %s\n",
+	    ar9285_lna_conf[pModal->antdiv_ctl2 & 0x3]);
+	ath_hal_printf(ah, "[ath] LNA diversity %s, Diversity %s\n",
+	    ((pModal->antdiv_ctl1 & 0x1) ? "enabled" : "disabled"),
+	    ((pModal->antdiv_ctl1 & 0x8) ? "enabled" : "disabled"));
+}
+
 /*
  * Attach for an AR9285 part.
  */
@@ -309,6 +331,13 @@ ar9285Attach(uint16_t devid, HAL_SOFTC s
 		goto bad;
 	}
 
+	/*
+	 * Print out the EEPROM antenna configuration mapping.
+	 * Some devices have a hard-coded LNA configuration profile;
+	 * others enable diversity.
+	 */
+	ar9285_eeprom_print_diversity_settings(ah);
+
 	/* Print out whether the EEPROM settings enable AR9285 diversity */
 	if (ar9285_check_div_comb(ah)) {
 		ath_hal_printf(ah, "[ath] Enabling diversity for Kite\n");



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