Search Linux Wireless

Re: [RFC/RFT] iwl3945: use software scanning by default

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Stanislaw,

On Tue, 2011-02-08 at 05:36 -0800, Stanislaw Gruszka wrote:
> Looking for some more testing and opinions.
> 
> Patch fixes:
> https://bugzilla.redhat.com/show_bug.cgi?id=671366
> and probably some other "very poor performance" bugs reported
> elsewhere.
> 
> Sometimes after hardware scanning device is unable to receive frames
> at higher rate, what cause that very slow speed is observed by the users.
> 
> To workaround problem we can use software scanning. Patch remove
> "deprecated" warning and make sw scan be used by default on 3945.
> 
> On older kernels, in particular 2.6.35, software scanning does not
> fix problem. On my setup, not affected by bug, I can see slow speed
> with software scans on 2.6.35 as well. I'm not quite sure why. Anyway
> on upstream patch works good for me and bug reporter.
> 
> ---
>  drivers/net/wireless/iwlwifi/iwl-core.h     |    4 ++--
>  drivers/net/wireless/iwlwifi/iwl3945-base.c |   14 +++-----------
>  2 files changed, 5 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
> index 6e14a7b..9e7a6d1 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-core.h
> +++ b/drivers/net/wireless/iwlwifi/iwl-core.h
> @@ -254,8 +254,8 @@ struct iwl_ops {
>  };
>  
>  struct iwl_mod_params {
> -	int sw_crypto;		/* def: 0 = using hardware encryption */
> -	int disable_hw_scan;	/* def: 0 = use h/w scan */
> +	int sw_crypto;		/* def: HW dependent */
> +	int disable_hw_scan;	/* def: HW dependent */
>  	int num_of_queues;	/* def: HW dependent */
>  	int disable_11n;	/* def: 0 = 11n capabilities enabled */
>  	int amsdu_size_8K;	/* def: 1 = enable 8K amsdu size */
> diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
> index 10e8034..7d9e234 100644
> --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
> +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
> @@ -94,6 +94,7 @@ MODULE_LICENSE("GPL");
>  struct iwl_mod_params iwl3945_mod_params = {
>  	.sw_crypto = 1,
>  	.restart_fw = 1,
> +	.disable_hw_scan = 1,
>  	/* the rest are 0 by default */
>  };
>  
> @@ -3996,16 +3997,8 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
>  	priv->contexts[IWL_RXON_CTX_BSS].station_devtype = RXON_DEV_TYPE_ESS;
>  	priv->contexts[IWL_RXON_CTX_BSS].unused_devtype = RXON_DEV_TYPE_ESS;
>  
> -	/*
> -	 * Disabling hardware scan means that mac80211 will perform scans
> -	 * "the hard way", rather than using device's scan.
> -	 */
> -	if (iwl3945_mod_params.disable_hw_scan) {
> -		dev_printk(KERN_DEBUG, &(pdev->dev),
> -			"sw scan support is deprecated\n");
> +	if (iwl3945_mod_params.disable_hw_scan)
>  		iwl3945_hw_ops.hw_scan = NULL;
> -	}
> -
>  
>  	IWL_DEBUG_INFO(priv, "*** LOAD DRIVER ***\n");
>  	priv->cfg = cfg;
> @@ -4326,8 +4319,7 @@ MODULE_PARM_DESC(debug, "debug output mask");
>  #endif
>  module_param_named(disable_hw_scan, iwl3945_mod_params.disable_hw_scan,
>  		   int, S_IRUGO);
> -MODULE_PARM_DESC(disable_hw_scan,
> -		 "disable hardware scanning (default 0) (deprecated)");
> +MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 1)");
>  module_param_named(fw_restart3945, iwl3945_mod_params.restart_fw, int, S_IRUGO);
>  MODULE_PARM_DESC(fw_restart3945, "restart firmware in case of error");
>  

don't have much experience with 3945, but not sure setting sw scan by
default is the right choice?

Wey

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux