diff options
7 files changed, 260 insertions, 218 deletions
diff --git a/package/acx-mac80211/Makefile b/package/acx-mac80211/Makefile index 68369bc96..88ca0bcd8 100644 --- a/package/acx-mac80211/Makefile +++ b/package/acx-mac80211/Makefile @@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=acx-mac80211 -PKG_REV:=e7a55711 -PKG_VERSION:=20100302 +PKG_REV:=160e4af +PKG_VERSION:=20100422 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 diff --git a/package/acx-mac80211/patches/001-if_init_conf_removal.patch b/package/acx-mac80211/patches/001-if_init_conf_removal.patch deleted file mode 100644 index 29a5a6212..000000000 --- a/package/acx-mac80211/patches/001-if_init_conf_removal.patch +++ /dev/null @@ -1,91 +0,0 @@ ---- a/acx_func.h -+++ b/acx_func.h -@@ -704,9 +704,9 @@ int acx_setup_modes(acx_device_t *adev); - void acx_free_modes(acx_device_t *adev); - int acx_i_op_tx(struct ieee80211_hw *ieee, struct sk_buff *skb); - int acx_e_op_add_interface(struct ieee80211_hw* ieee, -- struct ieee80211_if_init_conf *conf); -+ struct ieee80211_vif *vif); - void acx_e_op_remove_interface(struct ieee80211_hw* ieee, -- struct ieee80211_if_init_conf *conf); -+ struct ieee80211_vif *vif); - int acx_net_reset(struct ieee80211_hw *ieee); - int acx_e_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, - struct ieee80211_vif *vif, struct ieee80211_sta *sta, ---- a/common.c -+++ b/common.c -@@ -4402,7 +4402,7 @@ static void acx_s_select_opmode(acx_devi - } - - int acx_e_op_add_interface(struct ieee80211_hw *ieee, -- struct ieee80211_if_init_conf *conf) -+ struct ieee80211_vif *vif) - { - acx_device_t *adev = ieee2adev(ieee); - unsigned long flags; -@@ -4414,14 +4414,14 @@ int acx_e_op_add_interface(struct ieee80 - acx_sem_lock(adev); - acx_lock(adev, flags); - -- if (conf->type == NL80211_IFTYPE_MONITOR) { -+ if (vif->type == NL80211_IFTYPE_MONITOR) { - adev->interface.monitor++; - } else { - if (adev->interface.operating) - goto out_unlock; - adev->interface.operating = 1; -- adev->interface.mac_addr = conf->mac_addr; -- adev->interface.type = conf->type; -+ adev->interface.mac_addr = vif->addr; -+ adev->interface.type = vif->type; - } - // adev->mode = conf->type; - -@@ -4436,8 +4436,8 @@ int acx_e_op_add_interface(struct ieee80 - - printk(KERN_INFO "acx: Virtual interface added " - "(type: 0x%08X, MAC: %s)\n", -- conf->type, -- acx_print_mac(mac, conf->mac_addr)); -+ vif->type, -+ acx_print_mac(mac, vif->addr)); - - out_unlock: - acx_unlock(adev, flags); -@@ -4448,7 +4448,7 @@ int acx_e_op_add_interface(struct ieee80 - } - - void acx_e_op_remove_interface(struct ieee80211_hw *hw, -- struct ieee80211_if_init_conf *conf) -+ struct ieee80211_vif *vif) - { - acx_device_t *adev = ieee2adev(hw); - -@@ -4457,23 +4457,23 @@ void acx_e_op_remove_interface(struct ie - FN_ENTER; - acx_sem_lock(adev); - -- if (conf->type == NL80211_IFTYPE_MONITOR) { -+ if (vif->type == NL80211_IFTYPE_MONITOR) { - adev->interface.monitor--; - // assert(bcm->interface.monitor >= 0); - } else { - adev->interface.operating = 0; - } - -- log(L_DEBUG, "acx: %s: interface.operating=%d, conf->type=%d\n", -+ log(L_DEBUG, "acx: %s: interface.operating=%d, vif->type=%d\n", - __func__, -- adev->interface.operating, conf->type); -+ adev->interface.operating, vif->type); - - if (adev->initialized) - acx_s_select_opmode(adev); - - log(L_ANY, "acx: Virtual interface removed: " - "type=%d, MAC=%s\n", -- conf->type, acx_print_mac(mac, conf->mac_addr)); -+ vif->type, acx_print_mac(mac, vif->addr)); - - acx_sem_unlock(adev); - diff --git a/package/acx-mac80211/patches/002-tx_queue_stats_removal.patch b/package/acx-mac80211/patches/002-tx_queue_stats_removal.patch deleted file mode 100644 index ccf1ad39d..000000000 --- a/package/acx-mac80211/patches/002-tx_queue_stats_removal.patch +++ /dev/null @@ -1,67 +0,0 @@ ---- a/acx_func.h -+++ b/acx_func.h -@@ -714,7 +714,6 @@ int acx_e_op_set_key(struct ieee80211_hw - int acx_e_op_config(struct ieee80211_hw *hw, u32 changed); - void acx_e_op_bss_info_changed(struct ieee80211_hw *hw, - struct ieee80211_vif *vif, struct ieee80211_bss_conf *info, u32 changed); --int acx_e_op_get_tx_stats(struct ieee80211_hw* ieee, struct ieee80211_tx_queue_stats *stats); - int acx_e_conf_tx(struct ieee80211_hw* ieee, u16 queue, - const struct ieee80211_tx_queue_params *params); - //int acx_passive_scan(struct net_device *net_dev, int state, struct ieee80211_scan_conf *conf); ---- a/common.c -+++ b/common.c -@@ -4662,24 +4662,6 @@ extern void acx_e_op_bss_info_changed(st - return; - } - --int acx_e_op_get_tx_stats(struct ieee80211_hw *hw, -- struct ieee80211_tx_queue_stats *stats) --{ -- acx_device_t *adev = ieee2adev(hw); -- int err = -ENODEV; -- -- FN_ENTER; -- acx_sem_lock(adev); -- -- stats->len = 0; -- stats->limit = TX_CNT; -- stats->count = 0; -- -- acx_sem_unlock(adev); -- FN_EXIT0; -- return err; --} -- - int acx_e_conf_tx(struct ieee80211_hw *hw, - u16 queue, const struct ieee80211_tx_queue_params *params) - { ---- a/mem.c -+++ b/mem.c -@@ -2321,7 +2321,6 @@ static const struct ieee80211_ops acxmem - .bss_info_changed = acx_e_op_bss_info_changed, - .set_key = acx_e_op_set_key, - .get_stats = acx_e_op_get_stats, -- .get_tx_stats = acx_e_op_get_tx_stats, - }; - - ---- a/pci.c -+++ b/pci.c -@@ -1482,7 +1482,6 @@ static const struct ieee80211_ops acxpci - .bss_info_changed = acx_e_op_bss_info_changed, - .set_key = acx_e_op_set_key, - .get_stats = acx_e_op_get_stats, -- .get_tx_stats = acx_e_op_get_tx_stats, - }; - - ---- a/usb.c -+++ b/usb.c -@@ -757,7 +757,6 @@ static const struct ieee80211_ops acxusb - .bss_info_changed = acx_e_op_bss_info_changed, - .set_key = acx_e_op_set_key, - .get_stats = acx_e_op_get_stats, -- .get_tx_stats = acx_e_op_get_tx_stats, - }; - - /*********************************************************************** diff --git a/package/acx-mac80211/patches/004-vlynq_fixes.patch b/package/acx-mac80211/patches/004-vlynq_fixes.patch deleted file mode 100644 index 3e1a8bbc6..000000000 --- a/package/acx-mac80211/patches/004-vlynq_fixes.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- a/pci.c -+++ b/pci.c -@@ -4309,7 +4309,7 @@ static __devinit int vlynq_probe(struct - addr = (u32)ioremap(vdev->mem_start, 0x1000); - if (!addr) { - printk(KERN_ERR "acx: %s: failed to remap io memory\n", -- vdev->dev.bus_id); -+ dev_name(&vdev->dev)); - result = -ENXIO; - goto fail; - } -@@ -4323,7 +4323,7 @@ static __devinit int vlynq_probe(struct - ieee = ieee80211_alloc_hw(sizeof(struct acx_device), &acxpci_hw_ops); - if (!ieee) { - printk("acx: could not allocate ieee80211 structure %s\n", -- vdev->dev.bus_id); -+ dev_name(&vdev->dev)); - goto fail_alloc_netdev; - } - ieee->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS; -@@ -4365,7 +4365,7 @@ static __devinit int vlynq_probe(struct - - printk("acx: found %s-based wireless network card at %s, irq:%d, " - "phymem:0x%x, mem:0x%p\n", -- match->name, vdev->dev.bus_id, adev->irq, -+ match->name, dev_name(&vdev->dev), adev->irq, - vdev->mem_start, adev->iobase); - log(L_ANY, "acx: the initial debug setting is 0x%04X\n", acx_debug); - -@@ -4416,7 +4416,7 @@ static __devinit int vlynq_probe(struct - * firmware operations happening in parallel or uninitialized data */ - - -- acx_proc_register_entries(ieee); -+ acx_proc_register_entries(ieee, 0); - - /* Now we have our device, so make sure the kernel doesn't try - * to send packets even though we're not associated to a network yet */ -@@ -4536,7 +4536,7 @@ static void vlynq_remove(struct vlynq_de - CLEAR_BIT(adev->dev_state_mask, ACX_STATE_IFACE_UP); - } - -- acx_proc_unregister_entries(adev->ieee); -+ acx_proc_unregister_entries(adev->ieee, 0); - - /* finally, clean up PCI bus state */ - acxpci_s_delete_dma_regions(adev); diff --git a/package/acx-mac80211/patches/004-wireless-compat.patch b/package/acx-mac80211/patches/004-wireless-compat.patch new file mode 100644 index 000000000..33ecc4cf9 --- /dev/null +++ b/package/acx-mac80211/patches/004-wireless-compat.patch @@ -0,0 +1,221 @@ +Index: acx-mac80211-20100422/acx_func.h +=================================================================== +--- acx-mac80211-20100422.orig/acx_func.h 2010-05-02 03:07:09.000000000 +0200 ++++ acx-mac80211-20100422/acx_func.h 2010-05-02 22:03:28.309677381 +0200 +@@ -214,10 +214,6 @@ + printk(args); \ + } while (0) + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33) +-#define printk_ratelimited(args...) printk(args) +-#endif +- + // Log with prefix "acx: __func__ + #define logf0(chan, msg) \ + log(chan, "acx: %s: " msg, __func__); +@@ -341,17 +337,10 @@ + // BOM Mac80211 Ops (Common) + // ----- + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +-int acx_e_op_add_interface(struct ieee80211_hw* ieee, +- struct ieee80211_if_init_conf *conf); +-void acx_e_op_remove_interface(struct ieee80211_hw* ieee, +- struct ieee80211_if_init_conf *conf); +-#else + int acx_e_op_add_interface(struct ieee80211_hw* ieee, + struct ieee80211_vif *vif); + void acx_e_op_remove_interface(struct ieee80211_hw* ieee, + struct ieee80211_vif *vif); +-#endif + + int acx_e_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, + struct ieee80211_vif *vif, struct ieee80211_sta *sta, +@@ -366,10 +355,6 @@ + const struct ieee80211_tx_queue_params *params); + int acx_e_op_get_stats(struct ieee80211_hw *hw, struct ieee80211_low_level_stats *stats); + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +-int acx_e_op_get_tx_stats(struct ieee80211_hw* ieee, struct ieee80211_tx_queue_stats *stats); +-#endif +- + // BOM Helpers (Common) + // ----- + void acx_s_mwait(int ms); +Index: acx-mac80211-20100422/common.c +=================================================================== +--- acx-mac80211-20100422.orig/common.c 2010-05-02 03:07:09.000000000 +0200 ++++ acx-mac80211-20100422/common.c 2010-05-02 22:04:49.597801719 +0200 +@@ -4900,13 +4900,8 @@ + * ================================================== + */ + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +-int acx_e_op_add_interface(struct ieee80211_hw *ieee, +- struct ieee80211_if_init_conf *conf) +-#else + int acx_e_op_add_interface(struct ieee80211_hw *ieee, + struct ieee80211_vif *vif) +-#endif + { + acx_device_t *adev = ieee2adev(ieee); + unsigned long flags; +@@ -4918,23 +4913,14 @@ + acx_sem_lock(adev); + acx_lock(adev, flags); + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +- if (conf->type == NL80211_IFTYPE_MONITOR) { +-#else + if (vif->type == NL80211_IFTYPE_MONITOR) { +-#endif + adev->interface.monitor++; + } else { + if (adev->interface.operating) + goto out_unlock; + adev->interface.operating = 1; +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +- adev->interface.mac_addr = conf->mac_addr; +- adev->interface.type = conf->type; +-#else + adev->interface.mac_addr = vif->addr; + adev->interface.type = vif->type; +-#endif + } + // adev->mode = conf->type; + +@@ -4949,13 +4935,8 @@ + + printk(KERN_INFO "acx: Virtual interface added " + "(type: 0x%08X, MAC: %s)\n", +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +- conf->type, +- acx_print_mac(mac, conf->mac_addr) +-#else + vif->type, + acx_print_mac(mac, vif->addr) +-#endif + ); + + out_unlock: +@@ -4966,13 +4947,8 @@ + return err; + } + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +-void acx_e_op_remove_interface(struct ieee80211_hw *hw, +- struct ieee80211_if_init_conf *conf) +-#else + void acx_e_op_remove_interface(struct ieee80211_hw *hw, + struct ieee80211_vif *vif) +-#endif + { + acx_device_t *adev = ieee2adev(hw); + +@@ -4981,37 +4957,23 @@ + FN_ENTER; + acx_sem_lock(adev); + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +- if (conf->type == NL80211_IFTYPE_MONITOR) { +-#else + if (vif->type == NL80211_IFTYPE_MONITOR) { +-#endif + adev->interface.monitor--; + // assert(bcm->interface.monitor >= 0); + } else { + adev->interface.operating = 0; + } + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +- log(L_DEBUG, "acx: %s: interface.operating=%d, conf->type=%d\n", +- __func__, +- adev->interface.operating, conf->type); +-#else + log(L_DEBUG, "acx: %s: interface.operating=%d, vif->type=%d\n", + __func__, + adev->interface.operating, vif->type); +-#endif + + if (adev->initialized) + acx_s_select_opmode(adev); + + log(L_ANY, "acx: Virtual interface removed: " + "type=%d, MAC=%s\n", +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +- conf->type, acx_print_mac(mac, conf->mac_addr) +-#else + vif->type, acx_print_mac(mac, vif->addr) +-#endif + ); + + acx_sem_unlock(adev); +@@ -5351,26 +5313,6 @@ + return 0; + } + +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +-int acx_e_op_get_tx_stats(struct ieee80211_hw *hw, +- struct ieee80211_tx_queue_stats *stats) +-{ +- acx_device_t *adev = ieee2adev(hw); +- int err = -ENODEV; +- +- FN_ENTER; +- acx_sem_lock(adev); +- +- stats->len = 0; +- stats->limit = TX_CNT; +- stats->count = 0; +- +- acx_sem_unlock(adev); +- FN_EXIT0; +- return err; +-} +-#endif +- + /* + * BOM Helpers + * ================================================== +Index: acx-mac80211-20100422/mem.c +=================================================================== +--- acx-mac80211-20100422.orig/mem.c 2010-05-02 03:07:09.000000000 +0200 ++++ acx-mac80211-20100422/mem.c 2010-05-02 22:05:26.007552341 +0200 +@@ -4654,9 +4654,6 @@ + .bss_info_changed = acx_e_op_bss_info_changed, + .set_key = acx_e_op_set_key, + .get_stats = acx_e_op_get_stats, +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +- .get_tx_stats = acx_e_op_get_tx_stats, +-#endif + }; + + /* +Index: acx-mac80211-20100422/pci.c +=================================================================== +--- acx-mac80211-20100422.orig/pci.c 2010-05-02 03:07:09.000000000 +0200 ++++ acx-mac80211-20100422/pci.c 2010-05-02 22:06:03.758564021 +0200 +@@ -3149,9 +3149,6 @@ + .bss_info_changed = acx_e_op_bss_info_changed, + .set_key = acx_e_op_set_key, + .get_stats = acx_e_op_get_stats, +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +- .get_tx_stats = acx_e_op_get_tx_stats, +-#endif + }; + + +Index: acx-mac80211-20100422/usb.c +=================================================================== +--- acx-mac80211-20100422.orig/usb.c 2010-05-02 03:07:09.000000000 +0200 ++++ acx-mac80211-20100422/usb.c 2010-05-02 22:06:22.874733862 +0200 +@@ -1444,9 +1444,6 @@ + .bss_info_changed = acx_e_op_bss_info_changed, + .set_key = acx_e_op_set_key, + .get_stats = acx_e_op_get_stats, +-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34) +- .get_tx_stats = acx_e_op_get_tx_stats, +-#endif + }; + + /* diff --git a/package/acx-mac80211/patches/005-do_not_override_pci.patch b/package/acx-mac80211/patches/005-do_not_override_pci.patch deleted file mode 100644 index e21549bf3..000000000 --- a/package/acx-mac80211/patches/005-do_not_override_pci.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/pci.c -+++ b/pci.c -@@ -17,8 +17,6 @@ - */ - #define ACX_MAC80211_PCI 1 - --#define CONFIG_PCI 1 -- - #include <linux/version.h> - - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33) diff --git a/package/acx-mac80211/patches/100-vlynq-fixes.patch b/package/acx-mac80211/patches/100-vlynq-fixes.patch new file mode 100644 index 000000000..62e0582af --- /dev/null +++ b/package/acx-mac80211/patches/100-vlynq-fixes.patch @@ -0,0 +1,37 @@ +Index: acx-mac80211-20100422/pci.c +=================================================================== +--- acx-mac80211-20100422.orig/pci.c 2010-05-02 22:06:03.000000000 +0200 ++++ acx-mac80211-20100422/pci.c 2010-05-02 22:10:40.963886264 +0200 +@@ -170,7 +170,7 @@ + #endif + + #ifdef CONFIG_VLYNQ +-int vlynq_probe(struct vlynq_device *vdev, struct vlynq_device_id *id); ++static int vlynq_probe(struct vlynq_device *vdev, struct vlynq_device_id *id); + static void vlynq_remove(struct vlynq_device *vdev); + #endif + +@@ -4433,6 +4433,8 @@ + goto fail_alloc_netdev; + } + ieee->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS; ++ ieee->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) ++ | BIT(NL80211_IFTYPE_ADHOC); + ieee->queues = 1; + + adev = ieee2adev(ieee); +Index: acx-mac80211-20100422/acx_func.h +=================================================================== +--- acx-mac80211-20100422.orig/acx_func.h 2010-05-02 03:07:09.000000000 +0200 ++++ acx-mac80211-20100422/acx_func.h 2010-05-02 22:15:55.476748737 +0200 +@@ -562,10 +562,6 @@ + + // Driver, Module + +-#ifdef CONFIG_VLYNQ +-int vlynq_probe(struct vlynq_device *vdev, struct vlynq_device_id *id); +-#endif +- + int __init acxpci_e_init_module(void); + void __exit acxpci_e_cleanup_module(void); + |