summaryrefslogtreecommitdiffstats
path: root/abs/core/ipw3945
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/ipw3945')
-rw-r--r--abs/core/ipw3945/2.6.18-compile.patch11
-rw-r--r--abs/core/ipw3945/PKGBUILD31
-rw-r--r--abs/core/ipw3945/compile-2.6.24.patch43
-rw-r--r--abs/core/ipw3945/ipw3945.install26
-rw-r--r--abs/core/ipw3945/kernel-2.6.19.patch10
-rw-r--r--abs/core/ipw3945/lockup.patch31
6 files changed, 152 insertions, 0 deletions
diff --git a/abs/core/ipw3945/2.6.18-compile.patch b/abs/core/ipw3945/2.6.18-compile.patch
new file mode 100644
index 0000000..ef0c920
--- /dev/null
+++ b/abs/core/ipw3945/2.6.18-compile.patch
@@ -0,0 +1,11 @@
+--- Makefile~ 2006-06-24 01:35:00.000000000 +0200
++++ Makefile 2006-08-28 13:29:15.000000000 +0200
+@@ -93,7 +93,7 @@
+ IEEE80211_API := $(shell [[ "$(IEEE80211_VER)" == 1.1.14* ]] && \
+ { echo "2" ; } || \
+ { ver=$(IEEE80211_VER); ver=$${ver\#*.} ; echo $${ver%.*} ; })
+- EXTRA_CFLAGS += -DIEEE80211_API_VERSION=$(IEEE80211_API)
++ EXTRA_CFLAGS += -DIEEE80211_API_VERSION=2
+ endif
+
+ ifeq ($(CONFIG_IPW3945_DEBUG),y)
diff --git a/abs/core/ipw3945/PKGBUILD b/abs/core/ipw3945/PKGBUILD
new file mode 100644
index 0000000..572b561
--- /dev/null
+++ b/abs/core/ipw3945/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 5912 2008-07-21 20:12:27Z thomas $
+# Contributor: Giovanni Scafora <linuxmania@gmail.com>
+# Maintainer: James Rayner <iphitus@gmail.com>
+_kernver=2.6.26-ARCH
+pkgname=ipw3945
+pkgver=1.2.2
+pkgrel=11
+pkgdesc="Driver for the Intel PRO/Wireless 3945ABG miniPCI express adapter"
+arch=(i686 x86_64)
+url="http://ipw3945.sourceforge.net"
+license=("GPL")
+depends=('wireless_tools' 'kernel26>=2.6.26-1' 'kernel26<2.6.27' 'ipw3945-ucode' 'ipw3945d')
+install=ipw3945.install
+source=(http://downloads.sourceforge.net/sourceforge/ipw3945/ipw3945-$pkgver.tgz
+ compile-2.6.24.patch)
+md5sums=('9e5ca2f3ffbb84270ede45d5572df4c9'
+ '12db6e8410ab38f1fbca15681cfa752a')
+
+build() {
+ cd $startdir/src/ipw3945-$pkgver
+ sed -i -e "s:^#\(CONFIG_IPW3945_QOS\)=.*:\1=y:" \
+ -e "s:^# \(CONFIG_IPW3945_MONITOR\)=.*:\1=y:" \
+ -e "s:^# \(CONFIG_IEEE80211_RADIOTAP\)=.*:\1=y:" \
+ -e "s:^# \(CONFIG_IPW3945_PROMISCUOUS\)=.*:\1=y:" \
+ Makefile
+ patch -Np1 -i ../compile-2.6.24.patch || return 1
+ make KVER=${_kernver} IEEE80211_INC=/usr/src/linux-${_kernver}/ IEEE80211_IGNORE_DUPLICATE=y || return 1
+ #Install kernel module
+ install -D -m 644 ipw3945.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/wireless/ipw3945/ipw3945.ko
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install
+}
diff --git a/abs/core/ipw3945/compile-2.6.24.patch b/abs/core/ipw3945/compile-2.6.24.patch
new file mode 100644
index 0000000..f6350fc
--- /dev/null
+++ b/abs/core/ipw3945/compile-2.6.24.patch
@@ -0,0 +1,43 @@
+Author: Samuel Tardieu <sam@rfc1149.net>
+Date: Tue Oct 16 12:31:58 2007 +0200
+
+ MAC_ARG is not defined by the kernel headers anymore
+
+diff --git a/ipw3945.c b/ipw3945.c
+index eec20b7..cc36b9c 100644
+--- a/ipw3945.c
++++ b/ipw3945.c
+@@ -102,6 +102,12 @@
+ #define VQ
+ #endif
+
++/* stolen from net/ieee80211.h */
++#ifndef MAC_ARG
++#define MAC_ARG(x) ((u8*)(x))[0], ((u8*)(x))[1], ((u8*)(x))[2], \
++ ((u8*)(x))[3], ((u8*)(x))[4], ((u8*)(x))[5]
++#endif
++
+ #define IPW3945_VERSION "1.2.2" VD VM VP VR VQ
+
+ #define DRV_DESCRIPTION "Intel(R) PRO/Wireless 3945 Network Connection driver for Linux"
+
+
+
+Author: Samuel Tardieu <sam@rfc1149.net>
+Date: Tue Oct 16 12:37:54 2007 +0200
+
+ Nuke SET_MODULE_OWNER() use
+
+diff --git a/ipw3945.c b/ipw3945.c
+index cc36b9c..0369876 100644
+--- a/ipw3945.c
++++ b/ipw3945.c
+@@ -16597,7 +16597,6 @@ static int ipw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
+ goto out_release_ucode;
+ }
+
+- SET_MODULE_OWNER(net_dev);
+ SET_NETDEV_DEV(net_dev, &pdev->dev);
+ mutex_lock(&priv->mutex);
+ priv->ieee->hard_start_xmit = ipw_net_hard_start_xmit;
+
diff --git a/abs/core/ipw3945/ipw3945.install b/abs/core/ipw3945/ipw3945.install
new file mode 100644
index 0000000..8101a44
--- /dev/null
+++ b/abs/core/ipw3945/ipw3945.install
@@ -0,0 +1,26 @@
+# arg 1: the new package version
+post_install()
+{
+ KERNEL_VERSION='2.6.26-ARCH'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade()
+{
+ KERNEL_VERSION='2.6.26-ARCH'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+}
+
+# arg 1: the old package version
+post_remove()
+{
+ KERNEL_VERSION='2.6.26-ARCH'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/abs/core/ipw3945/kernel-2.6.19.patch b/abs/core/ipw3945/kernel-2.6.19.patch
new file mode 100644
index 0000000..ed28608
--- /dev/null
+++ b/abs/core/ipw3945/kernel-2.6.19.patch
@@ -0,0 +1,10 @@
+--- ipw3945.h~ 2006-06-26 23:29:30.000000000 +0200
++++ ipw3945.h 2006-10-17 17:12:06.000000000 +0200
+@@ -29,7 +29,6 @@
+
+ #include <linux/module.h>
+ #include <linux/moduleparam.h>
+-#include <linux/config.h>
+ #include <linux/init.h>
+
+ #include <linux/version.h>
diff --git a/abs/core/ipw3945/lockup.patch b/abs/core/ipw3945/lockup.patch
new file mode 100644
index 0000000..993fbbc
--- /dev/null
+++ b/abs/core/ipw3945/lockup.patch
@@ -0,0 +1,31 @@
+
+Fix potential driver lockup problem
+
+Since we have already store the inta to priv->isr_inta in the
+interrupt handler we don't need to get it from the hardware again
+in the tasklet. Some people find ipw3945-1.2.1 still didn't
+resolve the boot lockup problem as reported in bugzilla #1096.
+
+If you still find the lockup problem in ipw3945-1.2.1, please try
+this patch and report if it resolves your problem or not to
+yi.zhu@intel.com.
+
+Thanks to Egon for providing this patch!
+
+Signed-off-by: Egon <anannatrak@yahoo.it>
+Signed-off-by: Zhu Yi <yi.zhu@intel.com>
+--
+
+--- a/ipw3945.c 2007-04-11 14:46:58.000000000 +0800
++++ b/ipw3945.c 2007-05-14 15:55:56.000000000 +0800
+@@ -2769,8 +2769,8 @@ static void ipw_irq_tasklet(struct ipw_p
+
+ spin_lock_irqsave(&priv->lock, flags);
+
+- inta = ipw_read32(priv, CSR_INT);
+- inta_mask = ipw_read32(priv, CSR_INT_MASK);
++ inta = 0;
++ inta_mask = 0;
+ ipw_write32(priv, CSR_INT, inta);
+ inta &= (CSR_INI_SET_MASK & inta_mask);
+