Search Linux Wireless

Re: [ipw3945-devel] iwl4965: 11a channels disabled in current wireless-testing

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

 



Fyi, I created bug #2172 (http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2172) for this issue.

Dan

On Mar 9, 2010, at 2:05 PM, Daniel Halperin wrote:

> On Mar 4, 2010, at 9:31 AM, Luis R. Rodriguez wrote:
> 
>> On Thu, Mar 4, 2010 at 2:24 AM, Daniel Halperin
>> <dhalperi@xxxxxxxxxxxxxxxxx> wrote:
>>> On Mar 3, 2010, at 2:54 PM, Daniel Halperin wrote:
>> 
>>> My hypothesis as to why this code used to work is that I was using the CONFIG_WIRELESS_OLD_REGULATORY.
>> 
>> Can you test the same by disabling CONFIG_WIRELESS_OLD_REGULATORY ?
> 
> I am no longer using CONFIG_WIRELESS_OLD_REGULATORY; in fact I believe that kernel option has been removed. I don't have any old versions around any more unfortunately to test this hypothesis with.
> 
>> There is a way for a driver to claim a custom world regulatory domain,
>> this can be done wiphy_apply_custom_regulatory(), ath/regd.c uses
>> that. Otherwise indeed the pegged regulatory domain will be used as a
>> basis for disabling further channels.
> 
> It turns out that disabling WIPHY_FLAG_STRICT_REGULATORY:
> 
> --- a/drivers/net/wireless/iwlwifi/iwl-agn.c
> +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
> @@ -2632,7 +2632,7 @@ static int iwl_mac_setup_register(struct iwl_priv *priv)
>                BIT(NL80211_IFTYPE_STATION) |
>                BIT(NL80211_IFTYPE_ADHOC);
> 
> -       hw->wiphy->flags |= WIPHY_FLAG_STRICT_REGULATORY |
> +       hw->wiphy->flags |= //WIPHY_FLAG_STRICT_REGULATORY |
>                            WIPHY_FLAG_DISABLE_BEACON_HINTS;
> 
>        /*
> 
> also fixes the problem; in reality this is a hack. It does seem to keep the proper driver-set regulatory limits even when I switch modes or channels or CRDA domains. This is because iwl_mac_setup_register() happens after the eeprom is read in iwl-agn.c, and thus the regulatory flags (chan->orig_flags) are pegged and thus stay set properly throughout the run. But it seems like the right approach is actually to do what ath/regd.c does and apply the custom regulatory domain.
> 
> Right now, iwlwifi sets WIPHY_FLAG_STRICT_REGULATORY but never sends the custom regulatory domain and so all CRDA requests are ignored by the checks in <base>/net/wireless/reg.c:handle_channel. (Until iwlagn, but not cfg80211, is reloaded).
> 
> Dan
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Ipw3945-devel mailing list
> Ipw3945-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/ipw3945-devel

--
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