From 112be8a44dd2012425679dbec81f950c06069859 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Mon, 5 Dec 2005 22:26:23 +0000 Subject: atmelwlandriver 3.4.1.0: add patches to support iPAQ h5xxx, courtesy Erik Hovland --- .../atmelwlandriver-3.4.1.0/dotconfig | 4 +- .../atmelwlandriver-3.4.1.0/makefile.patch | 38 +++++- .../power-on-and-leds.patch | 143 +++++++++++++++++++++ .../atmelwlandriver/atmelwlandriver_3.4.1.0.bb | 22 +++- 4 files changed, 197 insertions(+), 10 deletions(-) create mode 100644 packages/atmelwlandriver/atmelwlandriver-3.4.1.0/power-on-and-leds.patch (limited to 'packages') diff --git a/packages/atmelwlandriver/atmelwlandriver-3.4.1.0/dotconfig b/packages/atmelwlandriver/atmelwlandriver-3.4.1.0/dotconfig index c08a063593..79e699962a 100644 --- a/packages/atmelwlandriver/atmelwlandriver-3.4.1.0/dotconfig +++ b/packages/atmelwlandriver/atmelwlandriver-3.4.1.0/dotconfig @@ -12,8 +12,8 @@ CONFIG_PCMCIA_504A_2958=y CONFIG_PCI_506=n #USB Drivers -CONFIG_USB=n -CONFIG_USB_503A_RFMD=n +CONFIG_USB=y +CONFIG_USB_503A_RFMD=y CONFIG_USB_505=n CONFIG_USB_505A=n CONFIG_USB_505_2958=n diff --git a/packages/atmelwlandriver/atmelwlandriver-3.4.1.0/makefile.patch b/packages/atmelwlandriver/atmelwlandriver-3.4.1.0/makefile.patch index 8c72408a99..c90c778703 100644 --- a/packages/atmelwlandriver/atmelwlandriver-3.4.1.0/makefile.patch +++ b/packages/atmelwlandriver/atmelwlandriver-3.4.1.0/makefile.patch @@ -1,5 +1,6 @@ ---- atmelwlandriver/src/Pcmcia_Pci/Makefile.old 2005-02-06 14:29:48.000000000 +0000 -+++ atmelwlandriver/src/Pcmcia_Pci/Makefile 2005-02-06 14:30:01.000000000 +0000 +diff -Nurd atmelwlandriver-3.4.1.0/src/Pcmcia_Pci/Makefile atmelwlandriver-3.4.1.0-hh/src/Pcmcia_Pci/Makefile +--- atmelwlandriver-3.4.1.0/src/Pcmcia_Pci/Makefile 2004-11-10 01:40:50.000000000 -0800 ++++ atmelwlandriver-3.4.1.0-hh/src/Pcmcia_Pci/Makefile 2005-11-30 11:48:20.830290096 -0800 @@ -65,7 +65,7 @@ @for i in $(PCMCIA-y); do make $$i || exit 1; done @@ -9,3 +10,36 @@ nm $(OBJDIR)/$(MODULE).o |sort -u >$(OBJDIR)/$(patsubst %.o,%.map,$(MODULE).o); rfmdD: +@@ -206,9 +206,9 @@ + + fastvnet_cs.o:fastvnet_cs.c $(INC)/pcmcia/vnet.h + ifeq '$(NEW_KERN)' 'y' +- $(CC) $(CFLAGS) $(NEWKERNFLAGS) $(KMODNAMEFLAG)$(MODULE) -DMODULE -c fastvnet_cs.c -o fastvnet_cs.o ++ $(CC) $(CFLAGS) $(NEWKERNFLAGS) $(KMODNAMEFLAG)$(MODULE) -DMODULE -c fastvnet_cs.c + else +- $(CC) $(CFLAGS) -DMODULE -c fastvnet_cs.c -o fastvnet_cs.o ++ $(CC) $(CFLAGS) -DMODULE -c fastvnet_cs.c + endif + + clean: +diff -Nurd atmelwlandriver-3.4.1.0/src/usb/Makefile atmelwlandriver-3.4.1.0-hh/src/usb/Makefile +--- atmelwlandriver-3.4.1.0/src/usb/Makefile 2004-11-10 01:40:50.000000000 -0800 ++++ atmelwlandriver-3.4.1.0-hh/src/usb/Makefile 2005-11-30 11:48:45.517730782 -0800 +@@ -40,7 +40,7 @@ + for i in $(USB-y); do make $$i || exit 1; done + + final:$(objs) vnetusba.o +- ld -r -o $(OBJDIR)/$(MODULE).o vnetusba.o $(objs) ++ ${LD} -r -o $(OBJDIR)/$(MODULE).o vnetusba.o $(objs) + @nm $(OBJDIR)/$(MODULE).o |sort >../$(patsubst %.o,%.map, $(MODULE).o); + + +@@ -143,7 +143,7 @@ + callbacks.o : $(INC)/usb/$(fws) + vnetusba.o : vnetusba.c $(INC)/usb/vnetusba.h + ifeq '$(NEW_KERN)' 'y' +- $(CC) $(CFLAGS) $(NEWKERNFLAGS) $(KMODNAMEFLAG)$(MODULE) -DMODULE -c vnetusba.c -o vnetusba.o ++ $(CC) $(CFLAGS) $(NEWKERNFLAGS) $(KMODNAMEFLAG)$(MODULE) -DMODULE -c vnetusba.c + else + $(CC) $(CFLAGS) -DMODULE -c vnetusba.c + diff --git a/packages/atmelwlandriver/atmelwlandriver-3.4.1.0/power-on-and-leds.patch b/packages/atmelwlandriver/atmelwlandriver-3.4.1.0/power-on-and-leds.patch new file mode 100644 index 0000000000..b2a515eec1 --- /dev/null +++ b/packages/atmelwlandriver/atmelwlandriver-3.4.1.0/power-on-and-leds.patch @@ -0,0 +1,143 @@ +diff -Nurd atmelwlandriver-3.4.1.0/src/usb/vnetusba.c atmelwlandriver-3.4.1.0-hh/src/usb/vnetusba.c +--- atmelwlandriver-3.4.1.0/src/usb/vnetusba.c 2005-12-02 10:25:21.946561154 -0800 ++++ atmelwlandriver-3.4.1.0-hh/src/usb/vnetusba.c 2005-12-02 10:22:42.877486580 -0800 +@@ -31,6 +31,12 @@ + #include "vnetioctl.h" + #include "config.h" + ++#ifdef CONFIG_IPAQ_HANDHELD ++#include ++#include ++#include ++#endif ++ + struct usb_device_id __devinitdata vnet_usb_id[] = + #if defined(RFMD) + RFMD_DEVICES +@@ -151,6 +157,16 @@ + dbgcond(DBG_STATE, "state change %d -> %d\n", + Adapter->StationState, State); + Adapter->StationState = State; ++ ++#ifdef CONFIG_ARCH_H5400 ++ if (machine_is_h5400()) { ++ if (State == STATION_STATE_READY) { ++ ipaq_led_off (RED_LED); ++ } else { ++ ipaq_led_blink (RED_LED, 1, 2); ++ } ++ } ++#endif + } + + static int usb_vnet_open(struct net_device *dev) +@@ -221,6 +237,13 @@ + #endif + #endif // Linux v. < 2.5+ + ++#ifdef CONFIG_ARCH_H5400 ++ if (machine_is_h5400()) { ++ ipaq_led_off (RED_LED); ++ ipaq_led_off (RED_LED_2); ++ } ++#endif ++ + printk("Device %s closed\n", dev->name); + return 0; + } +@@ -1926,6 +1949,32 @@ + return 0; + } + ++#ifdef CONFIG_IPAQ_HANDHELD ++static struct timer_list led_timer; ++ ++static void ++ipaq_clear_led (unsigned long time) ++{ ++ ipaq_led_off (RED_LED_2); ++} ++ ++static void ++ipaq_blink_led (void) ++{ ++ ipaq_led_on (RED_LED_2); ++ ++ mod_timer (&led_timer, jiffies + (HZ / 25)); ++} ++ ++static void ++ipaq_init_led (void) ++{ ++ led_timer.function = ipaq_clear_led; ++ ++ init_timer (&led_timer); ++} ++#endif /* CONFIG_IPAQ_HANDHELD */ ++ + static int usb_vnet_tx(struct sk_buff *skb, struct net_device *dev) + { + PVNet_ADAPTER Adapter = (PVNet_ADAPTER) dev->priv; +@@ -1954,6 +2003,11 @@ + if (Adapter->StationState != STATION_STATE_READY) + return -EAGAIN; + ++#ifdef CONFIG_ARCH_H5400 ++ if (machine_is_h5400()) ++ ipaq_blink_led(); ++#endif ++ + len = (ETH_ZLEN < skb->len) ? skb->len : ETH_ZLEN; + + Adapter->lock = SPIN_LOCK_UNLOCKED; +@@ -2080,6 +2134,10 @@ + kfree(Adapter); + return RETERR; + } ++#ifdef CONFIG_ARCH_H5400 ++ if (machine_is_h5400 ()) ++ ipaq_init_led (); ++#endif + #if (LINUX_VERSION_CODE > 0x020500) + usb_set_intfdata(interface, Adapter); + +@@ -2244,6 +2302,11 @@ + Adapter->flags &= ~VNET_RUNNING; + Adapter->StationState = STATION_STATE_EXITING; + ++#ifdef CONFIG_ARCH_H5400 ++ if (machine_is_h5400()) ++ del_timer(&led_timer); ++#endif ++ + if (waitqueue_active(Adapter->ctrl_wait)) { + Adapter->flags |= WAKE_UP_WITH_ERROR; + wake_up_interruptible(Adapter->ctrl_wait); +@@ -2316,6 +2379,13 @@ + + static int __init usb_vnet_init(void) + { ++#ifdef CONFIG_ARCH_H5400 ++ if (machine_is_h5400()) { ++ /* turn WLAN power on */ ++ SET_H5400_ASIC_GPIO (GPB, RF_POWER_ON, 1); ++ SET_H5400_ASIC_GPIO (GPB, WLAN_POWER_ON, 1); ++ } ++#endif + return usb_register(&vnet_driver); + } + +@@ -2326,6 +2396,13 @@ + #endif + //printk("AtmelWlanDriver Is deregistered!\n"); + usb_deregister(&vnet_driver); ++#ifdef CONFIG_ARCH_H5400 ++ if (machine_is_h5400()) { ++ /* turn WLAN power off */ ++ SET_H5400_ASIC_GPIO (GPB, RF_POWER_ON, 0); ++ SET_H5400_ASIC_GPIO (GPB, WLAN_POWER_ON, 0); ++ } ++#endif + } + + /**************************************************************/ diff --git a/packages/atmelwlandriver/atmelwlandriver_3.4.1.0.bb b/packages/atmelwlandriver/atmelwlandriver_3.4.1.0.bb index ad07c26b53..7da172aafd 100644 --- a/packages/atmelwlandriver/atmelwlandriver_3.4.1.0.bb +++ b/packages/atmelwlandriver/atmelwlandriver_3.4.1.0.bb @@ -1,18 +1,28 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/atmelwlandriver/atmelwlandriver-${PV}.tar.bz2 \ file://dotconfig \ file://pcmf502rd.conf \ - file://makefile.patch;patch=1" + file://makefile.patch;patch=1 \ + file://add-compaq-usb-ids.patch;patch=1 \ + file://power-on-and-leds.patch;patch=1 \ + file://fix-kernel-version-test-for-hh.patch;patch=1" S = "${WORKDIR}/atmelwlandriver" LICENSE = "GPL" +PR = "r1" inherit module SECTION = "base" +PACKAGES = "atmelwlandriver-pcmcia atmelwlandriver-usb" + +FILES_atmelwlandriver-pcmcia = "${base_libdir}/modules/${KERNEL_VERSION}/drivers/net/wireless/atmel/pcmf502rd.o ${sysconfdir}/pcmcia/pcmf502rd.conf" +FILES_atmelwlandriver-usb = "${base_libdir}/modules/${KERNEL_VERSION}/drivers/net/wireless/atmel/usbvnetr.o" + do_configure() { install ${WORKDIR}/dotconfig .config } -CFLAGS = "-DLINUX_OS -D__KERNEL__ -DMODULE -I${S}/src/includes -I${S}/src/includes/pcmcia -I${STAGING_KERNEL_DIR}/include" +CFLAGS_pcmcia = "-DLINUX_OS -D__KERNEL__ -DMODULE -I${S}/src/includes -I${S}/src/includes/pcmcia -I${STAGING_KERNEL_DIR}/include" +CFLAGS_usb = "-DLINUX_OS -D__KERNEL__ -DMODULE -I${S}/src/includes -I${S}/src/includes/usb -I${STAGING_KERNEL_DIR}/include" do_compile() { export INC="${S}/src/includes" @@ -20,14 +30,14 @@ do_compile() { export KERNEL_PATH="${STAGING_KERNEL_DIR}" export KERNEL_SRC="${STAGING_KERNEL_DIR}" export CC="${KERNEL_CC}" + export CCC="${KERNEL_CC}" export LD="${KERNEL_LD}" export KERNEL_VERSION="${KERNEL_VERSION}" export TOPDIR="${S}" - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + unset CFLAGS CCFLAGS CPPFLAGS CXXFLAGS LDFLAGS install -d ${OBJDIR} - #oe_runmake -C src/Pcmcia_Pci final CFLAGS:='${CFLAGS} -DATMEL_WLAN -DRFMD -DINT_ROAM' MODULE:='pcmf502r' LIB:=-RFMD- - oe_runmake -C src/Pcmcia_Pci final CFLAGS:='${CFLAGS} -DATMEL_WLAN -DRFMD -DINT_ROAM -DREV_D' MODULE:='pcmf502rd' LIB:=-REVD- - #oe_runmake -C src/Pcmcia_Pci final CFLAGS:='${CFLAGS} -DATMEL_WLAN -DRFMD -DINT_ROAM -DREV_E' MODULE:='pcmf502re' LIB:=-REVE- + oe_runmake -C src/Pcmcia_Pci final CFLAGS:='${CFLAGS_pcmcia} -DATMEL_WLAN -DRFMD -DINT_ROAM -DREV_D' MODULE:='pcmf502rd' LIB:=-REVD- + oe_runmake -C src/usb final CFLAGS:='${CFLAGS_usb} -DATMEL_WLAN -DRFMD' MODULE:='usbvnetr' } do_install() { -- cgit v1.2.3