acx-mac80211: make it compile again against new compat-wireless

Update to "latest" HEAD and update it to match latest API changes.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 46305
owl
Jonas Gorski 2015-07-12 11:57:04 +00:00
parent 56597e059d
commit 7c7695ab41
5 changed files with 70 additions and 185 deletions

View File

@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=acx-mac80211
PKG_REV:=v20130127
PKG_VERSION:=20130909
PKG_REV:=b6fc31491020cb01d2cd1acc170cfa03ced7e726
PKG_VERSION:=20140216
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
@ -190,7 +190,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(3,14,0)\"" \
EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS) -DCONFIG_ACX_MAC80211_VERSION=\"KERNEL_VERSION(4,2,0)\"" \
LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi -I$(STAGING_DIR)/usr/include/mac80211-backport \
-I$(STAGING_DIR)/usr/include/mac80211/uapi -I$(STAGING_DIR)/usr/include/mac80211 \
-I$(LINUX_DIR)/include -I$(LINUX_DIR)/include/$(LINUX_UAPI_DIR) \

View File

@ -1,129 +0,0 @@
From 8a0f5890019bf43f4bc95ef0754b062ddfcfa9cd Mon Sep 17 00:00:00 2001
From: Oliver Winker <oliver@oli1170.net>
Date: Sun, 10 Mar 2013 21:04:23 +0100
Subject: [PATCH 1/3] pci, mem: Fix 3.8 build
__devexit and __devinit not used anymore in 3.8
Signed-off-by: Reinhard Karcher <reinhard.karcher@gmx.net>
Signed-off-by: Oliver Winker <oliver@oli1170.net>
---
mem.c | 13 ++++++++++++-
pci.c | 26 +++++++++++++++++++++++++-
2 files changed, 37 insertions(+), 2 deletions(-)
--- a/mem.c
+++ b/mem.c
@@ -2216,7 +2216,11 @@ int acx100mem_ioctl_set_phy_amp_bias(str
* ==================================================
*/
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
static int __devinit acxmem_probe(struct platform_device *pdev)
+#else
+static int acxmem_probe(struct platform_device *pdev)
+#endif
{
acx_device_t *adev = NULL;
const char *chip_name;
@@ -2392,7 +2396,11 @@ static int __devinit acxmem_probe(struct
* pdev - ptr to PCI device structure containing info about pci
* configuration
*/
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
static int __devexit acxmem_remove(struct platform_device *pdev)
+#else
+static int acxmem_remove(struct platform_device *pdev)
+#endif
{
struct ieee80211_hw *hw = (struct ieee80211_hw *)
platform_get_drvdata(pdev);
@@ -2594,8 +2602,11 @@ static struct platform_driver acxmem_dri
.name = "acx-mem",
},
.probe = acxmem_probe,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
.remove = __devexit_p(acxmem_remove),
-
+#else
+ .remove = acxmem_remove,
+#endif
#ifdef CONFIG_PM
.suspend = acxmem_e_suspend,
.resume = acxmem_e_resume
--- a/pci.c
+++ b/pci.c
@@ -1039,7 +1039,11 @@ int acx100pci_ioctl_set_phy_amp_bias(str
* id - ptr to the device id entry that matched this device
*/
#ifdef CONFIG_PCI
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
static int __devinit acxpci_probe(struct pci_dev *pdev,
+#else
+static int acxpci_probe(struct pci_dev *pdev,
+#endif
const struct pci_device_id *id)
{
unsigned long mem_region1 = 0;
@@ -1292,7 +1296,11 @@ static int __devinit acxpci_probe(struct
*
* pdev - ptr to PCI device structure containing info about pci configuration
*/
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
static void __devexit acxpci_remove(struct pci_dev *pdev)
+#else
+static void acxpci_remove(struct pci_dev *pdev)
+#endif
{
struct ieee80211_hw *hw
= (struct ieee80211_hw *) pci_get_drvdata(pdev);
@@ -1505,7 +1513,11 @@ static struct pci_driver acxpci_driver =
.name = "acx_pci",
.id_table = acxpci_id_tbl,
.probe = acxpci_probe,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
.remove = __devexit_p(acxpci_remove),
+#else
+ .remove = acxpci_remove,
+#endif
#ifdef CONFIG_PM
.suspend = acxpci_e_suspend,
.resume = acxpci_e_resume
@@ -1603,8 +1615,12 @@ static struct vlynq_device_id acx_vlynq_
};
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
static __devinit int vlynq_probe(struct vlynq_device *vdev,
- struct vlynq_device_id *id)
+#else
+static int vlynq_probe(struct vlynq_device *vdev,
+#endif
+ struct vlynq_device_id *id)
{
int result = -EIO, i;
u32 addr;
@@ -1785,7 +1801,11 @@ static __devinit int vlynq_probe(struct
return result;
}
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
static __devexit void vlynq_remove(struct vlynq_device *vdev)
+#else
+static void vlynq_remove(struct vlynq_device *vdev)
+#endif
{
struct ieee80211_hw *hw = vlynq_get_drvdata(vdev);
acx_device_t *adev = hw2adev(hw);
@@ -1851,7 +1871,11 @@ static struct vlynq_driver acxvlynq_driv
.name = "acx_vlynq",
.id_table = acx_vlynq_id,
.probe = vlynq_probe,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0)
.remove = __devexit_p(vlynq_remove),
+#else
+ .remove = vlynq_remove,
+#endif
};
#endif /* CONFIG_VLYNQ */

View File

@ -1,31 +0,0 @@
From 1daf4bfdb072b08f3b4e412bbfa9645f88dc0a01 Mon Sep 17 00:00:00 2001
From: Oliver Winker <oliver@oli1170.net>
Date: Tue, 3 Sep 2013 20:36:36 +0200
Subject: [PATCH 3/3] Fix 3.10 build
Signed-off-by: Reinhard Karcher <reinhard.karcher@gmx.net>
Signed-off-by: Oliver Winker <oliver@oli1170.net>
---
main.c | 7 +++++++
1 file changed, 7 insertions(+)
--- a/main.c
+++ b/main.c
@@ -682,10 +682,17 @@ int acx_op_config(struct ieee80211_hw *h
if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
logf1(L_DEBUG, "IEEE80211_CONF_CHANGE_CHANNEL,"
+#if CONFIG_ACX_MAC80211_VERSION >= KERNEL_VERSION(3, 10, 0)
+ "channel->hw_value=%i\n", conf->chandef.chan->hw_value);
+
+ acx_set_channel(adev, conf->chandef.chan->hw_value,
+ conf->chandef.chan->center_freq);
+#else
"channel->hw_value=%i\n", conf->channel->hw_value);
acx_set_channel(adev, conf->channel->hw_value,
conf->channel->center_freq);
+#endif
changed_not_done &= ~IEEE80211_CONF_CHANGE_CHANNEL;
}

View File

@ -1,22 +0,0 @@
From d17fcac710e629463591f6bd09d76b66ec591583 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Wed, 5 Feb 2014 20:57:07 +0100
Subject: [PATCH] Fix 3.14 build
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
main.c | 2 ++
1 file changed, 2 insertions(+)
--- a/main.c
+++ b/main.c
@@ -500,7 +500,9 @@ int acx_init_ieee80211(acx_device_t *ade
hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS;
hw->queues = 1;
hw->wiphy->max_scan_ssids = 1;
+#if CONFIG_ACX_MAC80211_VERSION < KERNEL_VERSION(3, 14, 0)
hw->channel_change_time = 10000;
+#endif
/* OW TODO Check if RTS/CTS threshold can be included here */

View File

@ -0,0 +1,67 @@
diff --git a/main.c b/main.c
index bfec856..3c482d9 100644
--- a/main.c
+++ b/main.c
@@ -497,7 +497,7 @@ int acx_free_mechanics(acx_device_t *adev)
int acx_init_ieee80211(acx_device_t *adev, struct ieee80211_hw *hw)
{
- hw->flags &= ~IEEE80211_HW_RX_INCLUDES_FCS;
+ __clear_bit(IEEE80211_HW_RX_INCLUDES_FCS, hw->flags);
hw->queues = 1;
hw->wiphy->max_scan_ssids = 1;
@@ -525,7 +525,7 @@ int acx_init_ieee80211(acx_device_t *adev, struct ieee80211_hw *hw)
/* We base signal quality on winlevel approach of previous driver
* TODO OW 20100615 This should into a common init code
*/
- hw->flags |= IEEE80211_HW_SIGNAL_UNSPEC;
+ __set_bit(IEEE80211_HW_SIGNAL_UNSPEC, hw->flags);
hw->max_signal = 100;
if (IS_ACX100(adev)) {
@@ -945,8 +945,8 @@ void acx_op_configure_filter(struct ieee80211_hw *hw,
changed_flags, *total_flags);
/* OWI TODO: Set also FIF_PROBE_REQ ? */
- *total_flags &= (FIF_PROMISC_IN_BSS | FIF_ALLMULTI | FIF_FCSFAIL
- | FIF_CONTROL | FIF_OTHER_BSS);
+ *total_flags &= (FIF_ALLMULTI | FIF_FCSFAIL | FIF_CONTROL
+ | FIF_OTHER_BSS);
logf1(L_DEBUG, "2: *total_flags=0x%08x\n", *total_flags);
@@ -1045,9 +1045,10 @@ void acx_op_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control,
}
int acx_op_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- struct cfg80211_scan_request *req)
+ struct ieee80211_scan_request *hw_req)
{
acx_device_t *adev = hw2adev(hw);
+ struct cfg80211_scan_request *req = &hw_req->req;
struct sk_buff *skb;
size_t ssid_len = 0;
u8 *ssid = NULL;
@@ -1082,7 +1083,7 @@ int acx_op_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
goto out;
}
#else
- skb = ieee80211_probereq_get(adev->hw, adev->vif, ssid, ssid_len,
+ skb = ieee80211_probereq_get(adev->hw, vif->addr, ssid, ssid_len,
req->ie_len);
if (!skb) {
ret = -ENOMEM;
diff --git a/main.h b/main.h
index 293f5c8..84ecb9a 100644
--- a/main.h
+++ b/main.h
@@ -62,7 +62,7 @@ void acx_op_tx(struct ieee80211_hw *hw, struct ieee80211_tx_control *control,
#endif
int acx_op_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
- struct cfg80211_scan_request *req);
+ struct ieee80211_scan_request *req);
int acx_recover_hw(acx_device_t *adev);