summaryrefslogtreecommitdiff
path: root/sys/dev
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 /sys/dev
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@
Diffstat (limited to 'sys/dev')
-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 */