diff options
Diffstat (limited to 'package/kernel/mac80211/patches/372-0006-brcmfmac-Fix-station-info-rate-information.patch')
-rw-r--r-- | package/kernel/mac80211/patches/372-0006-brcmfmac-Fix-station-info-rate-information.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/372-0006-brcmfmac-Fix-station-info-rate-information.patch b/package/kernel/mac80211/patches/372-0006-brcmfmac-Fix-station-info-rate-information.patch new file mode 100644 index 0000000000..0abcf1eef4 --- /dev/null +++ b/package/kernel/mac80211/patches/372-0006-brcmfmac-Fix-station-info-rate-information.patch @@ -0,0 +1,36 @@ +From: Hante Meuleman <meuleman@broadcom.com> +Date: Thu, 8 Oct 2015 20:33:16 +0200 +Subject: [PATCH] brcmfmac: Fix station info rate information. + +Txrate and rxrate in get_station got assigned first with value +in kbps and then divided by 100 to get it in 100kbps unit. The +problem with that is that type of rate is u16 which resulted +in incorrect values for high data rate values. + +Reviewed-by: Arend Van Spriel <arend@broadcom.com> +Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> +Signed-off-by: Hante Meuleman <meuleman@broadcom.com> +Signed-off-by: Arend van Spriel <arend@broadcom.com> +Signed-off-by: Kalle Valo <kvalo@codeaurora.org> +--- + +--- a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c ++++ b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c +@@ -2477,13 +2477,13 @@ brcmf_cfg80211_get_station(struct wiphy + sinfo->rx_packets += le32_to_cpu(sta_info_le.rx_mcast_pkts); + if (sinfo->tx_packets) { + sinfo->filled |= BIT(NL80211_STA_INFO_TX_BITRATE); +- sinfo->txrate.legacy = le32_to_cpu(sta_info_le.tx_rate); +- sinfo->txrate.legacy /= 100; ++ sinfo->txrate.legacy = ++ le32_to_cpu(sta_info_le.tx_rate) / 100; + } + if (sinfo->rx_packets) { + sinfo->filled |= BIT(NL80211_STA_INFO_RX_BITRATE); +- sinfo->rxrate.legacy = le32_to_cpu(sta_info_le.rx_rate); +- sinfo->rxrate.legacy /= 100; ++ sinfo->rxrate.legacy = ++ le32_to_cpu(sta_info_le.rx_rate) / 100; + } + if (le16_to_cpu(sta_info_le.ver) >= 4) { + sinfo->filled |= BIT(NL80211_STA_INFO_TX_BYTES); |