summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReyk Floeter <reyk@cvs.openbsd.org>2006-09-19 17:49:14 +0000
committerReyk Floeter <reyk@cvs.openbsd.org>2006-09-19 17:49:14 +0000
commitc63c5073038ac00d3c350e9fd6dcb1b8a4d07685 (patch)
treeecaecce32ddc0b6be334cdac9e4a602a859e4610
parentd481e84ecd1cd32131e9a1a20472829b804f480c (diff)
attach and enable the newer chipset generations AR2413, AR5413, and
AR5424. unlike the previous chipset generations, these chipsets are single chip solutions. the AR5424 is a PCI Express chipset as found in various intel Macs. support is still incomplete- 11a mode works and 11b mode is rx-only. i need some more test reports, hardware donations (there are several different subrevisions) and time to finish it. thanks for help from kettenis@ "of course!" deraadt@
-rw-r--r--sys/dev/ic/ar5212.c7
-rw-r--r--sys/dev/ic/ar5xxx.h3
-rw-r--r--sys/dev/ic/ath.c6
3 files changed, 11 insertions, 5 deletions
diff --git a/sys/dev/ic/ar5212.c b/sys/dev/ic/ar5212.c
index 965aab792d0..41f5263deb0 100644
--- a/sys/dev/ic/ar5212.c
+++ b/sys/dev/ic/ar5212.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ar5212.c,v 1.32 2006/09/19 16:42:29 reyk Exp $ */
+/* $OpenBSD: ar5212.c,v 1.33 2006/09/19 17:49:13 reyk Exp $ */
/*
* Copyright (c) 2004, 2005 Reyk Floeter <reyk@openbsd.org>
@@ -305,8 +305,9 @@ ar5k_ar5212_nic_wakeup(struct ath_hal *hal, u_int16_t flags)
*/
/* ...reset chipset and PCI device */
- if (ar5k_ar5212_nic_reset(hal,
- AR5K_AR5212_RC_CHIP | AR5K_AR5212_RC_PCI) == AH_FALSE) {
+ if (hal->ah_single_chip == AH_FALSE &&
+ ar5k_ar5212_nic_reset(hal,
+ AR5K_AR5212_RC_CHIP | AR5K_AR5212_RC_PCI) == AH_FALSE) {
AR5K_PRINT("failed to reset the AR5212 + PCI chipset\n");
return (AH_FALSE);
}
diff --git a/sys/dev/ic/ar5xxx.h b/sys/dev/ic/ar5xxx.h
index fb0116a2168..15d6bf2ec51 100644
--- a/sys/dev/ic/ar5xxx.h
+++ b/sys/dev/ic/ar5xxx.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ar5xxx.h,v 1.34 2006/09/19 17:08:01 reyk Exp $ */
+/* $OpenBSD: ar5xxx.h,v 1.35 2006/09/19 17:49:13 reyk Exp $ */
/*
* Copyright (c) 2004, 2005 Reyk Floeter <reyk@openbsd.org>
@@ -1102,6 +1102,7 @@ struct ath_hal {
HAL_BOOL ah_turbo;
HAL_BOOL ah_calibration;
HAL_BOOL ah_running;
+ HAL_BOOL ah_single_chip;
HAL_RFGAIN ah_rf_gain;
HAL_RATE_TABLE ah_rt_11a;
diff --git a/sys/dev/ic/ath.c b/sys/dev/ic/ath.c
index 0df7c5d0df3..edd7f3d0c42 100644
--- a/sys/dev/ic/ath.c
+++ b/sys/dev/ic/ath.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ath.c,v 1.55 2006/09/19 17:08:01 reyk Exp $ */
+/* $OpenBSD: ath.c,v 1.56 2006/09/19 17:49:13 reyk Exp $ */
/* $NetBSD: ath.c,v 1.37 2004/08/18 21:59:39 dyoung Exp $ */
/*-
@@ -242,6 +242,7 @@ ath_attach(u_int16_t devid, struct ath_softc *sc)
/*
* Known single chip solutions
*/
+ ah->ah_single_chip = AH_TRUE;
printf("%s: AR%s %u.%u phy %u.%u rf %u.%u", ifp->if_xname,
ar5k_printver(AR5K_VERSION_DEV, devid),
ah->ah_mac_version, ah->ah_mac_revision,
@@ -253,6 +254,7 @@ ath_attach(u_int16_t devid, struct ath_softc *sc)
/*
* Multi chip solutions
*/
+ ah->ah_single_chip = AH_FALSE;
printf("%s: AR%s %u.%u phy %u.%u", ifp->if_xname,
ar5k_printver(AR5K_VERSION_VER, ah->ah_mac_srev),
ah->ah_mac_version, ah->ah_mac_revision,
@@ -271,12 +273,14 @@ ath_attach(u_int16_t devid, struct ath_softc *sc)
break;
}
+#if 0
if (ah->ah_radio_5ghz_revision >= AR5K_SREV_RAD_UNSUPP ||
ah->ah_radio_2ghz_revision >= AR5K_SREV_RAD_UNSUPP) {
printf(": RF radio not supported\n");
error = EOPNOTSUPP;
goto bad;
}
+#endif
sc->sc_ah = ah;
sc->sc_invalid = 0; /* ready to go, enable interrupt handling */