diff options
Diffstat (limited to 'abs/core/ipw3945')
-rw-r--r-- | abs/core/ipw3945/2.6.18-compile.patch | 11 | ||||
-rw-r--r-- | abs/core/ipw3945/PKGBUILD | 31 | ||||
-rw-r--r-- | abs/core/ipw3945/compile-2.6.24.patch | 43 | ||||
-rw-r--r-- | abs/core/ipw3945/ipw3945.install | 26 | ||||
-rw-r--r-- | abs/core/ipw3945/kernel-2.6.19.patch | 10 | ||||
-rw-r--r-- | abs/core/ipw3945/lockup.patch | 31 |
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); + |