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