Centrino Wireless-N 1000 support is also broken (Re: iwn(4) in -HEAD supporting Centrino Wireless-N 135)
Kaho Toshikazu
kaho at elam.kais.kyoto-u.ac.jp
Thu May 8 10:37:39 UTC 2014
Hello adrian,
Thank you for a patch, and I'm sorry for late reply.
Your patch fixes the problem. ".calib_need" flag's change helps.
Other changes doesn't need to fix, but they doesn't
seem to make any problem.
The minimum necessary change is below.
if_iwn.c : no change
if_iwn_chip_cfg.h: remove IWN_FLG_NEED_PHY_CALIB_DC,
add IWN_FLG_NEED_PHY_CALIB_TX_IQ_PERIODIC
Index: if_iwn_chip_cfg.h
===================================================================
--- if_iwn_chip_cfg.h (revision 265665)
+++ if_iwn_chip_cfg.h (working copy)
@@ -219,8 +219,9 @@
.regulatory_bands = iwn5000_regulatory_bands,
.enhanced_TX_power = false,
.calib_need =
- ( IWN_FLG_NEED_PHY_CALIB_DC
- | IWN_FLG_NEED_PHY_CALIB_LO
+ (
+ IWN_FLG_NEED_PHY_CALIB_LO
+ | IWN_FLG_NEED_PHY_CALIB_TX_IQ_PERIODIC
| IWN_FLG_NEED_PHY_CALIB_TX_IQ
| IWN_FLG_NEED_PHY_CALIB_BASE_BAND ),
.support_hostap = false,
--
Kaho Toshikazu
Adrian Chadd <adrian at freebsd.org> wrote:
> Hi!
>
> Would you mind trying this?
>
> What values do you have for sc_txchainmask and sc_rxchainmask? Before
> they're over-ridden?
>
> Thanks!
>
>
> -a
>
> adrian at sabrina:~/work/freebsd/head/src/sys/dev/iwn % svn diff .
> Index: if_iwn.c
> ===================================================================
> --- if_iwn.c (revision 265478)
> +++ if_iwn.c (working copy)
> @@ -744,6 +744,8 @@
> sc->limits = &iwn1000_sensitivity_limits;
> sc->base_params = &iwn1000_base_params;
> sc->fwname = "iwn1000fw";
> + /* XXX override chainmasks? */
> + sc->txchainmask = IWN_ANT_AB;
> break;
> default:
> device_printf(sc->sc_dev, "adapter type id : 0x%04x sub id :"
> Index: if_iwn_chip_cfg.h
> ===================================================================
> --- if_iwn_chip_cfg.h (revision 265478)
> +++ if_iwn_chip_cfg.h (working copy)
> @@ -219,14 +219,18 @@
> .regulatory_bands = iwn5000_regulatory_bands,
> .enhanced_TX_power = false,
> .calib_need =
> - ( IWN_FLG_NEED_PHY_CALIB_DC
> + (
> +// IWN_FLG_NEED_PHY_CALIB_DC
> | IWN_FLG_NEED_PHY_CALIB_LO
> + | IWN_FLG_NEED_PHY_CALIB_TX_IQ_PERIODIC
> | IWN_FLG_NEED_PHY_CALIB_TX_IQ
> - | IWN_FLG_NEED_PHY_CALIB_BASE_BAND ),
> + | IWN_FLG_NEED_PHY_CALIB_BASE_BAND
> + ),
> .support_hostap = false,
> .no_multi_vaps = true,
> .additional_gp_drv_bit = IWN_GP_DRIVER_NONE,
> - .bt_mode = IWN_BT_NONE,
> +// .bt_mode = IWN_BT_NONE,
> + .bt_mode = IWN_BT_SIMPLE,
> .plcp_err_threshold = IWN_PLCP_ERR_EXT_LONG_THRESHOLD,
> };
> static const struct iwn_base_params iwn_6000_base_params = {
More information about the freebsd-wireless
mailing list