diff options
author | PÁLI Gábor János <pali.gabor@gmail.com> | 2023-07-27 11:05:17 +0200 |
---|---|---|
committer | PÁLI Gábor János <pali.gabor@gmail.com> | 2023-07-27 11:05:17 +0200 |
commit | 084335e136581edc28137b152cc559778224570e (patch) | |
tree | 269c2e37b0abd971aeccdc1291bc1c3ca9c96aed /aports/broadcom-wl/007-linux412.patch | |
parent | 1f7bcc1ae14273fce0b5d3dded52d599aa035433 (diff) | |
download | freebsd-wifibox-alpine-084335e136581edc28137b152cc559778224570e.zip |
Make Broadcom wireless cards work
- Import Arch Linux patches for the `broadcom-wl` driver and WPA Supplicant
- Implement support for Message Signaled Interrupts (MSI) to allow the card
to be used with PCI pass-through
References:
- https://gitlab.archlinux.org/archlinux/packaging/packages/broadcom-wl-dkms/
- https://gitlab.archlinux.org/archlinux/packaging/packages/wpa_supplicant/
Tested by: venoom27 <venoom27@fromgithub>
Diffstat (limited to 'aports/broadcom-wl/007-linux412.patch')
-rw-r--r-- | aports/broadcom-wl/007-linux412.patch | 52 |
1 files changed, 31 insertions, 21 deletions
diff --git a/aports/broadcom-wl/007-linux412.patch b/aports/broadcom-wl/007-linux412.patch index 8abc73d..1673f06 100644 --- a/aports/broadcom-wl/007-linux412.patch +++ b/aports/broadcom-wl/007-linux412.patch @@ -1,43 +1,52 @@ +From 0b888bf115612074df99654140a1980111c29748 Mon Sep 17 00:00:00 2001 +From: Antoine Cotten <tonio.cotten@gmail.com> +Date: Fri, 7 Jul 2017 15:17:47 +0200 +Subject: [PATCH] Apply patch from Debian bug #867258 + +Compile fix with kernel 4.12 +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867258 +--- + src/wl/sys/wl_cfg80211_hybrid.c | 29 +++++++++++++++++++++++++---- + 1 file changed, 25 insertions(+), 4 deletions(-) + diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c -index da36405..d3741eb 100644 +index c46944a..1a9840a 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); +- enum nl80211_iftype type, u32 *flags, struct vif_params *params); ++ enum nl80211_iftype type, ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0) ++ u32 *flags, +#endif ++ struct vif_params *params); #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) +@@ -466,8 +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, u32 *flags, +- struct vif_params *params) + enum nl80211_iftype type, -+#else - enum nl80211_iftype type, u32 *flags, ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0) ++ u32 *flags, +#endif - struct vif_params *params) ++ 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, + struct wireless_dev *wdev; +@@ -2387,6 +2394,15 @@ 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, ++ .bssid = wl->profile->bssid, + .req_ie = conn_info->req_ie, + .req_ie_len = conn_info->req_ie_len, + .resp_ie = conn_info->resp_ie, @@ -46,10 +55,10 @@ index da36405..d3741eb 100644 +#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); + err = wl_get_assoc_ies(wl); +@@ -2401,12 +2417,17 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, + return err; + cfg80211_roamed(ndev, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) + &roam_info, @@ -66,3 +75,4 @@ index da36405..d3741eb 100644 WL_DBG(("Report roaming result\n")); set_bit(WL_STATUS_CONNECTED, &wl->status); + |