rpms/wl-kmod/devel broadcom-wl-5.100.82.112-wext_workaround.patch, NONE, 1.1 broadcom-wl-5.100.82.112-kernel-3.2.patch, 1.1, 1.2 broadcom-wl-5.100.82.112-kernel-3.6.patch, 1.2, 1.3 broadcom-wl-5.100.82.112-recent_kernel_ioctl.patch, 1.1, 1.2 broadcom-wl-5.100.82.112-recent_kernel_semaphore.patch, 1.1, 1.2 wl-kmod.spec, 1.70, 1.71

Nicolas Viéville nvieville at rpmfusion.org
Wed Nov 21 13:16:10 CET 2012


Author: nvieville

Update of /cvs/nonfree/rpms/wl-kmod/devel
In directory old02.ovh.rpmfusion.lan:/tmp/cvs-serv23071

Modified Files:
	broadcom-wl-5.100.82.112-kernel-3.2.patch 
	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 at univ-valenciennes.fr> - 5.100.82.112-7
- 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.2.patch:
 wl_linux.c |    4 ++++
 1 file changed, 4 insertions(+)

Index: broadcom-wl-5.100.82.112-kernel-3.2.patch
===================================================================
RCS file: /cvs/nonfree/rpms/wl-kmod/devel/broadcom-wl-5.100.82.112-kernel-3.2.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- broadcom-wl-5.100.82.112-kernel-3.2.patch	9 Jan 2012 21:36:14 -0000	1.1
+++ broadcom-wl-5.100.82.112-kernel-3.2.patch	21 Nov 2012 12:16:10 -0000	1.2
@@ -5,7 +5,7 @@
  #endif
  	.ndo_get_stats = wl_get_stats,
  	.ndo_set_mac_address = wl_set_mac_address,
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) || (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 42) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0))
 +	.ndo_set_rx_mode = wl_set_multicast_list,
 +#else
  	.ndo_set_multicast_list = wl_set_multicast_list,

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/devel/broadcom-wl-5.100.82.112-kernel-3.6.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- broadcom-wl-5.100.82.112-kernel-3.6.patch	17 Oct 2012 06:03:55 -0000	1.2
+++ broadcom-wl-5.100.82.112-kernel-3.6.patch	21 Nov 2012 12:16:10 -0000	1.3
@@ -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/devel/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 15:48:16 -0000	1.1
+++ broadcom-wl-5.100.82.112-recent_kernel_ioctl.patch	21 Nov 2012 12:16:10 -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/devel/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 15:48:16 -0000	1.1
+++ broadcom-wl-5.100.82.112-recent_kernel_semaphore.patch	21 Nov 2012 12:16:10 -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/devel/wl-kmod.spec,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -r1.70 -r1.71
--- wl-kmod.spec	20 Oct 2012 15:48:16 -0000	1.70
+++ wl-kmod.spec	21 Nov 2012 12:16:10 -0000	1.71
@@ -7,7 +7,7 @@
 
 Name:		wl-kmod
 Version:	5.100.82.112
-Release:	6%{?dist}
+Release:	7%{?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 at univ-valenciennes.fr> - 5.100.82.112-7
+- Added patch to choose API at build time (WEXT or CFG80211) to workaround #2548 #2562
+- Others patches cleaned-up
+
 * Sat Oct 20 2012 Nicolas Vieville <nicolas.vieville at univ-valenciennes.fr> - 5.100.82.112-6
 - Added patch to include semaphore.h in wl_iw.h
 - Added patch from Archlinux to disable too many "ERROR @wl_cfg80211_get_station..." messages


More information about the rpmfusion-commits mailing list