[svn] r5202 - trunk/rpms/dkms-ipw3945

packagers at lists.rpmforge.net packagers at lists.rpmforge.net
Sat Feb 24 15:09:45 CET 2007


Author: thias
Date: 2007-02-24 15:09:44 +0100 (Sat, 24 Feb 2007)
New Revision: 5202

Added:
   trunk/rpms/dkms-ipw3945/ipw3945-1.2.0-options.patch
   trunk/rpms/dkms-ipw3945/ipw3945-1.2.0-read-rfkill-register.patch
Modified:
   trunk/rpms/dkms-ipw3945/dkms-ipw3945.spec
Log:
Include deadlock patch for dkms-ipw3945 and make build options configurable.


Modified: trunk/rpms/dkms-ipw3945/dkms-ipw3945.spec
===================================================================
--- trunk/rpms/dkms-ipw3945/dkms-ipw3945.spec	2007-02-24 14:00:19 UTC (rev 5201)
+++ trunk/rpms/dkms-ipw3945/dkms-ipw3945.spec	2007-02-24 14:09:44 UTC (rev 5202)
@@ -5,11 +5,13 @@
 Summary: Driver for Intel® PRO/Wirelss 3945 network adaptors
 Name: dkms-ipw3945
 Version: 1.2.0
-Release: 1
+Release: 3
 License: GPL
 Group: System Environment/Kernel
 URL: http://ipw3945.sourceforge.net/
 Source: http://dl.sf.net/ipw3945/ipw3945-%{version}.tgz
+Patch0: ipw3945-1.2.0-options.patch
+Patch1: ipw3945-1.2.0-read-rfkill-register.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 BuildArch: noarch
 Requires: gcc, make
@@ -24,6 +26,8 @@
 
 %prep
 %setup -n ipw3945-%{version}
+%patch0 -p1
+%patch1 -p1
 
 
 %build
@@ -50,7 +54,11 @@
 AUTOINSTALL="YES"
 EOF
 
+# File to set special compile options (created and used by our patch)
+%{__install} -p -D -m 0600 options.mak \
+    %{buildroot}%{_sysconfdir}/sysconfig/ipw3945-options.mak
 
+
 %clean
 %{__rm} -rf %{buildroot}
 
@@ -70,10 +78,18 @@
 %files
 %defattr(-, root, root, 0755)
 %doc CHANGES ISSUES LICENSE* README.ipw3945
+%config(noreplace) %{_sysconfdir}/sysconfig/ipw3945-options.mak
 %{_usrsrc}/%{dkms_name}-%{dkms_vers}/
 
 
 %changelog
