[PATCH] libertas: simplify and clean up data rate handling
Remove unused/duplicated fields and consolidate static data rate arrays, for example the libertas_supported_rates[] and datarates[] arrays in the bss_descriptor structure, and the libertas_supported_rates field in the wlan_adapter structure. Introduce libertas_fw_index_to_data_rate and libertas_data_rate_to_fw_index functions and use them everywhere firmware requires a rate index rather than a rate array. The firmware requires the 4 basic rates to have the MSB set, but most other stuff doesn't, like WEXT and mesh ioctls. Therefore, only set the MSB on basic rates when pushing rate arrays to firmware instead of doing a ton of (rate & 0x7f) everywhere. Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
David S. Miller

parent
e52414728b
commit
8c51276575
@@ -428,8 +428,8 @@ struct PS_CMD_ConfirmSleep {
|
||||
|
||||
struct cmd_ds_802_11_data_rate {
|
||||
__le16 action;
|
||||
__le16 reserverd;
|
||||
u8 datarate[G_SUPPORTED_RATES];
|
||||
__le16 reserved;
|
||||
u8 rates[MAX_RATES];
|
||||
};
|
||||
|
||||
struct cmd_ds_802_11_rate_adapt_rateset {
|
||||
@@ -447,7 +447,7 @@ struct cmd_ds_802_11_ad_hoc_start {
|
||||
union ieeetypes_phyparamset phyparamset;
|
||||
__le16 probedelay;
|
||||
__le16 capability;
|
||||
u8 datarate[G_SUPPORTED_RATES];
|
||||
u8 rates[MAX_RATES];
|
||||
u8 tlv_memory_size_pad[100];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
@@ -462,7 +462,7 @@ struct adhoc_bssdesc {
|
||||
union ieeetypes_phyparamset phyparamset;
|
||||
union IEEEtypes_ssparamset ssparamset;
|
||||
__le16 capability;
|
||||
u8 datarates[G_SUPPORTED_RATES];
|
||||
u8 rates[MAX_RATES];
|
||||
|
||||
/* DO NOT ADD ANY FIELDS TO THIS STRUCTURE. It is used below in the
|
||||
* Adhoc join command and will cause a binary layout mismatch with
|
||||
|
Reference in New Issue
Block a user