summaryrefslogtreecommitdiffstats
path: root/package/acx-mac80211
diff options
context:
space:
mode:
Diffstat (limited to 'package/acx-mac80211')
-rw-r--r--package/acx-mac80211/Makefile25
-rw-r--r--package/acx-mac80211/patches/001-make-compatible-with-recent-mac80211.patch30
-rw-r--r--package/acx-mac80211/patches/002-remove-usage-of__dev.patch85
-rw-r--r--package/acx-mac80211/patches/003-add-changes-for-3-10.patch27
-rw-r--r--package/acx-mac80211/patches/004-ratelimit_compile_fix.patch10
-rw-r--r--package/acx-mac80211/patches/100-hw-queue-check-fix.patch8
-rw-r--r--package/acx-mac80211/patches/200-initial-macaddr.patch31
7 files changed, 194 insertions, 22 deletions
diff --git a/package/acx-mac80211/Makefile b/package/acx-mac80211/Makefile
index 1907c162f..30c375eab 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:=v20120607
-PKG_VERSION:=20120607
+PKG_REV:=v2012-09-23-WIP
+PKG_VERSION:=20121004
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
@@ -18,8 +18,13 @@ PKG_SOURCE_URL:=git://acx100.git.sourceforge.net/gitroot/acx100/acx-mac80211
PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_MIRROR_MD5SUM:=8d6bc84239059fd938ff4d989579f622
PKG_BUILD_DEPENDS:=mac80211
+PKG_CONFIG_DEPENDS:= \
+ CONFIG_PACKAGE_MAC80211_DEBUGFS \
+ CONFIG_PACKAGE_MAC80211_MESH \
+
include $(INCLUDE_DIR)/package.mk
define KernelPackage/acx-mac80211
@@ -28,6 +33,7 @@ define KernelPackage/acx-mac80211
DEPENDS:=@(PCI_SUPPORT||TARGET_ar7) @mipsel +kmod-mac80211
FILES:=$(PKG_BUILD_DIR)/acx-mac80211.ko
AUTOLOAD:=$(call AutoLoad,50,acx-mac80211)
+ MAINTAINER:=Florian Fainelli <florian@openwrt.org>
MENU:=1
endef
@@ -171,8 +177,9 @@ PKG_EXTRA_KCONFIG:= \
PKG_EXTRA_CFLAGS:= \
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(PKG_EXTRA_KCONFIG)))) \
$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(PKG_EXTRA_KCONFIG)))) \
-
-LINUX_AUTOCONF_FILE:= generated/autoconf.h
+ $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS) \
+ $(if $(CONFIG_PACKAGE_MAC80211_DEBUGFS), -DCONFIG_CFG80211_DEBUGFS -DCONFIG_MAC80211_DEBUGFS) \
+ $(if $(CONFIG_PACKAGE_MAC80211_MESH), -DCONFIG_MAC80211_MESH) \
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
@@ -180,10 +187,12 @@ define Build/Compile
CROSS_COMPILE="$(TARGET_CROSS)" \
SUBDIRS="$(PKG_BUILD_DIR)" \
$(PKG_EXTRA_KCONFIG) \
- EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS) -DCONFIG_ACX_MAC80211_VERSION=\"KERNEL_VERSION(2,6,37)\"" \
- LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211 -I$(LINUX_DIR)/include \
- -Iarch/$(LINUX_KARCH)/include \
- -include $(LINUX_AUTOCONF_FILE) \
+ EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS) -DCONFIG_ACX_MAC80211_VERSION=\"KERNEL_VERSION(3,10,0)\"" \
+ LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211/uapi -I$(STAGING_DIR)/usr/include/mac80211 \
+ -I$(LINUX_DIR)/include -I$(LINUX_DIR)/include/$(LINUX_UAPI_DIR) \
+ -I$(LINUX_DIR)/include/generated/uapi/ -Iarch/$(LINUX_KARCH)/include \
+ -Iarch/$(LINUX_KARCH)/include/$(LINUX_UAPI_DIR) \
+ -include generated/autoconf.h \
-include linux/compat-2.6.h" \
V="$(V)" \
modules
diff --git a/package/acx-mac80211/patches/001-make-compatible-with-recent-mac80211.patch b/package/acx-mac80211/patches/001-make-compatible-with-recent-mac80211.patch
new file mode 100644
index 000000000..707ba8bb4
--- /dev/null
+++ b/package/acx-mac80211/patches/001-make-compatible-with-recent-mac80211.patch
@@ -0,0 +1,30 @@
+--- a/main.h
++++ b/main.h
+@@ -44,8 +44,11 @@ int acx_e_op_get_tx_stats(struct ieee802
+
+ #if CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(2, 6, 39)
+ int acx_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb);
+-#else
++#elif CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(3, 7, 0)
+ void acx_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb);
++#else
++void acx_op_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control,
++ struct sk_buff *skb);
+ #endif
+
+
+--- a/main.c
++++ b/main.c
+@@ -1024,7 +1024,12 @@ int acx_e_op_get_tx_stats(struct ieee802
+ * acx_compat, and hiding this #if/else. OTOH, inclusion doesnt care
+ * about old kernels
+ */
++#if CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(3, 7, 0)
+ OP_TX_RET_TYPE acx_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
++#else
++void acx_op_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control,
++ struct sk_buff *skb)
++#endif
+ {
+ acx_device_t *adev = ieee2adev(hw);
+
diff --git a/package/acx-mac80211/patches/002-remove-usage-of__dev.patch b/package/acx-mac80211/patches/002-remove-usage-of__dev.patch
new file mode 100644
index 000000000..f16d3b68b
--- /dev/null
+++ b/package/acx-mac80211/patches/002-remove-usage-of__dev.patch
@@ -0,0 +1,85 @@
+--- a/mem.c
++++ b/mem.c
+@@ -2002,7 +2002,7 @@ int acx100mem_ioctl_set_phy_amp_bias(str
+ * configuration
+ * id - ptr to the device id entry that matched this device
+ */
+-static int __devinit acxmem_probe(struct platform_device *pdev)
++static int acxmem_probe(struct platform_device *pdev)
+ {
+ acx_device_t *adev = NULL;
+ const char *chip_name;
+@@ -2268,7 +2268,7 @@ done:
+ * pdev - ptr to PCI device structure containing info about pci
+ * configuration
+ */
+-static int __devexit acxmem_remove(struct platform_device *pdev)
++static int acxmem_remove(struct platform_device *pdev)
+ {
+ struct ieee80211_hw *hw = (struct ieee80211_hw *)
+ platform_get_drvdata(pdev);
+@@ -2470,7 +2470,7 @@ static struct platform_driver acxmem_dri
+ .name = "acx-mem",
+ },
+ .probe = acxmem_probe,
+- .remove = __devexit_p(acxmem_remove),
++ .remove = acxmem_remove,
+
+ #ifdef CONFIG_PM
+ .suspend = acxmem_e_suspend,
+--- a/pci.c
++++ b/pci.c
+@@ -982,7 +982,7 @@ int acx100pci_ioctl_set_phy_amp_bias(str
+ * id - ptr to the device id entry that matched this device
+ */
+ #ifdef CONFIG_PCI
+-static int __devinit acxpci_probe(struct pci_dev *pdev,
++static int acxpci_probe(struct pci_dev *pdev,
+ const struct pci_device_id *id)
+ {
+ acx111_ie_configoption_t co;
+@@ -1346,7 +1346,7 @@ done:
+ *
+ * pdev - ptr to PCI device structure containing info about pci configuration
+ */
+-static void __devexit acxpci_remove(struct pci_dev *pdev)
++static void acxpci_remove(struct pci_dev *pdev)
+ {
+ struct ieee80211_hw *hw
+ = (struct ieee80211_hw *) pci_get_drvdata(pdev);
+@@ -1537,7 +1537,7 @@ static int acxpci_e_resume(struct pci_de
+ */
+
+ #if 0 // use later ?
+-static struct acxpci_device_info acxpci_info_tbl[] __devinitdata = {
++static struct acxpci_device_info acxpci_info_tbl[] = {
+ [0] = {
+ .part_name = "acx111",
+ .helper_image = "tiacx1111r16", // probly wrong !!
+@@ -1564,7 +1564,7 @@ static struct pci_driver acxpci_driver =
+ .name = "acx_pci",
+ .id_table = acxpci_id_tbl,
+ .probe = acxpci_probe,
+- .remove = __devexit_p(acxpci_remove),
++ .remove = acxpci_remove,
+ #ifdef CONFIG_PM
+ .suspend = acxpci_e_suspend,
+ .resume = acxpci_e_resume
+@@ -1662,7 +1662,7 @@ static struct vlynq_device_id acx_vlynq_
+ };
+
+
+-static __devinit int vlynq_probe(struct vlynq_device *vdev,
++static int vlynq_probe(struct vlynq_device *vdev,
+ struct vlynq_device_id *id)
+ {
+ int result = -EIO, i;
+@@ -1971,7 +1971,7 @@ static struct vlynq_driver vlynq_acx = {
+ .name = "acx_vlynq",
+ .id_table = acx_vlynq_id,
+ .probe = vlynq_probe,
+- .remove = __devexit_p(vlynq_remove),
++ .remove = vlynq_remove,
+ };
+ #endif /* CONFIG_VLYNQ */
+
diff --git a/package/acx-mac80211/patches/003-add-changes-for-3-10.patch b/package/acx-mac80211/patches/003-add-changes-for-3-10.patch
new file mode 100644
index 000000000..18d4f9e39
--- /dev/null
+++ b/package/acx-mac80211/patches/003-add-changes-for-3-10.patch
@@ -0,0 +1,27 @@
+--- a/main.c
++++ b/main.c
+@@ -681,6 +681,7 @@ int acx_op_config(struct ieee80211_hw *h
+ if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
+ changed_not_done &= ~IEEE80211_CONF_CHANGE_CHANNEL;
+
++#if CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(3, 10, 0)
+ logf1(L_DEBUG, "IEEE80211_CONF_CHANGE_CHANNEL, "
+ "channel->hw_value=%i\n", conf->channel->hw_value);
+
+@@ -689,6 +690,16 @@ int acx_op_config(struct ieee80211_hw *h
+
+ acx_selectchannel(adev, conf->channel->hw_value,
+ conf->channel->center_freq);
++#else
++ logf1(L_DEBUG, "IEEE80211_CONF_CHANGE_CHANNEL, "
++ "channel->hw_value=%i\n", conf->chandef.chan->hw_value);
++
++ if (conf->chandef.chan->hw_value == adev->channel)
++ goto change_channel_done;
++
++ acx_selectchannel(adev, conf->chandef.chan->hw_value,
++ conf->chandef.chan->center_freq);
++#endif
+ }
+ change_channel_done:
+ if (changed_not_done)
diff --git a/package/acx-mac80211/patches/004-ratelimit_compile_fix.patch b/package/acx-mac80211/patches/004-ratelimit_compile_fix.patch
deleted file mode 100644
index 56110eab0..000000000
--- a/package/acx-mac80211/patches/004-ratelimit_compile_fix.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/common.c
-+++ b/common.c
-@@ -34,6 +34,7 @@
- #include <linux/pci.h>
- #include <linux/nl80211.h>
- #include <linux/ieee80211.h>
-+#include <linux/ratelimit.h>
-
- #include <net/mac80211.h>
-
diff --git a/package/acx-mac80211/patches/100-hw-queue-check-fix.patch b/package/acx-mac80211/patches/100-hw-queue-check-fix.patch
index 62f2998e8..73366f342 100644
--- a/package/acx-mac80211/patches/100-hw-queue-check-fix.patch
+++ b/package/acx-mac80211/patches/100-hw-queue-check-fix.patch
@@ -1,6 +1,6 @@
--- a/mem.c
+++ b/mem.c
-@@ -2026,7 +2026,7 @@ static int __devinit acxmem_probe(struct
+@@ -2036,7 +2036,7 @@ static int acxmem_probe(struct platform_
*/
ieee->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION)
| BIT(NL80211_IFTYPE_ADHOC);
@@ -11,7 +11,7 @@
/* TODO: although in the original driver the maximum value was
--- a/pci.c
+++ b/pci.c
-@@ -1010,7 +1010,7 @@ static int __devinit acxpci_probe(struct
+@@ -1022,7 +1022,7 @@ static int acxpci_probe(struct pci_dev *
BIT(NL80211_IFTYPE_STATION) |
BIT(NL80211_IFTYPE_ADHOC) |
BIT(NL80211_IFTYPE_AP);
@@ -20,7 +20,7 @@
/* OW TODO Check if RTS/CTS threshold can be included here */
/* TODO: although in the original driver the maximum value was
-@@ -1682,7 +1682,7 @@ static __devinit int vlynq_probe(struct
+@@ -1691,7 +1691,7 @@ static int vlynq_probe(struct vlynq_devi
BIT(NL80211_IFTYPE_STATION) |
BIT(NL80211_IFTYPE_ADHOC) |
BIT(NL80211_IFTYPE_AP);
@@ -31,7 +31,7 @@
* TODO OW 20100615 This should into a common init code
--- a/usb.c
+++ b/usb.c
-@@ -1627,7 +1627,7 @@ acxusb_probe(struct usb_interface *intf,
+@@ -1624,7 +1624,7 @@ acxusb_probe(struct usb_interface *intf,
*/
ieee->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION)
| BIT(NL80211_IFTYPE_ADHOC);
diff --git a/package/acx-mac80211/patches/200-initial-macaddr.patch b/package/acx-mac80211/patches/200-initial-macaddr.patch
new file mode 100644
index 000000000..cc82fecbb
--- /dev/null
+++ b/package/acx-mac80211/patches/200-initial-macaddr.patch
@@ -0,0 +1,31 @@
+--- a/cardsetting.c
++++ b/cardsetting.c
+@@ -710,12 +710,27 @@ static int acx1xx_get_station_id(acx_dev
+ u8 stationID[4 + acx_ie_descs[ACX1xx_IE_DOT11_STATION_ID].len];
+ const u8 *paddr;
+ int i, res;
++ const char *prom_addr;
++ char *prom_getenv(const char *name);
+
+
+
+ res = acx_interrogate(adev, &stationID, ACX1xx_IE_DOT11_STATION_ID);
+ paddr = &stationID[4];
+- for (i = 0; i < ETH_ALEN; i++) {
++ prom_addr = NULL;
++#ifdef CONFIG_VLYNQ
++ prom_addr = prom_getenv("macwlan");
++ if (prom_addr == NULL)
++ prom_addr = prom_getenv("mac_ap");
++#endif
++ if (prom_addr)
++ sscanf(prom_addr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", adev->dev_addr,
++ adev->dev_addr + 1,
++ adev->dev_addr + 2,
++ adev->dev_addr + 3,
++ adev->dev_addr + 4,
++ adev->dev_addr + 5);
++ else for (i = 0; i < ETH_ALEN; i++) {
+ /* we copy the MAC address (reversed in the card) to
+ * the netdevice's MAC address, and on ifup it will be
+ * copied into iwadev->dev_addr */