broadcom-wl-dkms: add patch to fix dkms on 4.7

This commit is contained in:
Toyam Cox 2016-09-13 11:24:14 -04:00
parent bc9e729fb8
commit 25ff2989de
2 changed files with 48 additions and 9 deletions

View file

@ -0,0 +1,43 @@
Relevant kernel commit: Johannes Berg <johannes.berg@intel.com>:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=57fbcce37be7c1d2622b56587c10ade00e96afa
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=13ae75b103e07304a34ab40c9136e9f53e06475
Presented in issue #4708. The reason is, according to the AUR, that two enum
values were specified in the kernel , IEEE80211_BAND_2GHZ and
NL80211_BAND_2GHZ. IEEE80211_BAND* were pulled out in 4.7, but this code
makes heavy use of that enum. The simple fix is to re-create the values.
This patch came from the folks at Manjaro.
https://github.com/manjaro/packages-extra/blob/master/broadcom-wl-dkms/linux-47.patch
--- src/wl/sys/wl_linux.h 2016-06-04 15:24:22.915341000 +0200
+++ src/wl/sys/wl_linux.h 2016-06-04 15:29:36.236136244 +0200
@@ -18,6 +18,13 @@
* $Id: wl_linux.h 369548 2012-11-19 09:01:01Z $
*/
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0))
+#define ieee80211_band nl80211_band
+#define IEEE80211_BAND_2GHZ NL80211_BAND_2GHZ
+#define IEEE80211_BAND_5GHZ NL80211_BAND_5GHZ
+#define IEEE80211_NUM_BANDS NUM_NL80211_BANDS
+#endif
+
#ifndef _wl_linux_h_
#define _wl_linux_h_
--- src/wl/sys/wl_cfg80211_hybrid.h 2016-06-04 15:34:41.123022255 +0200
+++ src/wl/sys/wl_cfg80211_hybrid.h 2016-06-04 15:37:25.391772105 +0200
@@ -19,6 +19,13 @@
* $Id: wl_cfg80211.h,v 1.1.8.1 2011-01-26 00:57:46 $
*/
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0))
+#define ieee80211_band nl80211_band
+#define IEEE80211_BAND_2GHZ NL80211_BAND_2GHZ
+#define IEEE80211_BAND_5GHZ NL80211_BAND_5GHZ
+#define IEEE80211_NUM_BANDS NUM_NL80211_BANDS
+#endif
+
#ifndef _wl_cfg80211_h_
#define _wl_cfg80211_h_

View file

@ -2,7 +2,7 @@
pkgname=broadcom-wl-dkms
version=6.30.223.271
revision=2
revision=3
maintainer="Juan RP <xtraeme@voidlinux.eu>"
license="Proprietary Broadcom license"
homepage="http://broadcom.com"
@ -47,14 +47,10 @@ do_install() {
# Blacklist OSS broadcom modules.
vmkdir usr/lib/modprobe.d
echo "blacklist b43" > ${DESTDIR}/usr/lib/modprobe.d/wl.conf
echo "blacklist b43legacy" >> ${DESTDIR}/usr/lib/modprobe.d/wl.conf
echo "blacklist ssb" >> ${DESTDIR}/usr/lib/modprobe.d/wl.conf
echo "blacklist bcm43xx" >> ${DESTDIR}/usr/lib/modprobe.d/wl.conf
echo "blacklist brcm80211" >> ${DESTDIR}/usr/lib/modprobe.d/wl.conf
echo "blacklist brcmfmac" >> ${DESTDIR}/usr/lib/modprobe.d/wl.conf
echo "blacklist brcmsmac" >> ${DESTDIR}/usr/lib/modprobe.d/wl.conf
echo "blacklist bcma" >> ${DESTDIR}/usr/lib/modprobe.d/wl.conf
printf '' > ${DESTDIR}/usr/lib/modprobe.d/wl.conf
for module in b43{,legacy} ssb bcm{43xx,a} brcm{80211,fmac,smac}; do
echo "blacklist $module" >> ${DESTDIR}/usr/lib/modprobe.d/wl.conf
done
chmod 644 ${DESTDIR}/usr/lib/modprobe.d/wl.conf
}