summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2009-02-23 23:41:12 +0000
committersam <sam@FreeBSD.org>2009-02-23 23:41:12 +0000
commitd673ad903bb677bd512d22efa4a4062d4517232b (patch)
tree6e6bf2b9731dd46ec0213de1a4b2402d7a29bbc1
parenta0f4221805deef405c46cbfa7475bde3983ea96c (diff)
downloadFreeBSD-src-d673ad903bb677bd512d22efa4a4062d4517232b.zip
FreeBSD-src-d673ad903bb677bd512d22efa4a4062d4517232b.tar.gz
print mac+rf part names; drop the printing 2ghz rf stuff (might come back)
-rw-r--r--sys/dev/ath/ath_hal/ah.c82
-rw-r--r--sys/dev/ath/ath_hal/ah.h3
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416reg.h4
-rw-r--r--sys/dev/ath/if_ath.c29
4 files changed, 90 insertions, 28 deletions
diff --git a/sys/dev/ath/ath_hal/ah.c b/sys/dev/ath/ath_hal/ah.c
index 1ffab43..0462999 100644
--- a/sys/dev/ath/ath_hal/ah.c
+++ b/sys/dev/ath/ath_hal/ah.c
@@ -22,6 +22,8 @@
#include "ah_internal.h"
#include "ah_devid.h"
+#include "ar5416/ar5416reg.h" /* NB: includes ar5212reg.h */
+
/* linker set of registered chips */
OS_SET_DECLARE(ah_chips, struct ath_hal_chip);
@@ -78,6 +80,44 @@ ath_hal_attach(uint16_t devid, HAL_SOFTC sc,
return AH_NULL;
}
+const char *
+ath_hal_mac_name(struct ath_hal *ah)
+{
+ switch (ah->ah_macVersion) {
+ case AR_SREV_VERSION_CRETE:
+ case AR_SREV_VERSION_MAUI_1:
+ return "5210";
+ case AR_SREV_VERSION_MAUI_2:
+ case AR_SREV_VERSION_OAHU:
+ return "5211";
+ case AR_SREV_VERSION_VENICE:
+ return "5212";
+ case AR_SREV_VERSION_GRIFFIN:
+ return "2413";
+ case AR_SREV_VERSION_CONDOR:
+ return "5424";
+ case AR_SREV_VERSION_EAGLE:
+ return "5413";
+ case AR_SREV_VERSION_COBRA:
+ return "2415";
+ case AR_SREV_2425:
+ return "2425";
+ case AR_SREV_2417:
+ return "2417";
+ case AR_XSREV_VERSION_OWL_PCI:
+ return "5416";
+ case AR_XSREV_VERSION_OWL_PCIE:
+ return "5418";
+ case AR_XSREV_VERSION_SOWL:
+ return "9160";
+ case AR_XSREV_VERSION_MERLIN:
+ return "9280";
+ case AR_XSREV_VERSION_KITE:
+ return "9285";
+ }
+ return "????";
+}
+
/*
* Return the mask of available modes based on the hardware capabilities.
*/
@@ -108,6 +148,48 @@ ath_hal_rfprobe(struct ath_hal *ah, HAL_STATUS *ecode)
return AH_NULL;
}
+const char *
+ath_hal_rf_name(struct ath_hal *ah)
+{
+ switch (ah->ah_analog5GhzRev & AR_RADIO_SREV_MAJOR) {
+ case 0: /* 5210 */
+ return "5110"; /* NB: made up */
+ case AR_RAD5111_SREV_MAJOR:
+ case AR_RAD5111_SREV_PROD:
+ return "5111";
+ case AR_RAD2111_SREV_MAJOR:
+ return "2111";
+ case AR_RAD5112_SREV_MAJOR:
+ case AR_RAD5112_SREV_2_0:
+ case AR_RAD5112_SREV_2_1:
+ return "5112";
+ case AR_RAD2112_SREV_MAJOR:
+ case AR_RAD2112_SREV_2_0:
+ case AR_RAD2112_SREV_2_1:
+ return "2112";
+ case AR_RAD2413_SREV_MAJOR:
+ return "2413";
+ case AR_RAD5413_SREV_MAJOR:
+ return "5413";
+ case AR_RAD2316_SREV_MAJOR:
+ return "2316";
+ case AR_RAD2317_SREV_MAJOR:
+ return "2317";
+ case AR_RAD5424_SREV_MAJOR:
+ return "5424";
+
+ case AR_RAD5133_SREV_MAJOR:
+ return "5133";
+ case AR_RAD2133_SREV_MAJOR:
+ return "2133";
+ case AR_RAD5122_SREV_MAJOR:
+ return "5122";
+ case AR_RAD2122_SREV_MAJOR:
+ return "2122";
+ }
+ return "????";
+}
+
/*
* Poll the register looking for a specific value.
*/
diff --git a/sys/dev/ath/ath_hal/ah.h b/sys/dev/ath/ath_hal/ah.h
index a3a676e..8822d7c 100644
--- a/sys/dev/ath/ath_hal/ah.h
+++ b/sys/dev/ath/ath_hal/ah.h
@@ -789,6 +789,9 @@ extern const char *__ahdecl ath_hal_probe(uint16_t vendorid, uint16_t devid);
extern struct ath_hal * __ahdecl ath_hal_attach(uint16_t devid, HAL_SOFTC,
HAL_BUS_TAG, HAL_BUS_HANDLE, HAL_STATUS* status);
+extern const char *ath_hal_mac_name(struct ath_hal *);
+extern const char *ath_hal_rf_name(struct ath_hal *);
+
/*
* Regulatory interfaces. Drivers should use ath_hal_init_channels to
* request a set of channels for a particular country code and/or
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416reg.h b/sys/dev/ath/ath_hal/ar5416/ar5416reg.h
index 770ec22..365b1e7 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416reg.h
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416reg.h
@@ -14,12 +14,12 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $Id: ar5416reg.h,v 1.10 2008/11/11 00:11:30 sam Exp $
+ * $FreeBSD$
*/
#ifndef _DEV_ATH_AR5416REG_H
#define _DEV_ATH_AR5416REG_H
-#include "ar5212/ar5212reg.h"
+#include <dev/ath/ath_hal/ar5212/ar5212reg.h>
/*
* Register added starting with the AR5416
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index 1a30d5e..a0ebb4a 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -7267,34 +7267,12 @@ bad:
static void
ath_announce(struct ath_softc *sc)
{
-#define HAL_MODE_DUALBAND (HAL_MODE_11A|HAL_MODE_11B)
struct ifnet *ifp = sc->sc_ifp;
struct ath_hal *ah = sc->sc_ah;
- u_int modes;
- if_printf(ifp, "mac %d.%d phy %d.%d",
- ah->ah_macVersion, ah->ah_macRev,
- ah->ah_phyRev >> 4, ah->ah_phyRev & 0xf);
- /*
- * Print radio revision(s). We check the wireless modes
- * to avoid falsely printing revs for inoperable parts.
- * Dual-band radio revs are returned in the 5Ghz rev number.
- */
- modes = ath_hal_getwirelessmodes(ah);
- if ((modes & HAL_MODE_DUALBAND) == HAL_MODE_DUALBAND) {
- if (ah->ah_analog5GhzRev && ah->ah_analog2GhzRev)
- printf(" 5ghz radio %d.%d 2ghz radio %d.%d",
- ah->ah_analog5GhzRev >> 4,
- ah->ah_analog5GhzRev & 0xf,
- ah->ah_analog2GhzRev >> 4,
- ah->ah_analog2GhzRev & 0xf);
- else
- printf(" radio %d.%d", ah->ah_analog5GhzRev >> 4,
- ah->ah_analog5GhzRev & 0xf);
- } else
- printf(" radio %d.%d", ah->ah_analog5GhzRev >> 4,
- ah->ah_analog5GhzRev & 0xf);
- printf("\n");
+ if_printf(ifp, "AR%s mac %d.%d RF%s phy %d.%d\n",
+ ath_hal_mac_name(ah), ah->ah_macVersion, ah->ah_macRev,
+ ath_hal_rf_name(ah), ah->ah_phyRev >> 4, ah->ah_phyRev & 0xf);
if (bootverbose) {
int i;
for (i = 0; i <= WME_AC_VO; i++) {
@@ -7310,7 +7288,6 @@ ath_announce(struct ath_softc *sc)
if_printf(ifp, "using %u rx buffers\n", ath_rxbuf);
if (ath_txbuf != ATH_TXBUF)
if_printf(ifp, "using %u tx buffers\n", ath_txbuf);
-#undef HAL_MODE_DUALBAND
}
#ifdef ATH_SUPPORT_TDMA
OpenPOWER on IntegriCloud