summarylogtreecommitdiffstats
path: root/linux-recent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'linux-recent.patch')
-rw-r--r--linux-recent.patch52
1 files changed, 43 insertions, 9 deletions
diff --git a/linux-recent.patch b/linux-recent.patch
index 05e4e1303105..81d27204b4e0 100644
--- a/linux-recent.patch
+++ b/linux-recent.patch
@@ -1,5 +1,5 @@
---- a/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 10:42:08.000000000 +0000
-+++ b/src/wl/sys/wl_cfg80211_hybrid.c 2014-12-30 17:02:13.602127370 +0000
+--- a/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 12:42:08.000000000 +0200
++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2015-04-13 13:20:08.140013177 +0200
@@ -63,8 +63,13 @@
static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
struct cfg80211_ibss_params *params);
@@ -39,7 +39,31 @@
{
struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy);
scb_val_t scb_val;
-@@ -2010,9 +2021,15 @@
+@@ -1441,7 +1452,11 @@
+ WL_DBG(("Could not get rate (%d)\n", err));
+ } else {
+ rate = dtoh32(rate);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
+ sinfo->filled |= STATION_INFO_TX_BITRATE;
++#else
++ sinfo->filled |= BIT(NL80211_STA_INFO_TX_BITRATE);
++#endif
+ sinfo->txrate.legacy = rate * 5;
+ WL_DBG(("Rate %d Mbps\n", (rate / 2)));
+ }
+@@ -1454,7 +1469,11 @@
+ return err;
+ }
+ rssi = dtoh32(scb_val.val);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
+ sinfo->filled |= STATION_INFO_SIGNAL;
++#else
++ sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
++#endif
+ sinfo->signal = rssi;
+ WL_DBG(("RSSI %d dBm\n", rssi));
+ }
+@@ -2010,9 +2029,15 @@
notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
notify_ielen = le32_to_cpu(bi->ie_length);
@@ -55,7 +79,7 @@
if (unlikely(!cbss))
return -ENOMEM;
-@@ -2071,7 +2088,26 @@
+@@ -2071,7 +2096,26 @@
wl_get_assoc_ies(wl);
memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN);
wl_update_bss_info(wl);
@@ -82,7 +106,7 @@
set_bit(WL_STATUS_CONNECTED, &wl->status);
wl->profile->active = true;
}
-@@ -2629,7 +2665,15 @@
+@@ -2629,7 +2673,15 @@
void wl_cfg80211_detach(struct net_device *ndev)
{
@@ -99,8 +123,8 @@
wl_deinit_cfg80211_priv(wl);
wl_free_wdev(wl);
---- a/src/wl/sys/wl_dbg.h 2014-06-26 10:42:08.000000000 +0000
-+++ b/src/wl/sys/wl_dbg.h 2014-12-30 17:02:03.840957429 +0000
+--- a/src/wl/sys/wl_dbg.h 2014-06-26 12:42:08.000000000 +0200
++++ b/src/wl/sys/wl_dbg.h 2015-04-13 13:19:52.443345832 +0200
@@ -55,10 +55,12 @@
#define WL_NONE(args)
@@ -115,8 +139,8 @@
#endif
#define WL_TRACE(args)
#define WL_APSTA_UPDN(args)
---- a/src/wl/sys/wl_linux.c 2014-06-26 10:42:08.000000000 +0000
-+++ b/src/wl/sys/wl_linux.c 2014-12-30 17:02:03.841957446 +0000
+--- a/src/wl/sys/wl_linux.c 2014-06-26 12:42:08.000000000 +0200
++++ b/src/wl/sys/wl_linux.c 2015-04-13 13:19:52.443345832 +0200
@@ -878,7 +878,7 @@
static SIMPLE_DEV_PM_OPS(wl_pm_ops, wl_suspend, wl_resume);
#endif
@@ -160,6 +184,16 @@
WL_UNLOCK(wl);
done1:
+@@ -2157,8 +2159,8 @@
+ wlif = WL_DEV_IF(dev);
+ wl = WL_INFO(dev);
+
++ skb->prev = NULL;
+ if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) {
+- skb->prev = NULL;
+
+ TXQ_LOCK(wl);
+
@@ -2455,8 +2457,10 @@
p80211msg_t *phdr;