Search Linux Wireless

Re: Intel 4965 HT rates

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

 



On Sun, Dec 20, 2009 at 1:42 PM, Luis R. Rodriguez <mcgrof@xxxxxxxxx> wrote:
> On Sun, Dec 20, 2009 at 5:10 AM, Valentin Manea <linux-wireless@xxxxxx> wrote:
>> Hi,
>>
>>  I'm running compat-wireless-2.6.33-rc1 and iw list shows some confusing HT
>> capabilities:
>>        Band 1:
>>                HT capabilities: 0x082c
>>                        * 20 MHz operation
>>                        * SM PS disabled
>>                        * 20 MHz short GI
>>                        * max A-MSDU len 7935
>>
>> but for 802.11a channels:
>>        Band 2:
>>                HT capabilities: 0x086e
>>                        * 20/40 MHz operation
>>                        * SM PS disabled
>>                        * 20 MHz short GI
>>                        * 40 MHz short GI
>>                        * max A-MSDU len 7935
>>
>> While I can't tell when this happened, I remember older 2.6.29 releases
>> supported HT40 for both bands.
>
> How do you know? What makes you believe that was the case?
>
>> The wireless card is an Intel 4965 on a Thinkpad T61.
>
> The ht_cap that gets parsed and sent back through nl80211 is
> initialized in iwl-agn on iwl-core.c on iwlcore_init_ht_hw_capab() as
> follows
>
> static void iwlcore_init_ht_hw_capab(const struct iwl_priv *priv,
>                              struct ieee80211_sta_ht_cap *ht_info,
>                              enum ieee80211_band band)
> {
>        ....
>        if (priv->hw_params.ht40_channel & BIT(band)) {
>                ht_info->cap |= IEEE80211_HT_CAP_SUP_WIDTH_20_40;
>                ht_info->cap |= IEEE80211_HT_CAP_SGI_40;
>                ht_info->mcs.rx_mask[4] = 0x01;
>                max_bit_rate = MAX_BIT_RATE_40_MHZ;
>        }
>        ....
> }
>
> And the priv->hw_params.ht40_channel gets initialized for 4965
> hardware on iwl4965_hw_set_hw_params():
>
> static int iwl4965_hw_set_hw_params(struct iwl_priv *priv)
> {
>        ...
>        priv->hw_params.ht40_channel = BIT(IEEE80211_BAND_5GHZ);
>        ....
> }
>
> iwl-5000 and iwl-6000 sets this to both bands:
>
> int iwl5000_hw_set_hw_params(struct iwl_priv *priv)
> {
>        ....
>        priv->hw_params.ht40_channel =  BIT(IEEE80211_BAND_2GHZ) |
>                                        BIT(IEEE80211_BAND_5GHZ);
>        ....
> }
>
> static int iwl6000_hw_set_hw_params(struct iwl_priv *priv)
> {
>        ....
>        priv->hw_params.ht40_channel =  BIT(IEEE80211_BAND_2GHZ) |
>                                        BIT(IEEE80211_BAND_5GHZ);
>        ....
> }
>
> So it appears to be done explicitly in software, not sure if hardware
> does support HT40 on 2.4 GHz band on the 4965, Intel folks would
> though.

Just checked 2.6.29 code and its the same there.

  Luis
��.n��������+%������w��{.n�����{���zW����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f


[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