wl1271: Clean up RX rate reporting
Clean up the code to convert a firmware rate class index into an index for the rate configuration table. Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: Kalle Valo <kalle.valo@nokia.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
7fdd50d07f
commit
f876bb9aaf
@@ -41,66 +41,6 @@ static u32 wl1271_rx_get_buf_size(struct wl1271_fw_status *status,
|
||||
RX_BUF_SIZE_MASK) >> RX_BUF_SIZE_SHIFT_DIV;
|
||||
}
|
||||
|
||||
/* The values of this table must match the wl1271_rates[] array */
|
||||
static u8 wl1271_rx_rate_to_idx[] = {
|
||||
/* MCS rates are used only with 11n */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS7 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS6 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS5 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS4 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS3 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS2 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS1 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS0 */
|
||||
|
||||
11, /* WL1271_RATE_54 */
|
||||
10, /* WL1271_RATE_48 */
|
||||
9, /* WL1271_RATE_36 */
|
||||
8, /* WL1271_RATE_24 */
|
||||
|
||||
/* TI-specific rate */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_22 */
|
||||
|
||||
7, /* WL1271_RATE_18 */
|
||||
6, /* WL1271_RATE_12 */
|
||||
3, /* WL1271_RATE_11 */
|
||||
5, /* WL1271_RATE_9 */
|
||||
4, /* WL1271_RATE_6 */
|
||||
2, /* WL1271_RATE_5_5 */
|
||||
1, /* WL1271_RATE_2 */
|
||||
0 /* WL1271_RATE_1 */
|
||||
};
|
||||
|
||||
/* The values of this table must match the wl1271_rates[] array */
|
||||
static u8 wl1271_5_ghz_rx_rate_to_idx[] = {
|
||||
/* MCS rates are used only with 11n */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS7 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS6 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS5 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS4 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS3 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS2 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS1 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_MCS0 */
|
||||
|
||||
7, /* WL1271_RATE_54 */
|
||||
6, /* WL1271_RATE_48 */
|
||||
5, /* WL1271_RATE_36 */
|
||||
4, /* WL1271_RATE_24 */
|
||||
|
||||
/* TI-specific rate */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_22 */
|
||||
|
||||
3, /* WL1271_RATE_18 */
|
||||
2, /* WL1271_RATE_12 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_11 */
|
||||
1, /* WL1271_RATE_9 */
|
||||
0, /* WL1271_RATE_6 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_5_5 */
|
||||
WL1271_RX_RATE_UNSUPPORTED, /* WL1271_RATE_2 */
|
||||
WL1271_RX_RATE_UNSUPPORTED /* WL1271_RATE_1 */
|
||||
};
|
||||
|
||||
static void wl1271_rx_status(struct wl1271 *wl,
|
||||
struct wl1271_rx_descriptor *desc,
|
||||
struct ieee80211_rx_status *status,
|
||||
@@ -108,20 +48,8 @@ static void wl1271_rx_status(struct wl1271 *wl,
|
||||
{
|
||||
memset(status, 0, sizeof(struct ieee80211_rx_status));
|
||||
|
||||
if ((desc->flags & WL1271_RX_DESC_BAND_MASK) ==
|
||||
WL1271_RX_DESC_BAND_BG) {
|
||||
status->band = IEEE80211_BAND_2GHZ;
|
||||
status->rate_idx = wl1271_rx_rate_to_idx[desc->rate];
|
||||
} else if ((desc->flags & WL1271_RX_DESC_BAND_MASK) ==
|
||||
WL1271_RX_DESC_BAND_A) {
|
||||
status->band = IEEE80211_BAND_5GHZ;
|
||||
status->rate_idx = wl1271_5_ghz_rx_rate_to_idx[desc->rate];
|
||||
} else
|
||||
wl1271_warning("unsupported band 0x%x",
|
||||
desc->flags & WL1271_RX_DESC_BAND_MASK);
|
||||
|
||||
if (unlikely(status->rate_idx == WL1271_RX_RATE_UNSUPPORTED))
|
||||
wl1271_warning("unsupported rate");
|
||||
status->band = wl->band;
|
||||
status->rate_idx = wl1271_rate_to_idx(wl, desc->rate);
|
||||
|
||||
/*
|
||||
* FIXME: Add mactime handling. For IBSS (ad-hoc) we need to get the
|
||||
|
Reference in New Issue
Block a user