diff --git a/srcpkgs/broadcom-wl-dkms/patches/linux-4.7.patch b/srcpkgs/broadcom-wl-dkms/patches/linux-4.7.patch new file mode 100644 index 00000000000..df7c6962f37 --- /dev/null +++ b/srcpkgs/broadcom-wl-dkms/patches/linux-4.7.patch @@ -0,0 +1,43 @@ +Relevant kernel commit: Johannes Berg : +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_ diff --git a/srcpkgs/broadcom-wl-dkms/template b/srcpkgs/broadcom-wl-dkms/template index c614df14261..029da4bd15a 100644 --- a/srcpkgs/broadcom-wl-dkms/template +++ b/srcpkgs/broadcom-wl-dkms/template @@ -2,7 +2,7 @@ pkgname=broadcom-wl-dkms version=6.30.223.271 -revision=2 +revision=3 maintainer="Juan RP " 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 }