diff options
Diffstat (limited to 'linux-recent.patch')
-rw-r--r-- | linux-recent.patch | 52 |
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; |