From 8e6ea0d1b7a66631f71cfde899b2114b9e1c952a Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Thu, 4 Oct 2012 21:39:22 +0000
Subject: [PATCH] acx-mac80211: adapt interface changes in mac80211

The prototype of conf_tx and tx in struct ieee80211_ops changed some
time ago and was not compatible with the prototype assumes by
acs-mac80211.
At least I do not see any compile warnings about this any more.

SVN-Revision: 33624
---
 package/acx-mac80211/Makefile                 |  2 +-
 ...make-compatible-with-recent-mac80211.patch | 43 +++++++++++++++++++
 2 files changed, 44 insertions(+), 1 deletion(-)
 create mode 100644 package/acx-mac80211/patches/001-make-compatible-with-recent-mac80211.patch

diff --git a/package/acx-mac80211/Makefile b/package/acx-mac80211/Makefile
index 1907c162fa..40b3ce5ed9 100644
--- a/package/acx-mac80211/Makefile
+++ b/package/acx-mac80211/Makefile
@@ -180,7 +180,7 @@ 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)\"" \
+		EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS) -DCONFIG_ACX_MAC80211_VERSION=\"KERNEL_VERSION(3,7,0)\"" \
 		LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211 -I$(LINUX_DIR)/include \
 			-Iarch/$(LINUX_KARCH)/include \
 			-include $(LINUX_AUTOCONF_FILE) \
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 0000000000..34ecf6d4ac
--- /dev/null
+++ b/package/acx-mac80211/patches/001-make-compatible-with-recent-mac80211.patch
@@ -0,0 +1,43 @@
+--- a/acx_func.h
++++ b/acx_func.h
+@@ -335,8 +335,11 @@ void acx_process_rxbuf(acx_device_t *ade
+  */
+ #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
+ 
+ void acx_tx_work(struct work_struct *work);
+--- a/common.c
++++ b/common.c
+@@ -232,8 +232,11 @@ static void acx_rx(acx_device_t *adev, r
+ /* Tx Path */
+ #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
+ 
+ //-void acx_tx_work(struct work_struct *work);
+@@ -5183,7 +5186,12 @@ out:
+  * 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);
+ 
-- 
2.30.2