- 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
This commit is contained in:
Bernhard Schmidt 2010-07-15 09:30:54 +00:00
parent f901a391d4
commit b1429c8528
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=210109
2 changed files with 22 additions and 6 deletions

View File

@ -320,8 +320,17 @@ static const struct iwn_ident iwn_ident_table [] = {
{ 0x8086, 0x4239, "Intel(R) PRO/Wireless 6000" }, { 0x8086, 0x4239, "Intel(R) PRO/Wireless 6000" },
{ 0x8086, 0x422B, "Intel(R) PRO/Wireless 6000" }, { 0x8086, 0x422B, "Intel(R) PRO/Wireless 6000" },
{ 0x8086, 0x422C, "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 6250" },
{ 0x8086, 0x0087, "Intel(R) PRO/Wireless 6050" }, { 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 } { 0, 0, NULL }
}; };
@ -734,7 +743,14 @@ iwn_hal_attach(struct iwn_softc *sc)
case IWN_HW_REV_TYPE_6050: case IWN_HW_REV_TYPE_6050:
sc->sc_hal = &iwn5000_hal; sc->sc_hal = &iwn5000_hal;
sc->limits = &iwn6000_sensitivity_limits; 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->txchainmask = IWN_ANT_AB;
sc->rxchainmask = IWN_ANT_AB; sc->rxchainmask = IWN_ANT_AB;
break; break;
@ -5751,8 +5767,7 @@ iwn_apm_init(struct iwn_softc *sc)
IWN_CLRBITS(sc, IWN_GIO, IWN_GIO_L0S_ENA); IWN_CLRBITS(sc, IWN_GIO, IWN_GIO_L0S_ENA);
if (sc->hw_type != IWN_HW_REV_TYPE_4965 && if (sc->hw_type != IWN_HW_REV_TYPE_4965 &&
sc->hw_type != IWN_HW_REV_TYPE_6000 && sc->hw_type <= IWN_HW_REV_TYPE_1000)
sc->hw_type != IWN_HW_REV_TYPE_6050)
IWN_SETBITS(sc, IWN_ANA_PLL, IWN_ANA_PLL_INIT); IWN_SETBITS(sc, IWN_ANA_PLL, IWN_ANA_PLL_INIT);
/* Wait for clock stabilization before accessing prph. */ /* Wait for clock stabilization before accessing prph. */

View File

@ -1,5 +1,5 @@
/* $FreeBSD$ */ /* $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 * Copyright (c) 2007, 2008
@ -204,6 +204,7 @@
#define IWN_HW_REV_TYPE_1000 6 #define IWN_HW_REV_TYPE_1000 6
#define IWN_HW_REV_TYPE_6000 7 #define IWN_HW_REV_TYPE_6000 7
#define IWN_HW_REV_TYPE_6050 8 #define IWN_HW_REV_TYPE_6050 8
#define IWN_HW_REV_TYPE_6005 11
/* Possible flags for register IWN_GIO_CHICKEN. */ /* Possible flags for register IWN_GIO_CHICKEN. */
#define IWN_GIO_CHICKEN_L1A_NO_L0S_RX (1 << 23) #define IWN_GIO_CHICKEN_L1A_NO_L0S_RX (1 << 23)