From 8c132cf8c6e9329d5e2b2760ca1e33710d9bf469 Mon Sep 17 00:00:00 2001 From: Mike Westerhof Date: Mon, 1 May 2006 14:58:45 +0000 Subject: zd1211: Updated to r74 driver, fixed ARM endian problem, added unslung patches. --- packages/zd1211/zd1211-r74/.mtn2git_empty | 0 packages/zd1211/zd1211-r74/makefile-unslung.patch | 48 ++++++++++++++++++++++ packages/zd1211/zd1211-r74/makefile.patch | 47 +++++++++++++++++++++ .../zd1211/zd1211-r74/unslung-iwpriv-hack.patch | 19 +++++++++ .../zd1211/zd1211-r74/unslung-writel-logging.patch | 14 +++++++ packages/zd1211/zd1211-r74/zd1211-endian-fix.patch | 11 +++++ packages/zd1211/zd1211_r74.bb | 38 +++++++++++++++++ 7 files changed, 177 insertions(+) create mode 100644 packages/zd1211/zd1211-r74/.mtn2git_empty create mode 100644 packages/zd1211/zd1211-r74/makefile-unslung.patch create mode 100644 packages/zd1211/zd1211-r74/makefile.patch create mode 100644 packages/zd1211/zd1211-r74/unslung-iwpriv-hack.patch create mode 100644 packages/zd1211/zd1211-r74/unslung-writel-logging.patch create mode 100644 packages/zd1211/zd1211-r74/zd1211-endian-fix.patch create mode 100644 packages/zd1211/zd1211_r74.bb (limited to 'packages/zd1211') diff --git a/packages/zd1211/zd1211-r74/.mtn2git_empty b/packages/zd1211/zd1211-r74/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/zd1211/zd1211-r74/makefile-unslung.patch b/packages/zd1211/zd1211-r74/makefile-unslung.patch new file mode 100644 index 0000000000..3ad1e24424 --- /dev/null +++ b/packages/zd1211/zd1211-r74/makefile-unslung.patch @@ -0,0 +1,48 @@ +--- zd1211-driver-r59/Makefile.orig 2006-02-25 16:04:26.000000000 +0100 ++++ zd1211-driver-r59/Makefile 2006-02-25 17:11:27.000000000 +0100 +@@ -4,24 +4,23 @@ + # + # + +-CC=gcc +-CPP=g++ +-LD=ld +-rM=rm -f -r ++CC ?= gcc ++CPP ?= g++ ++LD ?= ld + +-MODPATH := /lib/modules/$(shell uname -r) ++MODPATH ?= /lib/modules/$(shell uname -r) + + # if the kernel is 2.6.x, turn on this +-KERN_26=y ++#KERN_26=y + +-KERNEL_SOURCE=$(MODPATH)/source ++KERNEL_SOURCE ?= $(MODPATH)/source + #KERNEL_SOURCE=/usr/src/linux + + # set to 1 for zd1211b + ZD1211REV_B=0 + +-SRC_DIR=src +-DEFINES=-D__KERNEL__ -DMODULE=1 ++SRC_DIR=src ++DEFINES ?=-D__KERNEL__ -DMODULE=1 + + + +@@ -227,9 +226,9 @@ + depmod -a + + #for apdbg +- gcc -o apdbg apdbg.c +- chmod +x apdbg +- cp ./apdbg /sbin/apdbg ++# gcc -o apdbg apdbg.c ++# chmod +x apdbg ++# cp ./apdbg /sbin/apdbg + + clean: + rm -rf .tmp_versions .*.cmd *.ko *.mod.c *.mod.o *.o $(SRC_DIR)/*.o $(SRC_DIR)/.*.o.cmd diff --git a/packages/zd1211/zd1211-r74/makefile.patch b/packages/zd1211/zd1211-r74/makefile.patch new file mode 100644 index 0000000000..5c575faece --- /dev/null +++ b/packages/zd1211/zd1211-r74/makefile.patch @@ -0,0 +1,47 @@ +--- zd1211-driver-r59/Makefile.orig 2006-02-25 16:04:26.000000000 +0100 ++++ zd1211-driver-r59/Makefile 2006-02-25 17:11:27.000000000 +0100 +@@ -4,24 +4,23 @@ + # + # + +-CC=gcc +-CPP=g++ +-LD=ld +-rM=rm -f -r ++CC ?= gcc ++CPP ?= g++ ++LD ?= ld + +-MODPATH := /lib/modules/$(shell uname -r) ++MODPATH ?= /lib/modules/$(shell uname -r) + + # if the kernel is 2.6.x, turn on this + KERN_26=y + +-KERNEL_SOURCE=$(MODPATH)/source ++KERNEL_SOURCE ?= $(MODPATH)/source + #KERNEL_SOURCE=/usr/src/linux + + # set to 1 for zd1211b + ZD1211REV_B=0 + +-SRC_DIR=src +-DEFINES=-D__KERNEL__ -DMODULE=1 ++SRC_DIR=src ++DEFINES ?=-D__KERNEL__ -DMODULE=1 + + + +@@ -227,9 +226,9 @@ + depmod -a + + #for apdbg +- gcc -o apdbg apdbg.c +- chmod +x apdbg +- cp ./apdbg /sbin/apdbg ++# gcc -o apdbg apdbg.c ++# chmod +x apdbg ++# cp ./apdbg /sbin/apdbg + + clean: + rm -rf .tmp_versions .*.cmd *.ko *.mod.c *.mod.o *.o $(SRC_DIR)/*.o $(SRC_DIR)/.*.o.cmd diff --git a/packages/zd1211/zd1211-r74/unslung-iwpriv-hack.patch b/packages/zd1211/zd1211-r74/unslung-iwpriv-hack.patch new file mode 100644 index 0000000000..64f3806140 --- /dev/null +++ b/packages/zd1211/zd1211-r74/unslung-iwpriv-hack.patch @@ -0,0 +1,19 @@ +--- zd1211-driver-r74/src/zd1205.c~ 2006-04-16 09:42:15.000000000 -0500 ++++ zd1211-driver-r74/src/zd1205.c 2006-04-27 12:29:03.000000000 -0500 +@@ -349,8 +349,14 @@ + { SIOCIWFIRSTPRIV + 0xA, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "connect" }, + { SIOCIWFIRSTPRIV + 0xB, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_mac_mode" }, + { SIOCIWFIRSTPRIV + 0xC, 0, IW_PRIV_TYPE_CHAR | 12, "get_mac_mode" }, +- { SIOCIWFIRSTPRIV + 0xD, 0, 0, "save_conf" /* has been removed */ }, +- { SIOCIWFIRSTPRIV + 0xE, 0, 0, "load_conf" /* has been removed */ }, ++// HACK HACK HACK - The following two lines are commented out in order to make ++// iwpriv work on Unslung (2.4.22 kernel) - this kernel's Wireless Extensions ++// can only handle up to 16 iwpriv entries in this structure. Yes, the correct ++// fix is to patch the Wireless Extensions in the Unslung kernel. This hack ++// should be removed when that's actually done. ~mwester 27APR2006 ++// { SIOCIWFIRSTPRIV + 0xD, 0, 0, "save_conf" /* has been removed */ }, ++// { SIOCIWFIRSTPRIV + 0xE, 0, 0, "load_conf" /* has been removed */ }, ++// End of HACK + { SIOCIWFIRSTPRIV + 0xF, 0, IW_PRIV_TYPE_CHAR | 14, "get_Region" }, + { SIOCIWFIRSTPRIV + 0x9,IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_Region" }, + }; diff --git a/packages/zd1211/zd1211-r74/unslung-writel-logging.patch b/packages/zd1211/zd1211-r74/unslung-writel-logging.patch new file mode 100644 index 0000000000..00d54d7d68 --- /dev/null +++ b/packages/zd1211/zd1211-r74/unslung-writel-logging.patch @@ -0,0 +1,14 @@ +--- zd1211-driver-r74/src/zd1211.c~ 2006-04-09 12:28:06.000000000 -0500 ++++ zd1211-driver-r74/src/zd1211.c 2006-04-27 12:38:55.000000000 -0500 +@@ -652,7 +652,10 @@ + count++; + + if (count > 5) { +- printk(KERN_ERR "1211_readl failed for 5 attempts...Very Serious"); ++// You are going to see this often enough on Unslung that we might as well put it in ++// the syslog and fix it so it has a nl on the end. Sigh. ~mwester, 27APR06 ++// ++ printk(KERN_ERR "1211_readl failed for 5 attempts...Very Serious\n"); + break; + } + } diff --git a/packages/zd1211/zd1211-r74/zd1211-endian-fix.patch b/packages/zd1211/zd1211-r74/zd1211-endian-fix.patch new file mode 100644 index 0000000000..c694174fee --- /dev/null +++ b/packages/zd1211/zd1211-r74/zd1211-endian-fix.patch @@ -0,0 +1,11 @@ +--- zd1211-driver-r67/src/zd1211.c~ 2006-02-16 15:33:51.000000000 -0600 ++++ zd1211-driver-r67/src/zd1211.c 2006-04-30 22:47:13.000000000 -0500 +@@ -2228,7 +2228,7 @@ + + if (CurFrmLen & 0x03) + tmpLen += 4; +- rfd->ActualCount += macp->rxOffset; ++ rfd->ActualCount = cpu_to_le32(CurFrmLen + macp->rxOffset); + } + } else { + // last_pkt_len = 509, 510, 511 diff --git a/packages/zd1211/zd1211_r74.bb b/packages/zd1211/zd1211_r74.bb new file mode 100644 index 0000000000..fa7e63d610 --- /dev/null +++ b/packages/zd1211/zd1211_r74.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "Driver for zd1211 family of wireless USB Dongles" +PRIORITY = "optional" +SECTION = "kernel/modules" +MAINTAINER = "Oyvind Repvik " +LICENSE = "GPL" +PR = "r1" +RDEPENDS = "wireless-tools" + +SRC_URI = "http://zd1211.ath.cx/download/zd1211-driver-${PV}.tgz \ + file://makefile.patch;patch=1 \ + file://zd1211-endian-fix.patch;patch=1 \ + " + +SRC_URI_unslung = "http://zd1211.ath.cx/download/zd1211-driver-${PV}.tgz \ + file://makefile-unslung.patch;patch=1 \ + file://zd1211-endian-fix.patch;patch=1 \ + file://unslung-iwpriv-hack.patch;patch=1 \ + file://unslung-writel-logging.patch;patch=1 \ + " + +S = "${WORKDIR}/zd1211-driver-${PV}" + +inherit module + +do_compile () { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS CC LD CPP + oe_runmake 'MODPATH={D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net' \ + 'KERNEL_SOURCE=${STAGING_KERNEL_DIR}' \ + 'KDIR=${STAGING_KERNEL_DIR}' \ + 'KERNEL_VERSION=${KERNEL_VERSION}' \ + 'CC=${KERNEL_CC}' \ + 'LD=${KERNEL_LD}' +} + +do_install() { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net + install -m 0644 ${S}/zd1211*${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net +} -- cgit 1.2.3-korg