From 5b9fbf947411587f9bb54f123fa1501b7fc60b7a Mon Sep 17 00:00:00 2001 From: Alex Griffin Date: Thu, 30 May 2019 03:48:38 -0500 Subject: nongnu: Add broadcom-sta. * nongnu/packages/linux.scm (broadcom-sta): New variable. * nongnu/packages/patches/broadcom-sta-debian-fix-kernel-warnings.patch: New file. * nongnu/packages/patches/broadcom-sta-fix_mac_profile_discrepancy.patch: New file. * nongnu/packages/patches/broadcom-sta-gcc.patch: New file. * nongnu/packages/patches/broadcom-sta-license.patch: New file. * nongnu/packages/patches/broadcom-sta-linux-4.11.patch: New file. * nongnu/packages/patches/broadcom-sta-linux-4.12.patch: New file. * nongnu/packages/patches/broadcom-sta-linux-4.15.patch: New file. * nongnu/packages/patches/broadcom-sta-linux-4.7.patch: New file. * nongnu/packages/patches/broadcom-sta-linux-4.8.patch: New file. * nongnu/packages/patches/broadcom-sta-linux-5.1.patch: New file. * nongnu/packages/patches/broadcom-sta-null-pointer-fix.patch: New file. * nongnu/packages/patches/broadcom-sta-rdtscl.patch: New file. --- .../packages/patches/broadcom-sta-linux-4.12.patch | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 nongnu/packages/patches/broadcom-sta-linux-4.12.patch (limited to 'nongnu/packages/patches/broadcom-sta-linux-4.12.patch') diff --git a/nongnu/packages/patches/broadcom-sta-linux-4.12.patch b/nongnu/packages/patches/broadcom-sta-linux-4.12.patch new file mode 100644 index 0000000..8abc73d --- /dev/null +++ b/nongnu/packages/patches/broadcom-sta-linux-4.12.patch @@ -0,0 +1,68 @@ +diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +index da36405..d3741eb 100644 +--- a/src/wl/sys/wl_cfg80211_hybrid.c ++++ b/src/wl/sys/wl_cfg80211_hybrid.c +@@ -53,7 +53,11 @@ u32 wl_dbg_level = WL_DBG_ERR; + #endif + + static s32 wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++ enum nl80211_iftype type, struct vif_params *params); ++#else + enum nl80211_iftype type, u32 *flags, struct vif_params *params); ++#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0) + static s32 + wl_cfg80211_scan(struct wiphy *wiphy, +@@ -466,7 +470,11 @@ wl_dev_ioctl(struct net_device *dev, u32 cmd, void *arg, u32 len) + + static s32 + wl_cfg80211_change_iface(struct wiphy *wiphy, struct net_device *ndev, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++ enum nl80211_iftype type, ++#else + enum nl80211_iftype type, u32 *flags, ++#endif + struct vif_params *params) + { + struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy); +@@ -2361,6 +2369,20 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, + const wl_event_msg_t *e, void *data) + { + struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++ struct cfg80211_bss *bss; ++ struct wlc_ssid *ssid; ++ ssid = &wl->profile->ssid; ++ bss = cfg80211_get_bss(wl_to_wiphy(wl), NULL, (s8 *)&wl->bssid, ++ ssid->SSID, ssid->SSID_len, WLAN_CAPABILITY_ESS, WLAN_CAPABILITY_ESS); ++ struct cfg80211_roam_info roam_info = { ++ .bss = bss, ++ .req_ie = conn_info->req_ie, ++ .req_ie_len = conn_info->req_ie_len, ++ .resp_ie = conn_info->resp_ie, ++ .resp_ie_len = conn_info->resp_ie_len, ++ }; ++#endif + s32 err = 0; + + wl_get_assoc_ies(wl); +@@ -2368,12 +2390,17 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, + memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN); + wl_update_bss_info(wl); + cfg80211_roamed(ndev, ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) ++ &roam_info, ++#else + #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) + &wl->conf->channel, + #endif + (u8 *)&wl->bssid, + conn_info->req_ie, conn_info->req_ie_len, +- conn_info->resp_ie, conn_info->resp_ie_len, GFP_KERNEL); ++ conn_info->resp_ie, conn_info->resp_ie_len, ++#endif ++ GFP_KERNEL); + WL_DBG(("Report roaming result\n")); + + set_bit(WL_STATUS_CONNECTED, &wl->status); -- cgit v1.2.3