aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/330-v4.18-0002-brcmfmac-reports-boottime_ns-while-informing-bss.patch
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2018-06-18 07:32:34 +0200
committerRafał Miłecki <rafal@milecki.pl>2018-06-23 14:29:39 +0200
commitc437adb02473accadeec252e9d87d58ce44cd6ed (patch)
treec75b1e29d86268dbcdf7c443771b4f795d524860 /package/kernel/mac80211/patches/330-v4.18-0002-brcmfmac-reports-boottime_ns-while-informing-bss.patch
parent2811c97803e50e9964a2c23b9d8271f0265bcdca (diff)
downloadupstream-c437adb02473accadeec252e9d87d58ce44cd6ed.tar.gz
upstream-c437adb02473accadeec252e9d87d58ce44cd6ed.tar.bz2
upstream-c437adb02473accadeec252e9d87d58ce44cd6ed.zip
mac80211: backport brcmfmac changes from kernel 4.18
Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit c446e38c862201dd4d6a4fb8ea6e49172980952d)
Diffstat (limited to 'package/kernel/mac80211/patches/330-v4.18-0002-brcmfmac-reports-boottime_ns-while-informing-bss.patch')
-rw-r--r--package/kernel/mac80211/patches/330-v4.18-0002-brcmfmac-reports-boottime_ns-while-informing-bss.patch76
1 files changed, 76 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/330-v4.18-0002-brcmfmac-reports-boottime_ns-while-informing-bss.patch b/package/kernel/mac80211/patches/330-v4.18-0002-brcmfmac-reports-boottime_ns-while-informing-bss.patch
new file mode 100644
index 0000000000..4f59507cab
--- /dev/null
+++ b/package/kernel/mac80211/patches/330-v4.18-0002-brcmfmac-reports-boottime_ns-while-informing-bss.patch
@@ -0,0 +1,76 @@
+From 7742fce4c007141617dab9bcb90034b3c0fe2347 Mon Sep 17 00:00:00 2001
+From: Franky Lin <franky.lin@broadcom.com>
+Date: Thu, 26 Apr 2018 12:18:35 +0200
+Subject: [PATCH] brcmfmac: reports boottime_ns while informing bss
+
+Provides a timestamp in bss information so user space can see when the
+bss info was updated. Since tsf is not available from the dongle events
+boottime is reported instead.
+
+Reported-by: Dmitry Shmidt <dimitrysh@google.com>
+Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
+Signed-off-by: Franky Lin <franky.lin@broadcom.com>
+Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../broadcom/brcm80211/brcmfmac/cfg80211.c | 26 +++++++++++-----------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+@@ -2728,7 +2728,6 @@ static s32 brcmf_inform_single_bss(struc
+ struct brcmf_bss_info_le *bi)
+ {
+ struct wiphy *wiphy = cfg_to_wiphy(cfg);
+- struct ieee80211_channel *notify_channel;
+ struct cfg80211_bss *bss;
+ struct ieee80211_supported_band *band;
+ struct brcmu_chan ch;
+@@ -2738,7 +2737,7 @@ static s32 brcmf_inform_single_bss(struc
+ u16 notify_interval;
+ u8 *notify_ie;
+ size_t notify_ielen;
+- s32 notify_signal;
++ struct cfg80211_inform_bss bss_data = { 0 };
+
+ if (le32_to_cpu(bi->length) > WL_BSS_INFO_MAX) {
+ brcmf_err("Bss info is larger than buffer. Discarding\n");
+@@ -2758,27 +2757,28 @@ static s32 brcmf_inform_single_bss(struc
+ band = wiphy->bands[NL80211_BAND_5GHZ];
+
+ freq = ieee80211_channel_to_frequency(channel, band->band);
+- notify_channel = ieee80211_get_channel(wiphy, freq);
++ bss_data.chan = ieee80211_get_channel(wiphy, freq);
++ bss_data.scan_width = NL80211_BSS_CHAN_WIDTH_20;
++ bss_data.boottime_ns = ktime_to_ns(ktime_get_boottime());
+
+ notify_capability = le16_to_cpu(bi->capability);
+ notify_interval = le16_to_cpu(bi->beacon_period);
+ notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
+ notify_ielen = le32_to_cpu(bi->ie_length);
+- notify_signal = (s16)le16_to_cpu(bi->RSSI) * 100;
++ bss_data.signal = (s16)le16_to_cpu(bi->RSSI) * 100;
+
+ brcmf_dbg(CONN, "bssid: %pM\n", bi->BSSID);
+ brcmf_dbg(CONN, "Channel: %d(%d)\n", channel, freq);
+ brcmf_dbg(CONN, "Capability: %X\n", notify_capability);
+ brcmf_dbg(CONN, "Beacon interval: %d\n", notify_interval);
+- brcmf_dbg(CONN, "Signal: %d\n", notify_signal);
++ brcmf_dbg(CONN, "Signal: %d\n", bss_data.signal);
+
+- bss = cfg80211_inform_bss(wiphy, notify_channel,
+- CFG80211_BSS_FTYPE_UNKNOWN,
+- (const u8 *)bi->BSSID,
+- 0, notify_capability,
+- notify_interval, notify_ie,
+- notify_ielen, notify_signal,
+- GFP_KERNEL);
++ bss = cfg80211_inform_bss_data(wiphy, &bss_data,
++ CFG80211_BSS_FTYPE_UNKNOWN,
++ (const u8 *)bi->BSSID,
++ 0, notify_capability,
++ notify_interval, notify_ie,
++ notify_ielen, GFP_KERNEL);
+
+ if (!bss)
+ return -ENOMEM;