aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/rx.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2007-08-02 11:40:45 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:49:48 -0400
commit8c5127657549d055ac9d709cdea73902a6ef392c (patch)
tree33e72a0b55165d51652a002ab6929857f0e2facc /drivers/net/wireless/libertas/rx.c
parente52414728b930f0adcbc38c6498dd03b3568fe99 (diff)
[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>
Diffstat (limited to 'drivers/net/wireless/libertas/rx.c')
-rw-r--r--drivers/net/wireless/libertas/rx.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/wireless/libertas/rx.c b/drivers/net/wireless/libertas/rx.c
index 769c86fb9509..e78636d6651a 100644
--- a/drivers/net/wireless/libertas/rx.c
+++ b/drivers/net/wireless/libertas/rx.c
@@ -260,8 +260,8 @@ int libertas_process_rxed_packet(wlan_private * priv, struct sk_buff *skb)
260 /* Take the data rate from the rxpd structure 260 /* Take the data rate from the rxpd structure
261 * only if the rate is auto 261 * only if the rate is auto
262 */ 262 */
263 if (adapter->is_datarate_auto) 263 if (adapter->auto_rate)
264 adapter->datarate = libertas_index_to_data_rate(p_rx_pd->rx_rate); 264 adapter->cur_rate = libertas_fw_index_to_data_rate(p_rx_pd->rx_rate);
265 265
266 wlan_compute_rssi(priv, p_rx_pd); 266 wlan_compute_rssi(priv, p_rx_pd);
267 267
@@ -424,9 +424,8 @@ static int process_rxed_802_11_packet(wlan_private * priv, struct sk_buff *skb)
424 /* Take the data rate from the rxpd structure 424 /* Take the data rate from the rxpd structure
425 * only if the rate is auto 425 * only if the rate is auto
426 */ 426 */
427 if (adapter->is_datarate_auto) { 427 if (adapter->auto_rate)
428 adapter->datarate = libertas_index_to_data_rate(prxpd->rx_rate); 428 adapter->cur_rate = libertas_fw_index_to_data_rate(prxpd->rx_rate);
429 }
430 429
431 wlan_compute_rssi(priv, prxpd); 430 wlan_compute_rssi(priv, prxpd);
432 431