summaryrefslogtreecommitdiffstats
path: root/sys/dev/iwn
diff options
context:
space:
mode:
authorbschmidt <bschmidt@FreeBSD.org>2010-07-15 09:30:54 +0000
committerbschmidt <bschmidt@FreeBSD.org>2010-07-15 09:30:54 +0000
commite2298f42c63ae12ad8634a2513d7432b6da131fd (patch)
tree5f2a40151d046f4be0425928a2f21183d5177340 /sys/dev/iwn
parent34c4585afa00633831bb77ef0d8a82ebb7c9411b (diff)
downloadFreeBSD-src-e2298f42c63ae12ad8634a2513d7432b6da131fd.zip
FreeBSD-src-e2298f42c63ae12ad8634a2513d7432b6da131fd.tar.gz
- Add new IDs for 6000 series devices.
- The 6000 series WiMAX devices need a separate firmware. - The b-gen devices are not hooked because the hardware revision type is not know. Obtained from: OpenBSD MFC after: 1 week
Diffstat (limited to 'sys/dev/iwn')
-rw-r--r--sys/dev/iwn/if_iwn.c25
-rw-r--r--sys/dev/iwn/if_iwnreg.h3
2 files changed, 22 insertions, 6 deletions
diff --git a/sys/dev/iwn/if_iwn.c b/sys/dev/iwn/if_iwn.c
index 1953f00..c6720e2 100644
--- a/sys/dev/iwn/if_iwn.c
+++ b/sys/dev/iwn/if_iwn.c
@@ -320,8 +320,17 @@ static const struct iwn_ident iwn_ident_table [] = {
{ 0x8086, 0x4239, "Intel(R) PRO/Wireless 6000" },
{ 0x8086, 0x422B, "Intel(R) PRO/Wireless 6000" },
{ 0x8086, 0x422C, "Intel(R) PRO/Wireless 6000" },
- { 0x8086, 0x0086, "Intel(R) PRO/Wireless 6050" },
- { 0x8086, 0x0087, "Intel(R) PRO/Wireless 6050" },
+ { 0x8086, 0x0087, "Intel(R) PRO/Wireless 6250" },
+ { 0x8086, 0x0089, "Intel(R) PRO/Wireless 6250" },
+ { 0x8086, 0x0082, "Intel(R) PRO/Wireless 6205a" },
+ { 0x8086, 0x0085, "Intel(R) PRO/Wireless 6205a" },
+#ifdef notyet
+ { 0x8086, 0x008a, "Intel(R) PRO/Wireless 6205b" },
+ { 0x8086, 0x008b, "Intel(R) PRO/Wireless 6205b" },
+ { 0x8086, 0x008f, "Intel(R) PRO/Wireless 6205b" },
+ { 0x8086, 0x0090, "Intel(R) PRO/Wireless 6205b" },
+ { 0x8086, 0x0091, "Intel(R) PRO/Wireless 6205b" },
+#endif
{ 0, 0, NULL }
};
@@ -734,7 +743,14 @@ iwn_hal_attach(struct iwn_softc *sc)
case IWN_HW_REV_TYPE_6050:
sc->sc_hal = &iwn5000_hal;
sc->limits = &iwn6000_sensitivity_limits;
- sc->fwname = "iwn6000fw";
+ sc->fwname = "iwn6050fw";
+ sc->txchainmask = IWN_ANT_AB;
+ sc->rxchainmask = IWN_ANT_AB;
+ break;
+ case IWN_HW_REV_TYPE_6005:
+ sc->sc_hal = &iwn5000_hal;
+ sc->limits = &iwn6000_sensitivity_limits;
+ sc->fwname = "iwn6005fw";
sc->txchainmask = IWN_ANT_AB;
sc->rxchainmask = IWN_ANT_AB;
break;
@@ -5751,8 +5767,7 @@ iwn_apm_init(struct iwn_softc *sc)
IWN_CLRBITS(sc, IWN_GIO, IWN_GIO_L0S_ENA);
if (sc->hw_type != IWN_HW_REV_TYPE_4965 &&
- sc->hw_type != IWN_HW_REV_TYPE_6000 &&
- sc->hw_type != IWN_HW_REV_TYPE_6050)
+ sc->hw_type <= IWN_HW_REV_TYPE_1000)
IWN_SETBITS(sc, IWN_ANA_PLL, IWN_ANA_PLL_INIT);
/* Wait for clock stabilization before accessing prph. */
diff --git a/sys/dev/iwn/if_iwnreg.h b/sys/dev/iwn/if_iwnreg.h
index 06e03ec..8829210 100644
--- a/sys/dev/iwn/if_iwnreg.h
+++ b/sys/dev/iwn/if_iwnreg.h
@@ -1,5 +1,5 @@
/* $FreeBSD$ */
-/* $OpenBSD: if_iwnreg.h,v 1.37 2010/02/17 18:23:00 damien Exp $ */
+/* $OpenBSD: if_iwnreg.h,v 1.38 2010/04/10 08:37:36 damien Exp $ */
/*-
* Copyright (c) 2007, 2008
@@ -204,6 +204,7 @@
#define IWN_HW_REV_TYPE_1000 6
#define IWN_HW_REV_TYPE_6000 7
#define IWN_HW_REV_TYPE_6050 8
+#define IWN_HW_REV_TYPE_6005 11
/* Possible flags for register IWN_GIO_CHICKEN. */
#define IWN_GIO_CHICKEN_L1A_NO_L0S_RX (1 << 23)
OpenPOWER on IntegriCloud