Search Linux Wireless

Re: [PATCH v3 00/12] ath9k_hw: complete support for AR9271

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

 



On Mon, Mar 15, 2010 at 4:49 PM, Luis R. Rodriguez
<lrodriguez@xxxxxxxxxxx> wrote:
> On Mon, Mar 15, 2010 at 04:25:14PM -0700, Luis R. Rodriguez wrote:
>> On Mon, Mar 15, 2010 at 2:43 PM, Luis R. Rodriguez
>> <lrodriguez@xxxxxxxxxxx> wrote:
>> > On Fri, Mar 12, 2010 at 09:46:44PM -0800, Luis R. Rodriguez wrote:
>> >>   * I spotted a check added to bail out for tweaking the ACK/CTS
>> >>     time out values -- this check should no longer be required
>> >>     since Felix sent a proper fix for this recenlty. I removed that
>> >>     hunk:
>> >>
>> >> @@ -1210,6 +1195,9 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah)
>> >>               REG_WRITE(ah, AR_PCU_MISC,
>> >>                         REG_READ(ah, AR_PCU_MISC) | ah->misc_mode);
>> >>
>> >> +     if (AR_SREV_9271(ah))
>> >> +             return;
>> >> +
>> >>       if (conf->channel && conf->channel->band == IEEE80211_BAND_5GHZ)
>> >>               sifstime = 16;
>> >>       else
>> >> --
>> >
>> > Turns out this hunk is required... but the rf changes are not (patch 4/12)
>> > so I'll just respin and send a new series out.
>> >
>> > We should look for a better way to address this issue instead of the above hunk
>> > otherwise we will be skipping all changes to the slot time from mac80211.
>> > Right now ath9k_htc does not support this (BSS_CHANGED_ERP_SLOT) or a
>> > set_coverage_class() callback.
>>
>> We'll need to support at least BSS_CHANGED_ERP_SLOT in case the AP
>> switches to compatibility mode.
>
> How about something like this:
>
> diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
> index 3b4c636..387eef9 100644
> --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c
> +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c
> @@ -1438,6 +1438,14 @@ static void ath9k_htc_bss_info_changed(struct ieee80211_hw *hw,
>                ath9k_htc_beacon_config(priv, vif, bss_conf);
>        }
>
> +       if (changed & BSS_CHANGED_ERP_SLOT) {
> +               if (bss_conf->use_short_slot)
> +                       ah->slottime = 9;
> +               else
> +                       ah->slottime = 20;
> +               ath9k_hw_init_global_settings(ah);
> +       }
> +
>        if (changed & BSS_CHANGED_BEACON)
>                ath9k_htc_beacon_update(priv, vif);
>
> diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
> index 00570fb..867cfaf 100644
> --- a/drivers/net/wireless/ath/ath9k/hw.c
> +++ b/drivers/net/wireless/ath/ath9k/hw.c
> @@ -784,9 +784,6 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah)
>                REG_WRITE(ah, AR_PCU_MISC,
>                          REG_READ(ah, AR_PCU_MISC) | ah->misc_mode);
>
> -       if (AR_SREV_9271(ah))
> -               return;
> -
>        if (conf->channel && conf->channel->band == IEEE80211_BAND_5GHZ)
>                sifstime = 16;
>        else
> @@ -807,6 +804,10 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah)
>                acktimeout += 64 - sifstime - ah->slottime;
>
>        ath9k_hw_setslottime(ah, slottime);
> +
> +       if (AR_SREV_9271(ah))
> +               return;
> +
>        ath9k_hw_set_ack_timeout(ah, acktimeout);
>        ath9k_hw_set_cts_timeout(ah, acktimeout);
>        if (ah->globaltxtimeout != (u32) -1)

Works for me with ar9271, will send with this new change for the
hardware changes, please review and consider integration on the
ath9k_htc driver side of things.

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