+* Mon Jan 29 2007 Matthias Saou <http://freshrpms.net/> 1.2.0-3
+- Add RF kill deadlock patch (upstream #1096), Stefan Becker.
+
+* Fri Jan 26 2007 Matthias Saou <http://freshrpms.net/> 1.2.0-2
+- Extract part of the Makefile in order to make setting options possible.
+- Build monitor mode option by default.
+
 * Tue Jan  9 2007 Matthias Saou <http://freshrpms.net/> 1.2.0-1
 - Update to 1.2.0.
 - Remove now included register and ESSID patches.

Added: trunk/rpms/dkms-ipw3945/ipw3945-1.2.0-options.patch
===================================================================
--- trunk/rpms/dkms-ipw3945/ipw3945-1.2.0-options.patch	                        (rev 0)
+++ trunk/rpms/dkms-ipw3945/ipw3945-1.2.0-options.patch	2007-02-24 14:09:44 UTC (rev 5202)
@@ -0,0 +1,72 @@
+diff -Naupr ipw3945-1.2.0.orig/Makefile ipw3945-1.2.0/Makefile
+--- ipw3945-1.2.0.orig/Makefile	2006-12-31 04:28:55.000000000 +0100
++++ ipw3945-1.2.0/Makefile	2007-01-26 10:45:50.000000000 +0100
+@@ -18,34 +18,7 @@ EXTERNAL_BUILD=y
+ CONFIG_IPW3945=m
+ CONFIG_IPW3945_DEBUG=y
+ 
+-# NOTE:  QoS support is currently broken in the build.  DO NOT ENABLE.
+-# CONFIG_IPW3945_QOS=y
+-
+-# If you are not interested in using monitor mode, simply comment out:
+-#
+-# NOTE:  If you have problems compiling due to IW_MODE_MONITOR not being
+-#        defined then you need to update the wireless extension version
+-#	 installed in your kernel, or comment this line out.
+-# CONFIG_IPW3945_MONITOR=y
+-
+-# If you are interested in using radiotap headers in monitor mode,
+-# simply uncomment:
+-#
+-# NOTE:  To use RADIOTAP you must also enable MONITOR above.
+-# CONFIG_IEEE80211_RADIOTAP=y
+-
+-# The above monitor mode provides standard monitor mode.  The following
+-# will create a new interface (named raw%d) which will be sent all
+-# 802.11 frames received on the interface
+-#
+-# NOTE:  To use PROMISCUOUS you must also enable MONITOR above.
+-# CONFIG_IPW3945_PROMISCUOUS=y
+-
+-# The following, if enabled, will add a sysfs entry 'rx' that raw
+-# 802.11 radiotap formatted packets can be written to.  Those packets
+-# will be passed to the driver as if they were received from over the
+-# air.  This is useful in debugging features not supported by your AP.
+-# CONFIG_IPW3945_SIM_RX=y
++include /etc/sysconfig/ipw3945-options.mak
+ 
+ endif
+ 
+diff -Naupr ipw3945-1.2.0.orig/options.mak ipw3945-1.2.0/options.mak
+--- ipw3945-1.2.0.orig/options.mak	1970-01-01 01:00:00.000000000 +0100
++++ ipw3945-1.2.0/options.mak	2007-01-26 10:42:39.000000000 +0100
+@@ -0,0 +1,29 @@
++# NOTE:  QoS support is currently broken in the build.  DO NOT ENABLE.
++# CONFIG_IPW3945_QOS=y
++
++# If you are not interested in using monitor mode, simply comment out:
++#
++# NOTE:  If you have problems compiling due to IW_MODE_MONITOR not being
++#        defined then you need to update the wireless extension version
++#        installed in your kernel, or comment this line out.
++CONFIG_IPW3945_MONITOR=y
++
++# If you are interested in using radiotap headers in monitor mode,
++# simply uncomment:
++#
++# NOTE:  To use RADIOTAP you must also enable MONITOR above.
++# CONFIG_IEEE80211_RADIOTAP=y
++
++# The above monitor mode provides standard monitor mode.  The following
++# will create a new interface (named raw%d) which will be sent all
++# 802.11 frames received on the interface
++#
++# NOTE:  To use PROMISCUOUS you must also enable MONITOR above.
++# CONFIG_IPW3945_PROMISCUOUS=y
++
++# The following, if enabled, will add a sysfs entry 'rx' that raw
++# 802.11 radiotap formatted packets can be written to.  Those packets
++# will be passed to the driver as if they were received from over the
++# air.  This is useful in debugging features not supported by your AP.
++# CONFIG_IPW3945_SIM_RX=y
++

Added: trunk/rpms/dkms-ipw3945/ipw3945-1.2.0-read-rfkill-register.patch
===================================================================
--- trunk/rpms/dkms-ipw3945/ipw3945-1.2.0-read-rfkill-register.patch	                        (rev 0)
+++ trunk/rpms/dkms-ipw3945/ipw3945-1.2.0-read-rfkill-register.patch	2007-02-24 14:09:44 UTC (rev 5202)
@@ -0,0 +1,52 @@
+--- ipw3945-1.2.0-1/ipw3945.h.orig	2007-01-27 17:52:04.000000000 +0200
++++ ipw3945-1.2.0-1/ipw3945.h	2007-01-27 17:52:31.000000000 +0200
+@@ -1170,6 +1170,7 @@
+ #define ALM_APMG_CLK_DIS                         (0x003008)
+ #define ALM_APMG_PS_CTL                          (0x00300c)
+ #define ALM_APMG_PCIDEV_STT                      (0x003010)
++#define ALM_APMG_RFKILL				 (0x003014)
+ #define ALM_APMG_LARC_INT                        (0x00301c)
+ #define ALM_APMG_LARC_INT_MSK                    (0x003020)
+ 
+--- ipw3945-1.2.0-1/ipw3945.c.orig	2007-01-27 17:52:02.000000000 +0200
++++ ipw3945-1.2.0-1/ipw3945.c	2007-01-27 17:53:07.000000000 +0200
+@@ -15955,6 +15955,8 @@
+ static void ipw_alive_start(struct ipw_priv *priv)
+ {
+ 	int thermal_spin = 0;
++	int rc;
++	u32 rfkill;
+ 
+ 	if (priv->card_alive.is_valid != 1) {
+ 		/* We had an error bringing up the hardware, so take it
+@@ -15969,7 +15971,19 @@
+ 
+ 	IPW_DEBUG_INFO("Alive received.\n");
+ 
+-	if (!(priv->status & STATUS_RF_KILL_MASK)) {
++	rc = ipw_grab_restricted_access(priv);
++	if (rc) {
++		IPW_WARNING("Can not read rfkill status from adapter\n");
++		return;
++	}
++
++	rfkill = ipw_read_restricted_reg(priv, ALM_APMG_RFKILL);
++	IPW_DEBUG_INFO("RFKILL status: 0x%x\n", rfkill);
++	ipw_release_restricted_access(priv);
++
++	if (rfkill & 1) {
++		priv->status &= ~STATUS_RF_KILL_HW;
++
+ 		/* if rfkill is not on, then
+ 		 * wait for thermal sensor in adapter to kick in */
+ 		while (ipw_read32(priv, CSR_UCODE_DRV_GP2) == 0) {
+@@ -15979,7 +15993,8 @@
+ 		if (thermal_spin)
+ 			IPW_DEBUG_INFO("Thermal calibration took %dus\n",
+ 				       thermal_spin * 10);
+-	}
++	} else
++		priv->status |= STATUS_RF_KILL_HW;
+ 
+ 	ipw_clear_stations_table(priv);
+ 



More information about the svn-commits mailing list