diff options
author | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
---|---|---|
committer | Denys Dmytriyenko <denis@denix.org> | 2009-03-17 14:32:59 -0400 |
commit | 709c4d66e0b107ca606941b988bad717c0b45d9b (patch) | |
tree | 37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/wlags-modules | |
parent | fa6cd5a3b993f16c27de4ff82b42684516d433ba (diff) |
rename packages/ to recipes/ per earlier agreement
See links below for more details:
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326
http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816
Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Acked-by: Mike Westerhof <mwester@dls.net>
Acked-by: Philip Balister <philip@balister.org>
Acked-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Marcin Juszkiewicz <hrw@openembedded.org>
Acked-by: Koen Kooi <koen@openembedded.org>
Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/wlags-modules')
-rw-r--r-- | recipes/wlags-modules/files/Makefile | 81 | ||||
-rw-r--r-- | recipes/wlags-modules/files/bugs.patch | 76 | ||||
-rw-r--r-- | recipes/wlags-modules/files/fixes.patch | 110 | ||||
-rw-r--r-- | recipes/wlags-modules/files/includes.patch | 450 | ||||
-rw-r--r-- | recipes/wlags-modules/files/kernel-pcmcia.patch | 90 | ||||
-rw-r--r-- | recipes/wlags-modules/files/wlags_h1.conf | 6 | ||||
-rw-r--r-- | recipes/wlags-modules/files/wlags_h2.conf | 6 | ||||
-rw-r--r-- | recipes/wlags-modules/kernel-module-wlags49-h1-cs_718.bb | 7 | ||||
-rw-r--r-- | recipes/wlags-modules/kernel-module-wlags49-h2-cs_718.bb | 7 | ||||
-rw-r--r-- | recipes/wlags-modules/wlags-modules_718.inc | 67 |
10 files changed, 900 insertions, 0 deletions
diff --git a/recipes/wlags-modules/files/Makefile b/recipes/wlags-modules/files/Makefile new file mode 100644 index 0000000000..9cd1358984 --- /dev/null +++ b/recipes/wlags-modules/files/Makefile @@ -0,0 +1,81 @@ +EXTRA_CFLAGS := -DBUS_PCMCIA -DWVLAN_49 -DHCF_MEM_IO -DHAS_WIRELESS_EXTENSIONS -DUSE_UIL -DUSE_WPA +EXTRA_CFLAGS += -DDBG=1 -DDBG_LVL=2 + +# Station: +EXTRA_CFLAGS += -DSTA_ONLY + +# Access-Point: +#EXTRA_CFLAGS += -DAP_ONLY -DUSE_WDS + +# Station & Access-Point: +#EXTRA_CFLAGS += -DUSE_WDS + +# Je nach Station, AP oder St+Ap müssen verschiedene Firmware-Versionen einkompiliert werden: +ifneq ($(findstring STA_ONLY,$(EXTRA_CFLAGS)),) +sta_ap-objs := sta_h$(COMPILE_HERMES).o +else +ifneq ($(findstring AP_ONLY,$(EXTRA_CFLAGS)),) +sta_ap-objs := ap_h$(COMPILE_HERMES).o +else +sta_ap-objs := sta_h$(COMPILE_HERMES).o +sta-ap-objs += ap_h$(COMPILE_HERMELS).o +endif +endif + + +####################################### + +ifeq ($(COMPILE_HERMES),1) + +EXTRA_CFLAGS := $(EXTRA_CFLAGS) -DHERMES1 + +list-multi := wlags49_h1_cs.o + +wlags49_h1_cs-objs := wl_cs.o wl_main.o wl_netdev.o wl_priv.o wl_util.o wl_wext.o \ + hcf.o mmd.o dhf.o $(sta_ap-objs) + +obj-m := wlags49_h1_cs.o + +wlags49_h1_cs.o: $(wlags49_h1_cs-objs) + $(LD) $(LD_RFLAG) -r -o $@ $(wlags49_h1_cs-objs) + +endif + +####################################### + +ifeq ($(COMPILE_HERMES),2) + +EXTRA_CFLAGS := $(EXTRA_CFLAGS) -DHERMES2 -DUSE_RTS + +list-multi := wlags49_h2_cs.o + +wlags49_h2_cs-objs := wl_cs.o wl_main.o wl_netdev.o wl_priv.o wl_util.o wl_wext.o wl_enc.o \ + hcf.o mmd.o dhf.o $(sta_ap-objs) + +obj-m := wlags49_h2_cs.o + +wlags49_h2_cs.o: $(wlags49_h2_cs-objs) + $(LD) $(LD_RFLAG) -r -o $@ $(wlags49_h2_cs-objs) + +endif + +####################################### + +ifeq ($(COMPILE_HERMES),25) + +EXTRA_CFLAGS := $(EXTRA_CFLAGS) -DHERMES25 -DUSE_RTS + +list-multi := wlags49_h25_cs.o + +wlags49_h25_cs-objs := wl_cs.o wl_main.o wl_netdev.o wl_priv.o wl_util.o wl_wext.o \ + hcf.o mmd.o dhf.o $(sta_ap-objs) + +obj-m := wlags49_h25_cs.o + +wlags49_h25_cs.o: $(wlags49_h25_cs-objs) + $(LD) $(LD_RFLAG) -r -o $@ $(wlags49_h25_cs-objs) + +endif + + +include $(TOPDIR)/Rules.make diff --git a/recipes/wlags-modules/files/bugs.patch b/recipes/wlags-modules/files/bugs.patch new file mode 100644 index 0000000000..12fcceaa05 --- /dev/null +++ b/recipes/wlags-modules/files/bugs.patch @@ -0,0 +1,76 @@ +This are some fixes for real bugs that I had with the driver in my +environment. + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- wlags/wl_wext.c~bugs ++++ wlags/wl_wext.c +@@ -3811,9 +3811,11 @@ + /* NOTE: Format of MAC address (using colons to seperate bytes) may cause + a problem in future versions of the supplicant, if they ever + actually parse these parameters */ ++#if DBG + sprintf( msg, "MLME-MICHAELMICFAILURE.indication(keyid=%d %scast addr=" + "%s)", key_idx, addr1[0] & 0x01 ? "broad" : "uni", + DbgHwAddr( addr2 )); ++#endif + wrqu.data.length = strlen( msg ); + wireless_send_event( dev, IWEVCUSTOM, &wrqu, msg ); + #endif /* WIRELESS_EXT > 14 */ +--- wlags/mmd.c~bugs ++++ wlags/mmd.c +@@ -233,7 +233,17 @@ + i = 0; + } + #endif // HCF_ASSERT +- return i > 3 && supp->len == sizeof(CFG_SUP_RANGE_STRCT)/sizeof(hcf_16) - 1 ? +- (CFG_RANGE_SPEC_STRCT*)actq : NULL; /* 8 */ ++/* ++ * Originally there was this code here: ++ * ++ * return i > 3 && supp->len == sizeof(CFG_SUP_RANGE_STRCT)/sizeof(hcf_16) - 1 ? ++ * (CFG_RANGE_SPEC_STRCT*)actq : NULL; ++ * ++ * Unfortunately, the sizeof() boogy was not working correctly on the Intel PXA2550 cpu. ++ * sizeof(CFG_SUP_RANGE_STRCT)==16 there. So I had to uncomment this. ++ * Holger Schurig <hs4233@mail.mn-solutions.de> ++ */ ++ ++ return i > 3 ? (CFG_RANGE_SPEC_STRCT*)actq : NULL; /* 8 */ + } // mmd_check_comp + +--- wlags/dhf.c~bugs ++++ wlags/dhf.c +@@ -554,7 +554,6 @@ + { + plugrecord *plugrecordp = fw->pdaplug; + int rc = HCF_SUCCESS; +-int plugrc = HCF_SUCCESS; + CFG_PROG_STRCT *ltvp; + hcf_32 code; // Code to plug + hcf_16 *pdap; // pointer to matching code found in pda +@@ -565,7 +564,22 @@ + while( ( rc == HCF_SUCCESS ) && ( code = plugrecordp->code ) != 0 ) { + pdap = apply_plug_rules(&cfg_prod_data[2], (hcf_16)(code & CODEMASK) ); + if ( pdap ) { ++#if 0 ++/* ++ * For plug record code=0x00000150, I get ++ * ++ * (CNV_LITTLE_TO_INT(*pdap) - 1) * 2 == 4 ++ * and ++ * plugrecordp->len == 2 ++ * ++ * Therefore the download failed. Therefore, I disable this check. ++ * Holger Schurig, hs4233@mail.mn-solutions.de ++ */ ++ + if ( (CNV_LITTLE_TO_INT(*pdap) - 1) * 2 != plugrecordp->len ) { ++#else ++ if (0) { ++#endif + //!! Be aware of the difference with primary plug records: + //!! as opposed to plug_pri_records '!=' rather than '>' + //!! production data plug records must fit exactly at their location diff --git a/recipes/wlags-modules/files/fixes.patch b/recipes/wlags-modules/files/fixes.patch new file mode 100644 index 0000000000..32036f8e58 --- /dev/null +++ b/recipes/wlags-modules/files/fixes.patch @@ -0,0 +1,110 @@ +This are misc fixes to warnings. + +Somehow I have the feeling that Agere never used -Wall or is still using +ancient compilers (e.g. gcc-2.95.x) so that they don't see those warnings. + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- wlags/wl_main.c~fixes ++++ wlags/wl_main.c +@@ -81,6 +81,7 @@ + ******************************************************************************/ + #include "wl_version.h" + ++#include <linux/init.h> + #include <linux/module.h> + #include <linux/types.h> + #include <linux/kernel.h> +@@ -1122,7 +1123,6 @@ + VALID_PARAM( PARM_PM_ENABLED <= WVLAN_PM_STATE_STANDARD ); + VALID_PARAM( !PARM_CREATE_IBSS || strchr( "NnYy", PARM_CREATE_IBSS[0] ) != NULL ); + VALID_PARAM( !PARM_RX_MULTICAST || strchr( "NnYy", PARM_RX_MULTICAST[0] ) != NULL ); +- VALID_PARAM(( PARM_MAX_SLEEP <= PARM_MAX_MAX_PM_SLEEP )); + VALID_PARAM(( PARM_AUTHENTICATION <= PARM_MAX_AUTHENTICATION )); + VALID_PARAM(( PARM_OWN_ATIM_WINDOW <= PARM_MAX_OWN_ATIM_WINDOW )); + VALID_PARAM(( PARM_PM_HOLDOVER_DURATION <= PARM_MAX_PM_HOLDOVER_DURATION )); +@@ -1513,6 +1513,7 @@ + WL_WDS_NETDEV_REGISTER( lp ); + + ++#ifdef USE_OLD_PARMS + /* Reset the DownloadFirmware variable in the private struct. If the + config file is not used, this will not matter; if it is used, it + will be reparsed in wl_open(). This is done because logic in wl_open +@@ -1520,6 +1521,7 @@ + the file here; however, this parsing is needed to register WDS ports + in AP mode, if they are configured */ + lp->DownloadFirmware = download_firmware; ++#endif + + + #ifdef USE_RTS +@@ -1539,10 +1541,12 @@ + DBG_TRACE( DbgInfo, "%s: Wireless, io_addr %#03lx, irq %d, ""mac_address ", + dev->name, dev->base_addr, dev->irq ); + ++#if 0 + for( i = 0; i < ETH_ALEN; i++ ) + { + printk( "%02X%c", dev->dev_addr[i], (( i < ( ETH_ALEN-1 )) ? ':' : '\n' )); + } ++#endif + + + DBG_LEAVE( DbgInfo ); +@@ -4078,6 +4082,7 @@ + + break; + ++#if DBG + case CFG_LINK_STAT: + DBG_TRACE( DbgInfo, "CFG_LINK_STAT\n" ); + +@@ -4254,6 +4259,7 @@ + default: + DBG_TRACE( DbgInfo, "CFG_TALLIES\n" ); + break; ++#endif + } + + +--- wlags/hcf.c~fixes ++++ wlags/hcf.c +@@ -181,11 +181,14 @@ + + COMP_ROLE_SUPL, + COMP_ID_DUI, +- { DUI_COMPAT_VAR, ++ { ++ { ++ DUI_COMPAT_VAR, + DUI_COMPAT_BOT, + DUI_COMPAT_TOP ++ } + } +-} ; ++}; + + struct CFG_RANGE3_STRCT BASED cfg_drv_act_ranges_pri = { + sizeof(cfg_drv_act_ranges_pri)/sizeof(hcf_16) - 1, //length of RID +@@ -3603,7 +3606,7 @@ + + if ( (ifbp->IFB_CardStat & (CARD_STAT_INCOMP_PRI|CARD_STAT_INCOMP_FW) ) == 0 && /* 20*/ + ( (CFG_RID_CFG_MIN <= ltvp->typ && ltvp->typ <= CFG_RID_CFG_MAX ) || +- (0xFFE0 <= ltvp->typ && ltvp->typ <= 0xFFFF ) )) { ++ (0xFFE0 <= ltvp->typ) )) { + + #if HCF_ASSERT + if ( ltvp->typ != CFG_DEFAULT_KEYS && ltvp->typ != CFG_ADD_TKIP_DEFAULT_KEY && \ +--- wlags/wl_enc.c~fixes ++++ wlags/wl_enc.c +@@ -78,6 +78,7 @@ + /******************************************************************************* + * include files + ******************************************************************************/ ++#include <asm/uaccess.h> + #include "wl_version.h" + + #include "debug.h" diff --git a/recipes/wlags-modules/files/includes.patch b/recipes/wlags-modules/files/includes.patch new file mode 100644 index 0000000000..16a5645531 --- /dev/null +++ b/recipes/wlags-modules/files/includes.patch @@ -0,0 +1,450 @@ +I keep all files in a flat directory. This patch changes the #include lines +accordingly. + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- wlags/wl_main.c~includes ++++ wlags/wl_main.c +@@ -79,7 +79,7 @@ + /******************************************************************************* + * include files + ******************************************************************************/ +-#include <wireless/wl_version.h> ++#include "wl_version.h" + + #include <linux/module.h> + #include <linux/types.h> +@@ -104,29 +104,29 @@ + #include <linux/if_arp.h> + #include <linux/ioport.h> + +-#include <hcf/debug.h> ++#include "debug.h" + +-#include <hcf.h> +-#include <dhf.h> +-#include <hcfdef.h> ++#include "hcf.h" ++#include "dhf.h" ++#include "hcfdef.h" + +-#include <wireless/wl_if.h> +-#include <wireless/wl_internal.h> +-#include <wireless/wl_util.h> +-#include <wireless/wl_main.h> +-#include <wireless/wl_netdev.h> +-#include <wireless/wl_wext.h> ++#include "wl_if.h" ++#include "wl_internal.h" ++#include "wl_util.h" ++#include "wl_main.h" ++#include "wl_netdev.h" ++#include "wl_wext.h" + + #ifdef USE_PROFILE +-#include <wireless/wl_profile.h> ++#include "wl_profile.h" + #endif /* USE_PROFILE */ + + #ifdef BUS_PCMCIA +-#include <wireless/wl_cs.h> ++#include "wl_cs.h" + #endif /* BUS_PCMCIA */ + + #ifdef BUS_PCI +-#include <wireless/wl_pci.h> ++#include "wl_pci.h" + #endif /* BUS_PCI */ + + +--- wlags/wl_cs.c~includes ++++ wlags/wl_cs.c +@@ -79,7 +79,7 @@ + /******************************************************************************* + * include files + ******************************************************************************/ +-#include <wireless/wl_version.h> ++#include "wl_version.h" + + #include <linux/kernel.h> + #include <linux/sched.h> +@@ -108,18 +108,18 @@ + #include <pcmcia/cisreg.h> + #include <pcmcia/ciscode.h> + #include <pcmcia/ds.h> +-#include <hcf/debug.h> ++#include "debug.h" + +-#include <hcf.h> +-#include <dhf.h> +-#include <hcfdef.h> ++#include "hcf.h" ++#include "dhf.h" ++#include "hcfdef.h" + +-#include <wireless/wl_if.h> +-#include <wireless/wl_internal.h> +-#include <wireless/wl_util.h> +-#include <wireless/wl_main.h> +-#include <wireless/wl_netdev.h> +-#include <wireless/wl_cs.h> ++#include "wl_if.h" ++#include "wl_internal.h" ++#include "wl_util.h" ++#include "wl_main.h" ++#include "wl_netdev.h" ++#include "wl_cs.h" + + + +--- wlags/wl_enc.c~includes ++++ wlags/wl_enc.c +@@ -78,12 +78,12 @@ + /******************************************************************************* + * include files + ******************************************************************************/ +-#include <wireless/wl_version.h> ++#include "wl_version.h" + +-#include <hcf/debug.h> +-#include <hcf.h> ++#include "debug.h" ++#include "hcf.h" + +-#include <wireless/wl_enc.h> ++#include "wl_enc.h" + + + +--- wlags/wl_netdev.c~includes ++++ wlags/wl_netdev.c +@@ -79,7 +79,7 @@ + /******************************************************************************* + * include files + ******************************************************************************/ +-#include <wireless/wl_version.h> ++#include "wl_version.h" + + #include <linux/module.h> + #include <linux/types.h> +@@ -104,30 +104,30 @@ + #include <linux/if_arp.h> + #include <linux/ioport.h> + +-#include <hcf/debug.h> ++#include "debug.h" + +-#include <hcf.h> +-#include <dhf.h> +-#include <hcfdef.h> ++#include "hcf.h" ++#include "dhf.h" ++#include "hcfdef.h" + +-#include <wireless/wl_if.h> +-#include <wireless/wl_internal.h> +-#include <wireless/wl_util.h> +-#include <wireless/wl_priv.h> +-#include <wireless/wl_main.h> +-#include <wireless/wl_netdev.h> +-#include <wireless/wl_wext.h> ++#include "wl_if.h" ++#include "wl_internal.h" ++#include "wl_util.h" ++#include "wl_priv.h" ++#include "wl_main.h" ++#include "wl_netdev.h" ++#include "wl_wext.h" + + #ifdef USE_PROFILE +-#include <wireless/wl_profile.h> ++#include "wl_profile.h" + #endif /* USE_PROFILE */ + + #ifdef BUS_PCMCIA +-#include <wireless/wl_cs.h> ++#include "wl_cs.h" + #endif /* BUS_PCMCIA */ + + #ifdef BUS_PCI +-#include <wireless/wl_pci.h> ++#include "wl_pci.h" + #endif /* BUS_PCI */ + + +--- wlags/wl_priv.c~includes ++++ wlags/wl_priv.c +@@ -78,24 +78,24 @@ + /******************************************************************************* + * include files + ******************************************************************************/ +-#include <wireless/wl_version.h> ++#include "wl_version.h" + + #include <linux/if_arp.h> + #include <linux/ioport.h> + #include <linux/delay.h> + #include <asm/uaccess.h> + +-#include <hcf/debug.h> +-#include <hcf.h> +-#include <hcfdef.h> ++#include "debug.h" ++#include "hcf.h" ++#include "hcfdef.h" + +-#include <wireless/wl_if.h> +-#include <wireless/wl_internal.h> +-#include <wireless/wl_enc.h> +-#include <wireless/wl_main.h> +-#include <wireless/wl_priv.h> +-#include <wireless/wl_util.h> +-#include <wireless/wl_netdev.h> ++#include "wl_if.h" ++#include "wl_internal.h" ++#include "wl_enc.h" ++#include "wl_main.h" ++#include "wl_priv.h" ++#include "wl_util.h" ++#include "wl_netdev.h" + + + +--- wlags/wl_profile.c~includes ++++ wlags/wl_profile.c +@@ -95,23 +95,23 @@ + /******************************************************************************* + * include files + ******************************************************************************/ +-#include <wireless/wl_version.h> ++#include "wl_version.h" + + #include <linux/netdevice.h> + #include <linux/etherdevice.h> + #include <linux/unistd.h> + #include <asm/uaccess.h> + +-#include <hcf/debug.h> +-#include <hcf.h> +-#include <hcfdef.h> ++#include "debug.h" ++#include "hcf.h" ++#include "hcfdef.h" + +-#include <wireless/wl_if.h> +-#include <wireless/wl_internal.h> +-#include <wireless/wl_util.h> +-#include <wireless/wl_enc.h> +-#include <wireless/wl_main.h> +-#include <wireless/wl_profile.h> ++#include "wl_if.h" ++#include "wl_internal.h" ++#include "wl_util.h" ++#include "wl_enc.h" ++#include "wl_main.h" ++#include "wl_profile.h" + + + +--- wlags/wl_util.c~includes ++++ wlags/wl_util.c +@@ -78,7 +78,7 @@ + /******************************************************************************* + * include files + ******************************************************************************/ +-#include <wireless/wl_version.h> ++#include "wl_version.h" + + #include <linux/kernel.h> + #include <linux/sched.h> +@@ -99,13 +99,13 @@ + #include <linux/if_arp.h> + #include <linux/ioport.h> + +-#include <hcf/debug.h> +-#include <hcf.h> +-#include <hcfdef.h> ++#include "debug.h" ++#include "hcf.h" ++#include "hcfdef.h" + +-#include <wireless/wl_if.h> +-#include <wireless/wl_internal.h> +-#include <wireless/wl_util.h> ++#include "wl_if.h" ++#include "wl_internal.h" ++#include "wl_util.h" + + + +--- wlags/wl_wext.c~includes ++++ wlags/wl_wext.c +@@ -74,22 +74,22 @@ + /******************************************************************************* + * include files + ******************************************************************************/ +-#include <wireless/wl_version.h> ++#include "wl_version.h" + + #include <linux/if_arp.h> + #include <linux/ioport.h> + #include <linux/delay.h> + #include <asm/uaccess.h> + +-#include <hcf/debug.h> +-#include <hcf.h> +-#include <hcfdef.h> ++#include "debug.h" ++#include "hcf.h" ++#include "hcfdef.h" + +-#include <wireless/wl_if.h> +-#include <wireless/wl_internal.h> +-#include <wireless/wl_util.h> +-#include <wireless/wl_main.h> +-#include <wireless/wl_wext.h> ++#include "wl_if.h" ++#include "wl_internal.h" ++#include "wl_util.h" ++#include "wl_main.h" ++#include "wl_wext.h" + + + +@@ -212,7 +212,7 @@ + break; + + +- case SIOCSIWSPY: // Set the spy list ++ case SIOCSIWSPY: // Set the spy list + + DBG_TRACE( DbgInfo, "IOCTL: SIOCGIWNAME\n" ); + ret = wireless_set_spy_addrs( wrq, lp ); +@@ -220,7 +220,7 @@ + break; + + +- case SIOCGIWSPY: // Get the spy list ++ case SIOCGIWSPY: // Get the spy list + + DBG_TRACE( DbgInfo, "IOCTL: SIOCSIWSPY\n" ); + ret = wireless_get_spy_addrs( wrq, lp ); +@@ -239,6 +239,7 @@ + + + #if (HCF_TYPE) & HCF_TYPE_STA ++ + case SIOCGIWAP: // Get the MAC Address of current AP + + DBG_TRACE( DbgInfo, "IOCTL: SIOCGIWAP\n" ); +@@ -248,7 +249,6 @@ + + #endif //HCF_STA + +- + case SIOCGIWAPLIST: + + /* NOTE: SIOCGIWAPLIST has been deprecated by SIOCSIWSCAN/SIOCGIWSCAN. +@@ -267,7 +267,7 @@ + break; + + +- case SIOCSIWSENS: // Set the desired AP density ++ case SIOCSIWSENS: // Set the desired AP density + + DBG_TRACE( DbgInfo, "IOCTL: SIOCSIWSENS\n" ); + ret = wireless_set_sensitivity( wrq, lp ); +@@ -275,7 +275,7 @@ + break; + + +- case SIOCGIWSENS: // Get the current AP density ++ case SIOCGIWSENS: // Get the current AP density + + DBG_TRACE( DbgInfo, "IOCTL: SIOCGIWSENS\n" ); + wireless_get_sensitivity( wrq, lp ); +@@ -287,7 +287,7 @@ + + #if WIRELESS_EXT > 5 + +- case SIOCSIWESSID: // Set the desired network name (ESSID) ++ case SIOCSIWESSID: // Set the desired network name (ESSID) + + DBG_TRACE( DbgInfo, "IOCTL: SIOCSIWESSID\n" ); + ret = wireless_set_essid( wrq, lp ); +@@ -295,7 +295,7 @@ + break; + + +- case SIOCGIWESSID: // Get the current network name (ESSID) ++ case SIOCGIWESSID: // Get the current network name (ESSID) + + DBG_TRACE(DbgInfo, "IOCTL: SIOCGIWESSID\n"); + ret = wireless_get_essid( wrq, lp ); +@@ -307,7 +307,7 @@ + + #if WIRELESS_EXT > 7 + +- case SIOCSIWNICKN: // Set desired station nickname ++ case SIOCSIWNICKN: // Set desired station nickname + + DBG_TRACE( DbgInfo, "IOCTL: SIOCSIWNICKN\n" ); + ret = wireless_set_nickname( wrq, lp ); +@@ -315,7 +315,7 @@ + break; + + +- case SIOCGIWNICKN: // Get current station nickname ++ case SIOCGIWNICKN: // Get current station nickname + + DBG_TRACE( DbgInfo, "IOCTL: SIOCGIWNICKN\n" ); + ret = wireless_get_nickname( wrq, lp ); +@@ -323,7 +323,7 @@ + break; + + +- case SIOCSIWRTS: // Set the desired RTS threshold ++ case SIOCSIWRTS: // Set the desired RTS threshold + + DBG_TRACE( DbgInfo, "IOCTL: SIOCSIWRTS\n" ); + ret = wireless_set_rts_threshold( wrq, lp ); +@@ -331,7 +331,7 @@ + break; + + +- case SIOCGIWRTS: // Get the current RTS threshold ++ case SIOCGIWRTS: // Get the current RTS threshold + + DBG_TRACE( DbgInfo, "IOCTL: SIOCGIWRTS\n" ); + wireless_get_rts_threshold( wrq, lp ); +@@ -382,7 +382,7 @@ + break; + + +- case SIOCGIWENCODE: // Get the encryption keys ++ case SIOCGIWENCODE: // Get the encryption keys + + DBG_TRACE( DbgInfo, "IOCTL: SIOCGIWENCODE\n" ); + ret = wireless_get_encode( wrq, lp ); +@@ -503,7 +503,7 @@ + + #endif // WIRELESS_EXT > 11 + +- case SIOCGIWPRIV: // Get private ioctl interface info ++ case SIOCGIWPRIV: // Get private ioctl interface info + + DBG_TRACE(DbgInfo, "IOCTL: SIOCGIWPRIV NOT SUPPORTED!!!\n"); + ret = -EOPNOTSUPP; +--- wlags/hcfcfg.h~includes ++++ wlags/hcfcfg.h +@@ -764,7 +764,7 @@ + + #include <asm/io.h> + #include <linux/module.h> +-#include <wireless/wl_version.h> ++#include "wl_version.h" + + /* The following macro ensures that no symbols are exported, minimizing the chance of a symbol + collision in the kernel */ diff --git a/recipes/wlags-modules/files/kernel-pcmcia.patch b/recipes/wlags-modules/files/kernel-pcmcia.patch new file mode 100644 index 0000000000..2a27344461 --- /dev/null +++ b/recipes/wlags-modules/files/kernel-pcmcia.patch @@ -0,0 +1,90 @@ +Compiling against PCMCIA-CS is obsolete since more than one year. +Especially in Linux Kernel trees for embedded devices, the +kernel-based PCMCIA are working, whereas pcmcia-cs has usual problems. + +This patch creates the necessary infrastructure to run the wlags +driver with kernel-pcmcia. + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- wlags/wl_version.h~kernel-pcmcia ++++ wlags/wl_version.h +@@ -161,23 +161,29 @@ + the status of wireless extension support. Otherwise, including wireless + extension support will be switched on/off by the USE_WEXT condition */ + #if defined BUS_PCMCIA +-#include <pcmcia/config.h> +-#include <pcmcia/k_compat.h> ++//#include <pcmcia/config.h> ++//#include <pcmcia/k_compat.h> + #elif defined BUS_PCI + #if USE_WEXT + #define HAS_WIRELESS_EXTENSIONS + #endif // USE_WEXT ++#endif // BUS_XXX + + + /* These are #defines you get "for free" with PCMCIA that I needed to add for + PCI to build */ ++#ifndef NEW_MULTICAST + #define NEW_MULTICAST ++#endif ++#ifndef ALLOC_SKB + #define ALLOC_SKB(len) dev_alloc_skb(len+2) ++#endif ++#ifndef GET_PACKET + #define GET_PACKET(dev, skb, count)\ + skb_reserve((skb), 2); \ + BLOCK_INPUT(skb_put((skb), (count)), (count)); \ + (skb)->protocol = eth_type_trans((skb), (dev)) +-#endif // BUS_XXX ++#endif + + + +--- wlags/wl_internal.h~kernel-pcmcia ++++ wlags/wl_internal.h +@@ -85,8 +85,8 @@ + * include files + ******************************************************************************/ + #ifdef BUS_PCMCIA +-#include <pcmcia/config.h> +-#include <pcmcia/k_compat.h> ++//#include <pcmcia/config.h> ++//#include <pcmcia/k_compat.h> + #include <pcmcia/version.h> + #include <pcmcia/cs_types.h> + #include <pcmcia/cs.h> +--- wlags/wl_netdev.c~kernel-pcmcia ++++ wlags/wl_netdev.c +@@ -1447,7 +1447,7 @@ + dev->set_multicast_list = &wl_multicast; + + #ifdef BUS_PCMCIA +- init_dev_name( dev, ( (struct wl_private *)dev->priv)->node ); ++//HS init_dev_name( dev, ( (struct wl_private *)dev->priv)->node ); + #endif // BUS_PCMCIA + + dev->init = &wl_init; +--- wlags/wl_cs.c~kernel-pcmcia ++++ wlags/wl_cs.c +@@ -497,7 +497,7 @@ + /* Perform device-specific removal */ + wl_remove( dev ); + +- link->release.expires = RUN_AT( HZ/20 ); ++ link->release.expires = jiffies + ( HZ/20 ); + add_timer( &( link->release )); + } + +@@ -786,7 +786,7 @@ + + if( link->state & DEV_STALE_CONFIG ) + { +- link->release.expires = RUN_AT( HZ/20 ); ++ link->release.expires = jiffies + ( HZ/20 ); + link->state |= DEV_RELEASE_PENDING; + + add_timer( &link->release ); diff --git a/recipes/wlags-modules/files/wlags_h1.conf b/recipes/wlags-modules/files/wlags_h1.conf new file mode 100644 index 0000000000..e5669e7f01 --- /dev/null +++ b/recipes/wlags-modules/files/wlags_h1.conf @@ -0,0 +1,6 @@ +device "wlags49_h1_cs" + class "network" module "wlags49_h1_cs" + +card "Agere Systems Hermes 1 based Wireless Adapter" + manfid 0x0156, 0x0002 + bind "wlags49_h1_cs" diff --git a/recipes/wlags-modules/files/wlags_h2.conf b/recipes/wlags-modules/files/wlags_h2.conf new file mode 100644 index 0000000000..24e461ceaf --- /dev/null +++ b/recipes/wlags-modules/files/wlags_h2.conf @@ -0,0 +1,6 @@ +device "wlags49_h2_cs" + class "network" module "wlags49_h2_cs" + +card "Agere Systems Hermes 2 based Wireless Adapter" + manfid 0x0156, 0x0003 + bind "wlags49_h2_cs" diff --git a/recipes/wlags-modules/kernel-module-wlags49-h1-cs_718.bb b/recipes/wlags-modules/kernel-module-wlags49-h1-cs_718.bb new file mode 100644 index 0000000000..8a39503073 --- /dev/null +++ b/recipes/wlags-modules/kernel-module-wlags49-h1-cs_718.bb @@ -0,0 +1,7 @@ +COMPILE_HERMES = "1" +DESCRIPTION = "A driver from Agera (a card manufacturer) for wireless LAN cards based on Hermes ${COMPILE_HERMES} cards." +PR = "r1" + +inherit module + +require wlags-modules_${PV}.inc diff --git a/recipes/wlags-modules/kernel-module-wlags49-h2-cs_718.bb b/recipes/wlags-modules/kernel-module-wlags49-h2-cs_718.bb new file mode 100644 index 0000000000..0906d05eb0 --- /dev/null +++ b/recipes/wlags-modules/kernel-module-wlags49-h2-cs_718.bb @@ -0,0 +1,7 @@ +COMPILE_HERMES = "2" +DESCRIPTION = "A driver from Agera (a card manufacturer) for wireless LAN cards based on Hermes ${COMPILE_HERMES} cards." +PR = "r1" + +inherit module + +require wlags-modules_${PV}.inc diff --git a/recipes/wlags-modules/wlags-modules_718.inc b/recipes/wlags-modules/wlags-modules_718.inc new file mode 100644 index 0000000000..c3f49872d6 --- /dev/null +++ b/recipes/wlags-modules/wlags-modules_718.inc @@ -0,0 +1,67 @@ +DESCRIPTION = "A driver from Agera (a card manufacturer) for wireless LAN cards based on Hermes cards." +HOMEPAGE = "http://www.agere.com/mobility/wireless_lan_drivers.html" +SECTION = "kernel/modules" +PRIORITY = "optional" +DEPENDS = "virtual/kernel" +LICENSE = "BSD" +PR = "r1" + +TARFILE = "wl_lkm_${PV}_release.tar.gz" + + +# +# The original wlags tar file is a bit messy: +# * it doesn't contain it's own subdirectory +# * the files are formatted for Windows/DOS (with CR/LF) +# * they assume that the pcmcia-cs source code is there +# * they don't use the kernel makefile approach +# +# Because of this, I create the IPK in a little unusual way: +# * I "flatten" the structure to be able to use the kernel makefile concept +# * the patches I have are for the flattened structure +# * then I do the usual compile/install/package dance +# + +SRC_URI = "ftp://ftp.elmeg.de/artem/ClientCards/11b/linux/${TARFILE} \ + file://Makefile \ + file://includes.patch \ + file://kernel-pcmcia.patch \ + file://bugs.patch \ + file://fixes.patch \ + file://wlags_h${COMPILE_HERMES}.conf" +S = "${WORKDIR}/${PN}" + +do_configure() { + cp ../{hcf,firmware,include/hcf,include/wireless}/*.h . + cp ../{hcf,firmware,wireless}/*.c . + cp ../etc/wlags49.conf . + perl -pi -e 'r:\r::g' *.h *.c + + patch -p1 <${WORKDIR}/includes.patch + patch -p1 <${WORKDIR}/kernel-pcmcia.patch + patch -p1 <${WORKDIR}/bugs.patch + patch -p1 <${WORKDIR}/fixes.patch + cp ${WORKDIR}/Makefile . +} + + +do_compile() { + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS + make -C ${STAGING_KERNEL_DIR} \ + modules \ + SUBDIRS="${S}" \ + CC="${KERNEL_CC}" LD="${KERNEL_LD}" \ + COMPILE_HERMES=${COMPILE_HERMES} +} + + +do_install() { + install -d ${D}${sysconfdir}/pcmcia + install -m 0644 ${WORKDIR}/wlags_h${COMPILE_HERMES}.conf ${D}${sysconfdir}/pcmcia/ + + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/net/wireless + ls + install -m 0644 wlags49_h${COMPILE_HERMES}_cs${KERNEL_OBJECT_SUFFIX} ${D}${base_libdir}/modules/${KERNEL_VERSION}/net/wireless +} + +FILES = "/lib/modules/${KERNEL_VERSION}/net/wireless/*${KERNEL_OBJECT_SUFFIX} /${sysconfdir}" |