Search Linux Wireless

Re: [PATCH 23/40] wl12xx: re-enable block ack session support

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

 



On Tue, 2011-08-09 at 12:13 +0300, Eliad Peller wrote: 
> diff --git a/drivers/net/wireless/wl12xx/acx.c b/drivers/net/wireless/wl12xx/acx.c
> index 6885568..02b9c7e 100644
> --- a/drivers/net/wireless/wl12xx/acx.c
> +++ b/drivers/net/wireless/wl12xx/acx.c
> @@ -1320,25 +1320,21 @@ int wl1271_acx_set_ht_capabilities(struct wl1271 *wl,
>         acx = kzalloc(sizeof(*acx), GFP_KERNEL);
>         if (!acx) {
>                 ret = -ENOMEM;
>                 goto out;
>         }
>  
> -       /* Allow HT Operation ? */
>         if (allow_ht_operation) {
> -               ht_capabilites =
> -                       WL1271_ACX_FW_CAP_HT_OPERATION;
> -               if (ht_cap->cap & IEEE80211_HT_CAP_GRN_FLD)
> -                       ht_capabilites |=
> -                               WL1271_ACX_FW_CAP_GREENFIELD_FRAME_FORMAT;
> -               if (ht_cap->cap & IEEE80211_HT_CAP_SGI_20)
> -                       ht_capabilites |=
> -                               WL1271_ACX_FW_CAP_SHORT_GI_FOR_20MHZ_PACKETS;
> -               if (ht_cap->cap & IEEE80211_HT_CAP_LSIG_TXOP_PROT)
> -                       ht_capabilites |=
> -                               WL1271_ACX_FW_CAP_LSIG_TXOP_PROTECTION;
> +               /* no need to translate capabilities - use the spec values */
> +               ht_capabilites = ht_cap->cap;
> +
> +               /*
> +                * this bit is not employed by the spec but only by FW to
> +                * indicate peer HT support
> +                */
> +               ht_capabilites |= WL12XX_HT_CAP_HT_OPERRATION;

Typo, OPERATION.


>  /* setup BA session receiver setting in the FW. */
> -int wl1271_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index, u16 ssn,
> -                                       bool enable)
> +int wl1271_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index,
> +                                        u16 ssn, bool enable, u8 peer_hlid)

Indentation.


> -       /* Single link for now */
> -       acx->link_id = 1;
> +       acx->hlid = peer_hlid;
>         acx->tid = tid_index;
>         acx->enable = enable;
> -       acx->win_size = 0;
> +       acx->win_size = RX_BA_WIN_SIZE;

Shouldn't we put this one in the conf structure as well?


> diff --git a/drivers/net/wireless/wl12xx/acx.h b/drivers/net/wireless/wl12xx/acx.h
> index ac6194e..ba70f38 100644
> --- a/drivers/net/wireless/wl12xx/acx.h
> +++ b/drivers/net/wireless/wl12xx/acx.h
> @@ -894,33 +894,26 @@ struct wl1271_acx_rssi_snr_avg_weights {
>         u8 rssi_beacon;
>         u8 rssi_data;
>         u8 snr_beacon;
>         u8 snr_data;
>  };
>  
> +
> +/* special capability bit (not employed by the 802.11n spec) */
> +#define WL12XX_HT_CAP_HT_OPERRATION BIT(16)

Same typo as earlier.


> @@ -1215,13 +1191,13 @@ enum {
>         ACX_FRAG_CFG                = 0x004F,
>         ACX_BET_ENABLE              = 0x0050,
>         ACX_RSSI_SNR_TRIGGER        = 0x0051,
>         ACX_RSSI_SNR_WEIGHTS        = 0x0052,
>         ACX_KEEP_ALIVE_MODE         = 0x0053,
>         ACX_SET_KEEP_ALIVE_CONFIG   = 0x0054,
> -       ACX_BA_SESSION_POLICY_CFG   = 0x0055,
> +       ACX_BA_SESSION_INITIATOR_POLICY = 0x0055,

Use ACX_BA_SESSION_INIT_POLICY to keep it small.  Unless you want to
realign all the values.


> @@ -1295,17 +1271,15 @@ int wl1271_acx_rssi_snr_trigger(struct wl1271 *wl, bool enable,
>  int wl1271_acx_rssi_snr_avg_weights(struct wl1271 *wl);
>  int wl1271_acx_set_ht_capabilities(struct wl1271 *wl,
>                                     struct ieee80211_sta_ht_cap *ht_cap,
>                                     bool allow_ht_operation);
>  int wl1271_acx_set_ht_information(struct wl1271 *wl,
>                                    u16 ht_operation_mode);
> -int wl1271_acx_set_ba_session(struct wl1271 *wl,
> -                             enum ieee80211_back_parties direction,
> -                             u8 tid_index, u8 policy);
> -int wl1271_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index, u16 ssn,
> -                                      bool enable);
> +int wl1271_acx_set_ba_initiator_policy(struct wl1271 *wl);
> +int wl1271_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index,
> +                                        u16 ssn, bool enable, u8 peer_hlid);

Indentation.


-- 
Cheers,
Luca.

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