Author: nvieville
Update of /cvs/nonfree/rpms/wl-kmod/F-16
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv20521
Modified Files:
broadcom-wl-5.100.82.112-kernel-3.6.patch
broadcom-wl-5.100.82.112-recent_kernel_ioctl.patch
broadcom-wl-5.100.82.112-recent_kernel_semaphore.patch
wl-kmod.spec
Added Files:
broadcom-wl-5.100.82.112-wext_workaround.patch
Log Message:
* Wed Nov 21 2012 Nicolas Viéville <nicolas.vieville(a)univ-valenciennes.fr> -
5.100.82.112-5
- Added patch to choose API at build time (WEXT or CFG80211) to workaround #2548 #2562
- Others patches cleaned-up
broadcom-wl-5.100.82.112-wext_workaround.patch:
Makefile | 14 ++++++++++++++
1 file changed, 14 insertions(+)
--- NEW FILE broadcom-wl-5.100.82.112-wext_workaround.patch ---
diff -Naur hybrid-portsrc_x86_32-v5_100_82_112.orig/Makefile
hybrid-portsrc_x86_32-v5_100_82_112/Makefile
--- hybrid-portsrc_x86_32-v5_100_82_112.orig/Makefile 2012-10-10 14:34:17.000000000 +0200
+++ hybrid-portsrc_x86_32-v5_100_82_112/Makefile 2012-11-09 14:25:09.755455777 +0100
@@ -13,6 +13,8 @@
#
# $Id: Makefile_kbuild_portsrc,v 1.6.54.4 2011-01-27 00:55:34 Exp $
+API_ETC_FILE := /etc/akmods/akmod-wl/api
+
ifneq ($(KERNELRELEASE),)
LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \
@@ -31,6 +33,18 @@
fi \
))
+ API_FILE:=$(strip $(shell \
+ if [ -r "$(API_ETC_FILE)" ]; then \
+ echo TRUE; \
+ else \
+ echo FALSE; \
+ fi \
+ ))
+
+ ifeq ($(API_FILE), TRUE)
+ include $(API_ETC_FILE)
+ endif
+
ifneq ($(API),)
ifeq ($(API), CFG80211)
APICHOICE := FORCE_CFG80211
broadcom-wl-5.100.82.112-kernel-3.6.patch:
wl_cfg80211.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
Index: broadcom-wl-5.100.82.112-kernel-3.6.patch
===================================================================
RCS file: /cvs/nonfree/rpms/wl-kmod/F-16/broadcom-wl-5.100.82.112-kernel-3.6.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- broadcom-wl-5.100.82.112-kernel-3.6.patch 20 Oct 2012 17:22:06 -0000 1.1
+++ broadcom-wl-5.100.82.112-kernel-3.6.patch 21 Nov 2012 11:25:40 -0000 1.2
@@ -1,33 +1,32 @@
diff -Naur hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_cfg80211.c
hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_cfg80211.c
--- hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_cfg80211.c 2011-10-22
18:56:55.000000000 +0200
-+++ hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_cfg80211.c 2012-10-16
22:04:18.718673254 +0200
-@@ -42,7 +42,11 @@
++++ hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_cfg80211.c 2012-11-07
17:34:38.141769328 +0100
+@@ -42,7 +42,10 @@
enum nl80211_iftype type, u32 *flags, struct vif_params *params);
static s32 __wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
struct cfg80211_scan_request *request, struct cfg80211_ssid *this_ssid);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
+-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
+static s32 wl_cfg80211_scan(struct wiphy *wiphy,
-+#else
- static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
++ struct net_device *ndev,
+#endif
struct cfg80211_scan_request *request);
static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
-@@ -570,10 +574,18 @@
+@@ -570,10 +573,16 @@
}
static s32
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
+-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
+wl_cfg80211_scan(struct wiphy *wiphy,
-+#else
- wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev,
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 6, 0)
++ struct net_device *ndev,
+#endif
struct cfg80211_scan_request *request)
{
s32 err = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
-+ struct wl_priv *wl = wiphy_to_wl(wiphy);
-+ struct net_device *ndev = wl_to_ndev(wl);
++ struct net_device *ndev = request->wdev->netdev;
+#endif
CHECK_SYS_UP();
broadcom-wl-5.100.82.112-recent_kernel_ioctl.patch:
wl_cfg80211.c | 14 ++++++++------
wl_linux.c | 6 +-----
2 files changed, 9 insertions(+), 11 deletions(-)
Index: broadcom-wl-5.100.82.112-recent_kernel_ioctl.patch
===================================================================
RCS file:
/cvs/nonfree/rpms/wl-kmod/F-16/broadcom-wl-5.100.82.112-recent_kernel_ioctl.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- broadcom-wl-5.100.82.112-recent_kernel_ioctl.patch 20 Oct 2012 17:22:06 -0000 1.1
+++ broadcom-wl-5.100.82.112-recent_kernel_ioctl.patch 21 Nov 2012 11:25:40 -0000 1.2
@@ -1,21 +1,31 @@
diff -Naur hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_cfg80211.c
hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_cfg80211.c
---- hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_cfg80211.c 2012-10-16
22:04:18.718673254 +0200
-+++ hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_cfg80211.c 2012-10-20
16:16:20.071738204 +0200
-@@ -1478,7 +1478,10 @@
+--- hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_cfg80211.c 2012-11-07
17:34:38.141769328 +0100
++++ hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_cfg80211.c 2012-11-07
18:16:51.342521040 +0100
+@@ -1475,13 +1475,15 @@
scb_val.val = 0;
err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t));
if (err) {
- WL_ERR(("Could not get rssi (%d)\n", err));
-+ if (err != -EINVAL) {
+- return err;
++ if (err != -EINVAL)
+ // Don't fill syslog with EINVAL error
+ WL_ERR(("Could not get rssi (%d)\n", err));
-+ }
- return err;
++ } else {
++ rssi = dtoh32(scb_val.val);
++ sinfo->filled |= STATION_INFO_SIGNAL;
++ sinfo->signal = rssi;
++ WL_DBG(("RSSI %d dBm\n", rssi));
}
- rssi = dtoh32(scb_val.val);
+- rssi = dtoh32(scb_val.val);
+- sinfo->filled |= STATION_INFO_SIGNAL;
+- sinfo->signal = rssi;
+- WL_DBG(("RSSI %d dBm\n", rssi));
+ }
+
+ return err;
diff -Naur hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_linux.c
hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_linux.c
---- hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_linux.c 2012-10-16
14:26:28.087617125 +0200
-+++ hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_linux.c 2012-10-20
16:16:20.447738352 +0200
+--- hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_linux.c 2012-11-07
17:52:29.434087011 +0100
++++ hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_linux.c 2012-11-07
17:59:01.626202471 +0100
@@ -1587,11 +1587,7 @@
}
broadcom-wl-5.100.82.112-recent_kernel_semaphore.patch:
wl_cfg80211.h | 2 ++
wl_iw.h | 1 +
wl_linux.h | 2 ++
3 files changed, 5 insertions(+)
Index: broadcom-wl-5.100.82.112-recent_kernel_semaphore.patch
===================================================================
RCS file:
/cvs/nonfree/rpms/wl-kmod/F-16/broadcom-wl-5.100.82.112-recent_kernel_semaphore.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- broadcom-wl-5.100.82.112-recent_kernel_semaphore.patch 20 Oct 2012 17:22:06 -0000 1.1
+++ broadcom-wl-5.100.82.112-recent_kernel_semaphore.patch 21 Nov 2012 11:25:41 -0000 1.2
@@ -1,3 +1,15 @@
+diff -Naur hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_cfg80211.h
hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_cfg80211.h
+--- hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_cfg80211.h 2011-10-22
18:56:55.000000000 +0200
++++ hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_cfg80211.h 2012-11-07
18:04:55.286309234 +0100
+@@ -16,6 +16,8 @@
+ #ifndef _wl_cfg80211_h_
+ #define _wl_cfg80211_h_
+
++#include <linux/semaphore.h>
++
+ #include <net/cfg80211.h>
+ #include <wlioctl.h>
+
diff -Naur hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_iw.h
hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_iw.h
--- hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_iw.h 2011-10-22
18:56:55.000000000 +0200
+++ hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_iw.h 2012-10-20 16:16:20.396738313
+0200
@@ -9,3 +21,15 @@
#include <linux/wireless.h>
#include <typedefs.h>
+diff -Naur hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_linux.h
hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_linux.h
+--- hybrid-portsrc_x86_32-v5_100_82_112.orig/src/wl/sys/wl_linux.h 2011-10-22
18:56:55.000000000 +0200
++++ hybrid-portsrc_x86_32-v5_100_82_112/src/wl/sys/wl_linux.h 2012-11-07
18:04:55.394309261 +0100
+@@ -15,6 +15,8 @@
+ #ifndef _wl_linux_h_
+ #define _wl_linux_h_
+
++#include <linux/semaphore.h>
++
+ #include <wlc_types.h>
+
+ typedef struct wl_timer {
Index: wl-kmod.spec
===================================================================
RCS file: /cvs/nonfree/rpms/wl-kmod/F-16/wl-kmod.spec,v
retrieving revision 1.112
retrieving revision 1.113
diff -u -r1.112 -r1.113
--- wl-kmod.spec 20 Nov 2012 00:33:43 -0000 1.112
+++ wl-kmod.spec 21 Nov 2012 11:25:41 -0000 1.113
@@ -3,11 +3,11 @@
# "buildforkernels newest" macro for just that build; immediately after
# queuing that build enable the macro again for subsequent builds; that way
# a new akmod package will only get build when a new one is actually needed
-%define buildforkernels newest
+%define buildforkernels current
Name: wl-kmod
Version: 5.100.82.112
-Release: 4%{?dist}.4
+Release: 5%{?dist}
Summary: Kernel module for Broadcom wireless devices
Group: System Environment/Kernel
License: Redistributable, no modification permitted
@@ -22,6 +22,7 @@
Patch4: broadcom-wl-5.100.82.112-kernel-3.6.patch
Patch5: broadcom-wl-5.100.82.112-recent_kernel_semaphore.patch
Patch6: broadcom-wl-5.100.82.112-recent_kernel_ioctl.patch
+Patch7: broadcom-wl-5.100.82.112-wext_workaround.patch
BuildRequires: %{_bindir}/kmodtool
@@ -40,7 +41,9 @@
BCM4322-, BCM43224-, and BCM43225-, BCM43227- and BCM43228-based hardware.
NOTE: You must read the LICENSE.txt file in the docs directory before using
-this software.
+this software. You should read the fedora.readme file in the docs directory
+in order to know how to configure this software if you encounter problems
+while boot sequence or with the CFG80211 API (revert to the WEXT API).
%prep
# error out if there was something wrong with kmodtool
@@ -64,6 +67,7 @@
%patch4 -p1 -b .kernel-3.6
%patch5 -p1 -b .recent_kernel_semaphore
%patch6 -p1 -b .recent_kernel_ioctl
+%patch7 -p1 -b .wext_workaround.patch
popd
for kernel_version in %{?kernel_versions} ; do
@@ -93,6 +97,10 @@
rm -rf $RPM_BUILD_ROOT
%changelog
+* Wed Nov 21 2012 Nicolas Viéville <nicolas.vieville(a)univ-valenciennes.fr> -
5.100.82.112-5
+- Added patch to choose API at build time (WEXT or CFG80211) to workaround #2548 #2562
+- Others patches cleaned-up
+
* Tue Nov 20 2012 Nicolas Chauvet <kwizart(a)gmail.com> - 5.100.82.112-4.4
- Rebuilt for updated kernel