Date: Friday, October 14, 2022 @ 07:13:14 Author: arodseth Revision: 1328528
patches for linux 6 Added: broadcom-wl-dkms/trunk/014-linux414.patch broadcom-wl-dkms/trunk/015-linux600.patch Modified: broadcom-wl-dkms/trunk/007-linux412.patch broadcom-wl-dkms/trunk/PKGBUILD broadcom-wl-dkms/trunk/dkms.conf.in --------------------+ 007-linux412.patch | 52 ++++++++++++++++++++++++++++++--------------------- 014-linux414.patch | 37 ++++++++++++++++++++++++++++++++++++ 015-linux600.patch | 31 ++++++++++++++++++++++++++++++ PKGBUILD | 14 ++++++++----- dkms.conf.in | 2 + 5 files changed, 110 insertions(+), 26 deletions(-) Modified: 007-linux412.patch =================================================================== --- 007-linux412.patch 2022-10-14 03:08:45 UTC (rev 1328527) +++ 007-linux412.patch 2022-10-14 07:13:14 UTC (rev 1328528) @@ -1,5 +1,16 @@ +From 0b888bf115612074df99654140a1980111c29748 Mon Sep 17 00:00:00 2001 +From: Antoine Cotten <[email protected]> +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; @@ -6,38 +17,36 @@ #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 @@ +#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 @@ WL_DBG(("Report roaming result\n")); set_bit(WL_STATUS_CONNECTED, &wl->status); + Added: 014-linux414.patch =================================================================== --- 014-linux414.patch (rev 0) +++ 014-linux414.patch 2022-10-14 07:13:14 UTC (rev 1328528) @@ -0,0 +1,37 @@ +From: Gerardo Esteban Malazdrewicz <[email protected]> +Date: Fri, 29 Dec 2017 23:44:24 -0400 +Subject: linux414 +Origin: https://bugs.debian.org/885885 + +linux 4.14 changed the kernel_read function prototype. +--- + src/shared/linux_osl.c | 12 +++++++++++- + 1 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/src/shared/linux_osl.c b/src/shared/linux_osl.c +index 9adc392..b24a973 100644 +--- a/src/shared/linux_osl.c ++++ b/src/shared/linux_osl.c +@@ -1076,11 +1076,21 @@ osl_os_get_image_block(char *buf, int len, void *image) + { + struct file *fp = (struct file *)image; + int rdlen; ++ loff_t pos; + + if (!image) + return 0; + +- rdlen = kernel_read(fp, fp->f_pos, buf, len); ++ pos = fp->f_pos; ++ rdlen = kernel_read(fp, ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0) ++ pos, ++#endif ++ buf, len ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0) ++ ,&pos ++#endif ++ ); + if (rdlen > 0) + fp->f_pos += rdlen; + Added: 015-linux600.patch =================================================================== --- 015-linux600.patch (rev 0) +++ 015-linux600.patch 2022-10-14 07:13:14 UTC (rev 1328528) @@ -0,0 +1,31 @@ +From 933540c63f33e6ac2825d65c4b681ef3387d9146 Mon Sep 17 00:00:00 2001 +From: Antoine Cotten <[email protected]> +Date: Mon, 15 Aug 2022 17:53:51 +0200 +Subject: [PATCH] cfg80211_roam_info compat for MLO APIs in Linux >= 6.0 + +The 'bssid' struct field is now under 'links.bssid'. + +See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=efbabc11650040c64884ff3019b88c7bcc0ceb1d + +Original patch by Joan Bruguera: +https://gist.github.com/joanbm/207210d74637870c01ef5a3c262a597d +--- + src/wl/sys/wl_cfg80211_hybrid.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +index 5e9e6d3..5ec35c5 100644 +--- a/src/wl/sys/wl_cfg80211_hybrid.c ++++ b/src/wl/sys/wl_cfg80211_hybrid.c +@@ -2412,7 +2412,11 @@ wl_bss_roaming_done(struct wl_cfg80211_priv *wl, struct net_device *ndev, + struct wl_cfg80211_connect_info *conn_info = wl_to_conn(wl); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) + struct cfg80211_roam_info roam_info = { ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) + .bssid = wl->profile->bssid, ++#else ++ .links[0].bssid = wl->profile->bssid, ++#endif + .req_ie = conn_info->req_ie, + .req_ie_len = conn_info->req_ie_len, + .resp_ie = conn_info->resp_ie, Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-10-14 03:08:45 UTC (rev 1328527) +++ PKGBUILD 2022-10-14 07:13:14 UTC (rev 1328528) @@ -6,12 +6,12 @@ pkgname=broadcom-wl-dkms pkgver=6.30.223.271 -pkgrel=33 +pkgrel=34 pkgdesc='Broadcom 802.11 Linux STA wireless driver' arch=(x86_64) url='https://www.broadcom.com/site-search?filters[pages][content_type][type]=and&filters[pages][content_type][values][]=Downloads&page=1&per_page=10&q=802.11%20linux%20sta%20wireless%20driver' license=(custom) -depends=(dkms) +depends=(dkms linux linux-headers) conflicts=(broadcom-wl) install=broadcom-wl-dkms.install source=(broadcom-wl-dkms.conf @@ -29,9 +29,11 @@ 011-linux59.patch 012-linux517.patch 013-linux518.patch + 014-linux414.patch + 015-linux600.patch "https://docs.broadcom.com/docs-and-downloads/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-${pkgver//./_}.tar.gz") b2sums=('7c4eaa825a37358509a08e5105665eeabc9f097945b6fa163cd5722b00638da5889f5466bd2c5f1b01172f2d0c9fb195f6e18329f2880adb2774406684cbc4c0' - '9c271945a30069d01cefa24c7dae84f359dd2f181699464b34ab884e279fdf5c2d2673a0b2ebdee50df92f76d22da68c77bfd22d003becfd1879b4fd2d10c412' + 'd16abde06bd5e74027994c0d32dc1207dc14aa7cec6c835f56989814e9346dd4760168ce899b1b41784c7922d9c590718c29f84bab514d31bcf6c613c872172a' '038150b9a50025dbd3c81d09755956216b83c0b54db29dc4bfbc3b46bd67cf4640ad643d69ba7f8d486f52cedeb00929b97e02152e72404e6126a05855f97d6f' 'bbc80e1ac01683ccc2d940212347fc11c74bdc252d492ca79a292015ac25df6a153ac97cb6c0f0a8d51c1c33d5dc0de4fdd61b1958499b946dc817d29646b72f' 'ecf3eb75f8eb3331b0a36b39851536de43cffd3b303db9e9f4fe6fe55d463c3343aba17a99668448427764a719e15e3e862d6a3dc0bc61cb68da9934fb427c6f' @@ -38,7 +40,7 @@ '7e091ac44616ea4cfa80b3a5563f4c6a235d2431b911f6bc52074a76b2c1d609dc546430f048abf042f862907f573c6b1dfa24c8c424aeefe73ff13ae3f34900' '3b65cccde7ed80bd88bf945cca6b71fca9eccc4a910666dad4df56a24471535e1d6007e1ea24567002c927357b525683b02c6a7ad2986aca738fc81ab736219f' '28ef5e50fa11fc15b409f3b3ee42aaf329756354ba8b7923d1b27939a6b21bd64b72a4adfb2eeff3c48bb8c4c1bc4294e8fd7744b83768974bf5d0592e20c148' - '8954b0005b84be6028affd21c114efe1ed3ffa3a3f5653b86fb8ece1850adcd0675649ce7faa418afaf48eb0ac4c9f4c1c0f7e19a5d1371b491b4a6130f70360' + '06035b1bca121c72b5e6bf120df644d5496d6020cf8537ec83917bb0f5b5a0a25129730f46201da2cc61e48cbcf4e9d3ed7757f3223e1d3b6e29b531c4c8fabb' '091e1da266ebaa0d429663facf3e81c849fe900c446e1c270ba23b65c15a99efeb1ae6c20905dfcc21b5f4bc3f91b32eb3b7bc9841f2a23508c71312403af774' '7c8012fa51592a3fca6dfde7a7a9c6dd37eb6c406d3f8695927e32c9e714c3faa23295b116a6cd97ec0403b123747b9095883bd7e3abe6c1888c3c9a4630f9f4' '21f7fc163ffcf6857f3a21a8519a42600fd6b3658d14b32191ef1142c817c10c8dc691a3bc39228927ac29d7b7ac5c3a62eb786853046bacb9cc74efb51b6cb0' @@ -45,11 +47,13 @@ 'c1f522f6554a7bfe0f7b789b042ada14316ecc87bc196c83bec95f684152f323a4c31f60ff26843e36338b8c7949bf36719a5c8afa439ff71f7c74dae4c755b6' 'd84d08161530bb9f05f627ec798a0897643869ea9b80781ae9eee85b072922c52e5127e55f04265c53fcfedc4e9da166eb3bb9f9fc2e139d62517ec54c2f45bb' 'e5ae3570dc2f27105c50e6dec807c1f4f1a2824995e0951e7ff405114d519e4f33992d8d2ea2c2d4fc3f9271d57f89bfb5b6b5c79af2c89492209a86ad673456' + '0b1075bd59e8046969052ceb9cbe305ac2373b5d1600701ffcffb5219d3765ef5d15465c3aff63bbc547ed4f663dc4816d1b4fa09176d6c78828e488a9a863c4' + '7d4dfe48577456436d0932bd1eca78fc1f0a952e141f13641b93bb24161a9f6847152966631cc05a6d707f9cf8adbded55a19aeaa2c15c963fffb5db9eff9f63' 'e9d01c1a1a63c07f720e3ee53ee3ef634ab12694135300cb0ce47ade0e9e0084967a0b6df64d983e8184240eb3defb128f650bddb7727e901d50315307f3398a') prepare() { + sed -e "s/@PACKAGE_VERSION@/$pkgver/" dkms.conf.in > dkms.conf sed -i -e '/BRCM_WLAN_IFNAME/s/eth/wlan/' src/wl/sys/wl_linux.c - sed -e "s/@PACKAGE_VERSION@/$pkgver/" dkms.conf.in > dkms.conf sed -i -e "/EXTRA_LDFLAGS/s|\$(src)/lib|/usr/lib/$pkgname|;/GE_49 :=/s|:= .*|:= 1|" Makefile } Modified: dkms.conf.in =================================================================== --- dkms.conf.in 2022-10-14 03:08:45 UTC (rev 1328527) +++ dkms.conf.in 2022-10-14 07:13:14 UTC (rev 1328528) @@ -14,4 +14,6 @@ PATCH[9]="011-linux59.patch" PATCH[10]="012-linux517.patch" PATCH[11]="013-linux518.patch" +PATCH[12]="014-linux414.patch" +PATCH[13]="015-linux600.patch" AUTOINSTALL="yes"
