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 <adr...@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@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 = {
_______________________________________________
freebsd-wireless@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-wireless
To unsubscribe, send any mail to "freebsd-wireless-unsubscr...@freebsd.org"

Reply via email to