[ar7] update acx-mac80211 to a newer snapshot and fix its compilation wrt new includes path
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20015 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
7b851328e6
commit
1e0ccaa871
|
@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
|
||||||
include $(INCLUDE_DIR)/kernel.mk
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=acx-mac80211
|
PKG_NAME:=acx-mac80211
|
||||||
PKG_REV:=11edba2
|
PKG_REV:=e7a55711
|
||||||
PKG_VERSION:=20080805
|
PKG_VERSION:=20100302
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
PKG_SOURCE_URL:=git://gitorious.org/acx-mac80211/mainline.git
|
PKG_SOURCE_URL:=git://gitorious.org/~oli1417/acx-mac80211/oli1417-clone.git
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
||||||
PKG_SOURCE_VERSION:=$(PKG_REV)
|
PKG_SOURCE_VERSION:=$(PKG_REV)
|
||||||
|
@ -68,6 +68,7 @@ define Build/Compile
|
||||||
$(PKG_EXTRA_KCONFIG) \
|
$(PKG_EXTRA_KCONFIG) \
|
||||||
EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS)" \
|
EXTRA_CFLAGS="$(PKG_EXTRA_CFLAGS)" \
|
||||||
LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211 -I$(LINUX_DIR)/include \
|
LINUXINCLUDE="-I$(STAGING_DIR)/usr/include/mac80211 -I$(LINUX_DIR)/include \
|
||||||
|
-Iarch/$(LINUX_KARCH)/include \
|
||||||
-include linux/autoconf.h" \
|
-include linux/autoconf.h" \
|
||||||
V="$(V)" \
|
V="$(V)" \
|
||||||
modules
|
modules
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- a/Makefile
|
|
||||||
+++ b/Makefile
|
|
||||||
@@ -28,7 +28,7 @@ ifneq ($(KERNELRELEASE),)
|
|
||||||
obj-$(CONFIG_ACX_MAC80211) += acx-mac80211.o
|
|
||||||
acx-mac80211-obj-$(CONFIG_ACX_MAC80211_PCI) += pci.o
|
|
||||||
acx-mac80211-obj-$(CONFIG_ACX_MAC80211_USB) += usb.o
|
|
||||||
- acx-mac80211-objs := common.o $(acx-mac80211-obj-y)
|
|
||||||
+ acx-mac80211-objs := common.o $(acx-mac80211-obj-m)
|
|
||||||
else
|
|
||||||
# Otherwise we were called directly from the command line: the the kernel build
|
|
||||||
# system must be explicitly invoked.
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
Index: acx-mac80211-20100302/acx_func.h
|
||||||
|
===================================================================
|
||||||
|
--- acx-mac80211-20100302.orig/acx_func.h 2010-03-06 12:57:25.000000000 +0100
|
||||||
|
+++ acx-mac80211-20100302/acx_func.h 2010-03-06 12:58:10.000000000 +0100
|
||||||
|
@@ -704,9 +704,9 @@
|
||||||
|
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,
|
||||||
|
Index: acx-mac80211-20100302/common.c
|
||||||
|
===================================================================
|
||||||
|
--- acx-mac80211-20100302.orig/common.c 2010-03-06 12:57:31.000000000 +0100
|
||||||
|
+++ acx-mac80211-20100302/common.c 2010-03-06 12:59:51.000000000 +0100
|
||||||
|
@@ -4402,7 +4402,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
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 @@
|
||||||
|
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 @@
|
||||||
|
|
||||||
|
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 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
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 @@
|
||||||
|
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);
|
||||||
|
|
|
@ -1,105 +0,0 @@
|
||||||
--- a/common.c
|
|
||||||
+++ b/common.c
|
|
||||||
@@ -1452,60 +1452,66 @@ void acx_free_modes(acx_device_t * adev)
|
|
||||||
// adev->modes = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
-/*
|
|
||||||
-#define RATETAB_ENT(_rate, _rateid, _flags) \
|
|
||||||
- { \
|
|
||||||
- .rate = (_rate), \
|
|
||||||
- .val = (_rateid), \
|
|
||||||
- .val2 = (_rateid), \
|
|
||||||
- .flags = (_flags), \
|
|
||||||
- }
|
|
||||||
-*/
|
|
||||||
-
|
|
||||||
static struct ieee80211_rate acx_rates[] = {
|
|
||||||
{ .bitrate = 10, .hw_value = 0, .flags = IEEE80211_RATE_SHORT_PREAMBLE },
|
|
||||||
{ .bitrate = 20, .hw_value = 1, .flags = IEEE80211_RATE_SHORT_PREAMBLE },
|
|
||||||
{ .bitrate = 55, .hw_value = 2, .flags = IEEE80211_RATE_SHORT_PREAMBLE },
|
|
||||||
{ .bitrate = 110, .hw_value = 3, .flags = IEEE80211_RATE_SHORT_PREAMBLE },
|
|
||||||
- { .bitrate = 60, .hw_value = 4, },
|
|
||||||
- { .bitrate = 90, .hw_value = 5, },
|
|
||||||
- { .bitrate = 120, .hw_value = 6, },
|
|
||||||
- { .bitrate = 180, .hw_value = 7, },
|
|
||||||
- { .bitrate = 240, .hw_value = 8, },
|
|
||||||
- { .bitrate = 360, .hw_value = 9, },
|
|
||||||
- { .bitrate = 480, .hw_value = 10, },
|
|
||||||
- { .bitrate = 540, .hw_value = 11, },
|
|
||||||
+ { .bitrate = 60, .hw_value = 4, .flags = 0 },
|
|
||||||
+ { .bitrate = 90, .hw_value = 5, .flags = 0 },
|
|
||||||
+ { .bitrate = 120, .hw_value = 6, .flags = 0 },
|
|
||||||
+ { .bitrate = 180, .hw_value = 7, .flags = 0 },
|
|
||||||
+ { .bitrate = 240, .hw_value = 8, .flags = 0 },
|
|
||||||
+ { .bitrate = 360, .hw_value = 9, .flags = 0 },
|
|
||||||
+ { .bitrate = 480, .hw_value = 10, .flags = 0 },
|
|
||||||
+ { .bitrate = 540, .hw_value = 11, .flags = 0 },
|
|
||||||
};
|
|
||||||
|
|
||||||
+#define CHAN4G(_channel, _freq, _flags) { \
|
|
||||||
+ .band = IEEE80211_BAND_2GHZ, \
|
|
||||||
+ .center_freq = (_freq), \
|
|
||||||
+ .hw_value = (_channel), \
|
|
||||||
+ .flags = (_flags), \
|
|
||||||
+ .max_antenna_gain = 0, \
|
|
||||||
+ .max_power = 30, \
|
|
||||||
+}
|
|
||||||
static struct ieee80211_channel channels[] = {
|
|
||||||
- { .center_freq = 2412, .hw_value = 1, },
|
|
||||||
- { .center_freq = 2417, .hw_value = 2, },
|
|
||||||
- { .center_freq = 2422, .hw_value = 3, },
|
|
||||||
- { .center_freq = 2427, .hw_value = 4, },
|
|
||||||
- { .center_freq = 2432, .hw_value = 5, },
|
|
||||||
- { .center_freq = 2437, .hw_value = 6, },
|
|
||||||
- { .center_freq = 2442, .hw_value = 7, },
|
|
||||||
- { .center_freq = 2447, .hw_value = 8, },
|
|
||||||
- { .center_freq = 2452, .hw_value = 9, },
|
|
||||||
- { .center_freq = 2457, .hw_value = 10, },
|
|
||||||
- { .center_freq = 2462, .hw_value = 11, },
|
|
||||||
- { .center_freq = 2467, .hw_value = 12, },
|
|
||||||
- { .center_freq = 2472, .hw_value = 13, },
|
|
||||||
- { .center_freq = 2484, .hw_value = 14, },
|
|
||||||
+ CHAN4G(1, 2412, 0),
|
|
||||||
+ CHAN4G(2, 2417, 0),
|
|
||||||
+ CHAN4G(3, 2422, 0),
|
|
||||||
+ CHAN4G(4, 2427, 0),
|
|
||||||
+ CHAN4G(5, 2432, 0),
|
|
||||||
+ CHAN4G(6, 2437, 0),
|
|
||||||
+ CHAN4G(7, 2442, 0),
|
|
||||||
+ CHAN4G(8, 2447, 0),
|
|
||||||
+ CHAN4G(9, 2452, 0),
|
|
||||||
+ CHAN4G(10, 2457, 0),
|
|
||||||
+ CHAN4G(11, 2462, 0),
|
|
||||||
+ CHAN4G(12, 2467, 0),
|
|
||||||
+ CHAN4G(13, 2472, 0),
|
|
||||||
+ CHAN4G(14, 2484, 0),
|
|
||||||
};
|
|
||||||
+#undef CHAN4G
|
|
||||||
+
|
|
||||||
+#define acx_b_ratetable (acx_rates + 0)
|
|
||||||
+#define acx_b_ratetable_size 4
|
|
||||||
+#define acx_g_ratetable (acx_rates + 0)
|
|
||||||
+#define acx_g_ratetable_size 12
|
|
||||||
|
|
||||||
static struct ieee80211_supported_band g_band_2GHz = {
|
|
||||||
+ .band = IEEE80211_BAND_2GHZ,
|
|
||||||
.channels = channels,
|
|
||||||
.n_channels = ARRAY_SIZE(channels),
|
|
||||||
- .bitrates = acx_rates,
|
|
||||||
- .n_bitrates = 12,
|
|
||||||
+ .bitrates = acx_b_ratetable,
|
|
||||||
+ .n_bitrates = acx_g_ratetable_size,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct ieee80211_supported_band b_band_2GHz = {
|
|
||||||
+ .band = IEEE80211_BAND_2GHZ,
|
|
||||||
.channels = channels,
|
|
||||||
.n_channels = ARRAY_SIZE(channels),
|
|
||||||
- .bitrates = acx_rates,
|
|
||||||
- .n_bitrates = 4,
|
|
||||||
+ .bitrates = acx_g_ratetable,
|
|
||||||
+ .n_bitrates = acx_b_ratetable_size,
|
|
||||||
};
|
|
||||||
|
|
||||||
int acx_setup_modes(acx_device_t * adev)
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
Index: acx-mac80211-20100302/acx_func.h
|
||||||
|
===================================================================
|
||||||
|
--- acx-mac80211-20100302.orig/acx_func.h 2010-03-06 13:01:36.000000000 +0100
|
||||||
|
+++ acx-mac80211-20100302/acx_func.h 2010-03-06 13:01:56.000000000 +0100
|
||||||
|
@@ -714,7 +714,6 @@
|
||||||
|
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);
|
||||||
|
Index: acx-mac80211-20100302/common.c
|
||||||
|
===================================================================
|
||||||
|
--- acx-mac80211-20100302.orig/common.c 2010-03-06 13:01:38.000000000 +0100
|
||||||
|
+++ acx-mac80211-20100302/common.c 2010-03-06 13:02:37.000000000 +0100
|
||||||
|
@@ -4662,24 +4662,6 @@
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
Index: acx-mac80211-20100302/mem.c
|
||||||
|
===================================================================
|
||||||
|
--- acx-mac80211-20100302.orig/mem.c 2010-03-06 13:01:46.000000000 +0100
|
||||||
|
+++ acx-mac80211-20100302/mem.c 2010-03-06 13:02:28.000000000 +0100
|
||||||
|
@@ -2321,7 +2321,6 @@
|
||||||
|
.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,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Index: acx-mac80211-20100302/pci.c
|
||||||
|
===================================================================
|
||||||
|
--- acx-mac80211-20100302.orig/pci.c 2010-03-06 13:01:40.000000000 +0100
|
||||||
|
+++ acx-mac80211-20100302/pci.c 2010-03-06 13:02:18.000000000 +0100
|
||||||
|
@@ -1482,7 +1482,6 @@
|
||||||
|
.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,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Index: acx-mac80211-20100302/usb.c
|
||||||
|
===================================================================
|
||||||
|
--- acx-mac80211-20100302.orig/usb.c 2010-03-06 13:01:44.000000000 +0100
|
||||||
|
+++ acx-mac80211-20100302/usb.c 2010-03-06 13:02:22.000000000 +0100
|
||||||
|
@@ -757,7 +757,6 @@
|
||||||
|
.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,
|
||||||
|
};
|
||||||
|
|
||||||
|
/***********************************************************************
|
|
@ -1,91 +0,0 @@
|
||||||
--- a/acx_mac80211.h
|
|
||||||
+++ b/acx_mac80211.h
|
|
||||||
@@ -36,7 +36,7 @@ struct acx_interface {
|
|
||||||
/* Current BSSID (if any). */
|
|
||||||
u8 *bssid;
|
|
||||||
|
|
||||||
- /* Interface type. (IEEE80211_IF_TYPE_XXX) */
|
|
||||||
+ /* Interface type. (NL80211_IFTYPE_XXX) */
|
|
||||||
int type;
|
|
||||||
/* Counter of active monitor interfaces. */
|
|
||||||
int monitor;
|
|
||||||
--- a/common.c
|
|
||||||
+++ b/common.c
|
|
||||||
@@ -4111,28 +4111,28 @@ static void acx_s_select_opmode(acx_devi
|
|
||||||
|
|
||||||
if (adev->interface.operating) {
|
|
||||||
switch (adev->interface.type) {
|
|
||||||
- case IEEE80211_IF_TYPE_AP:
|
|
||||||
+ case NL80211_IFTYPE_AP:
|
|
||||||
if (adev->mode != ACX_MODE_3_AP)
|
|
||||||
{
|
|
||||||
adev->mode = ACX_MODE_3_AP;
|
|
||||||
changed = 1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
- case IEEE80211_IF_TYPE_IBSS:
|
|
||||||
+ case NL80211_IFTYPE_ADHOC:
|
|
||||||
if (adev->mode != ACX_MODE_0_ADHOC)
|
|
||||||
{
|
|
||||||
adev->mode = ACX_MODE_0_ADHOC;
|
|
||||||
changed = 1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
- case IEEE80211_IF_TYPE_STA:
|
|
||||||
+ case NL80211_IFTYPE_STATION:
|
|
||||||
if (adev->mode != ACX_MODE_2_STA)
|
|
||||||
{
|
|
||||||
adev->mode = ACX_MODE_2_STA;
|
|
||||||
changed = 1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
- case IEEE80211_IF_TYPE_WDS:
|
|
||||||
+ case NL80211_IFTYPE_WDS:
|
|
||||||
default:
|
|
||||||
if (adev->mode != ACX_MODE_OFF)
|
|
||||||
{
|
|
||||||
@@ -4142,7 +4142,7 @@ static void acx_s_select_opmode(acx_devi
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
- if (adev->interface.type == IEEE80211_IF_TYPE_MNTR)
|
|
||||||
+ if (adev->interface.type == NL80211_IFTYPE_MONITOR)
|
|
||||||
{
|
|
||||||
if (adev->mode != ACX_MODE_MONITOR)
|
|
||||||
{
|
|
||||||
@@ -4186,7 +4186,7 @@ int acx_add_interface(struct ieee80211_h
|
|
||||||
FN_ENTER;
|
|
||||||
acx_lock(adev, flags);
|
|
||||||
|
|
||||||
- if (conf->type == IEEE80211_IF_TYPE_MNTR) {
|
|
||||||
+ if (conf->type == NL80211_IFTYPE_MONITOR) {
|
|
||||||
adev->interface.monitor++;
|
|
||||||
} else {
|
|
||||||
if (adev->interface.operating)
|
|
||||||
@@ -4232,7 +4232,7 @@ void acx_remove_interface(struct ieee802
|
|
||||||
FN_ENTER;
|
|
||||||
|
|
||||||
acx_sem_lock(adev);
|
|
||||||
- if (conf->type == IEEE80211_IF_TYPE_MNTR) {
|
|
||||||
+ if (conf->type == NL80211_IFTYPE_MONITOR) {
|
|
||||||
adev->interface.monitor--;
|
|
||||||
// assert(bcm->interface.monitor >= 0);
|
|
||||||
} else {
|
|
||||||
@@ -4386,7 +4386,7 @@ extern int acx_config_interface(struct i
|
|
||||||
|
|
||||||
acx_lock(adev, flags);
|
|
||||||
|
|
||||||
- if ((vif->type != IEEE80211_IF_TYPE_MNTR)
|
|
||||||
+ if ((vif->type != NL80211_IFTYPE_MONITOR)
|
|
||||||
&& (adev->vif == vif)) {
|
|
||||||
if (conf->bssid)
|
|
||||||
{
|
|
||||||
@@ -4394,7 +4394,7 @@ extern int acx_config_interface(struct i
|
|
||||||
MAC_COPY(adev->bssid,conf->bssid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- if ((vif->type == IEEE80211_IF_TYPE_AP)
|
|
||||||
+ if ((vif->type == NL80211_IFTYPE_AP)
|
|
||||||
&& (adev->vif == vif)) {
|
|
||||||
if ((conf->ssid_len > 0) && conf->ssid)
|
|
||||||
{
|
|
|
@ -1,91 +0,0 @@
|
||||||
--- a/acx_func.h
|
|
||||||
+++ b/acx_func.h
|
|
||||||
@@ -619,9 +619,10 @@ int acx_net_set_key(struct ieee80211_hw
|
|
||||||
enum set_key_cmd cmd,
|
|
||||||
const u8 *local_addr, const u8 *addr,
|
|
||||||
struct ieee80211_key_conf *key);
|
|
||||||
-extern int acx_config_interface(struct ieee80211_hw* ieee,
|
|
||||||
+void acx_config_interface(struct ieee80211_hw* ieee,
|
|
||||||
struct ieee80211_vif *vif,
|
|
||||||
- struct ieee80211_if_conf *conf);
|
|
||||||
+ struct ieee80211_bss_conf *info,
|
|
||||||
+ u32 changes);
|
|
||||||
int acx_net_config(struct ieee80211_hw* ieee, struct ieee80211_conf *conf);
|
|
||||||
int acx_net_get_tx_stats(struct ieee80211_hw* ieee, struct ieee80211_tx_queue_stats *stats);
|
|
||||||
int acx_net_conf_tx(struct ieee80211_hw* ieee, u16 queue,
|
|
||||||
--- a/common.c
|
|
||||||
+++ b/common.c
|
|
||||||
@@ -4370,9 +4370,10 @@ int acx_net_config(struct ieee80211_hw *
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
|
|
||||||
-extern int acx_config_interface(struct ieee80211_hw* ieee,
|
|
||||||
+void acx_config_interface(struct ieee80211_hw* ieee,
|
|
||||||
struct ieee80211_vif *vif,
|
|
||||||
- struct ieee80211_if_conf *conf)
|
|
||||||
+ struct ieee80211_bss_conf *info,
|
|
||||||
+ u32 changes)
|
|
||||||
{
|
|
||||||
acx_device_t *adev = ieee2adev(ieee);
|
|
||||||
unsigned long flags;
|
|
||||||
@@ -4388,22 +4389,22 @@ extern int acx_config_interface(struct i
|
|
||||||
|
|
||||||
if ((vif->type != NL80211_IFTYPE_MONITOR)
|
|
||||||
&& (adev->vif == vif)) {
|
|
||||||
- if (conf->bssid)
|
|
||||||
+ if (info->bssid)
|
|
||||||
{
|
|
||||||
- adev->interface.bssid = conf->bssid;
|
|
||||||
- MAC_COPY(adev->bssid,conf->bssid);
|
|
||||||
+ adev->interface.bssid = info->bssid;
|
|
||||||
+ MAC_COPY(adev->bssid, info->bssid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((vif->type == NL80211_IFTYPE_AP)
|
|
||||||
&& (adev->vif == vif)) {
|
|
||||||
- if ((conf->ssid_len > 0) && conf->ssid)
|
|
||||||
+ if (info->bssid)
|
|
||||||
{
|
|
||||||
- adev->essid_len = conf->ssid_len;
|
|
||||||
- memcpy(adev->essid, conf->ssid, conf->ssid_len);
|
|
||||||
+ adev->essid_len = ETH_ALEN;
|
|
||||||
+ memcpy(adev->essid, info->bssid, ETH_ALEN);
|
|
||||||
SET_BIT(adev->set_mask, SET_TEMPLATES);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- if (conf->changed & IEEE80211_IFCC_BEACON)
|
|
||||||
+ if (changes & BSS_CHANGED_BSSID)
|
|
||||||
{
|
|
||||||
adev->beacon_interval = DEFAULT_BEACON_INTERVAL;
|
|
||||||
adev->beacon_cache = ieee80211_beacon_get(ieee, vif);
|
|
||||||
@@ -4418,7 +4419,7 @@ extern int acx_config_interface(struct i
|
|
||||||
err = 0;
|
|
||||||
err_out:
|
|
||||||
FN_EXIT1(err);
|
|
||||||
- return err;
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
--- a/pci.c
|
|
||||||
+++ b/pci.c
|
|
||||||
@@ -1469,7 +1469,7 @@ static const struct ieee80211_ops acxpci
|
|
||||||
.configure_filter = acx_i_set_multicast_list,
|
|
||||||
.stop = acxpci_e_close,
|
|
||||||
.config = acx_net_config,
|
|
||||||
- .config_interface = acx_config_interface,
|
|
||||||
+ .bss_info_changed = acx_config_interface,
|
|
||||||
.set_key = acx_net_set_key,
|
|
||||||
.get_stats = acx_e_get_stats,
|
|
||||||
.get_tx_stats = acx_net_get_tx_stats,
|
|
||||||
--- a/usb.c
|
|
||||||
+++ b/usb.c
|
|
||||||
@@ -741,7 +741,7 @@ static const struct ieee80211_ops acxusb
|
|
||||||
.configure_filter = acx_i_set_multicast_list,
|
|
||||||
.stop = acxusb_e_close,
|
|
||||||
.config = acx_net_config,
|
|
||||||
- .config_interface = acx_config_interface,
|
|
||||||
+ .bss_info_changed = acx_config_interface,
|
|
||||||
.set_key = acx_net_set_key,
|
|
||||||
.get_stats = acx_e_get_stats,
|
|
||||||
.get_tx_stats = acx_net_get_tx_stats,
|
|
|
@ -1,70 +0,0 @@
|
||||||
Index: acx-mac80211-20080805/acx_func.h
|
|
||||||
===================================================================
|
|
||||||
--- acx-mac80211-20080805.orig/acx_func.h 2009-05-26 20:58:10.000000000 +0200
|
|
||||||
+++ acx-mac80211-20080805/acx_func.h 2009-05-26 20:58:11.000000000 +0200
|
|
||||||
@@ -623,7 +623,7 @@
|
|
||||||
struct ieee80211_vif *vif,
|
|
||||||
struct ieee80211_bss_conf *info,
|
|
||||||
u32 changes);
|
|
||||||
-int acx_net_config(struct ieee80211_hw* ieee, struct ieee80211_conf *conf);
|
|
||||||
+int acx_net_config(struct ieee80211_hw* ieee, u32 changed);
|
|
||||||
int acx_net_get_tx_stats(struct ieee80211_hw* ieee, struct ieee80211_tx_queue_stats *stats);
|
|
||||||
int acx_net_conf_tx(struct ieee80211_hw* ieee, u16 queue,
|
|
||||||
const struct ieee80211_tx_queue_params *params);
|
|
||||||
Index: acx-mac80211-20080805/common.c
|
|
||||||
===================================================================
|
|
||||||
--- acx-mac80211-20080805.orig/common.c 2009-05-26 20:58:10.000000000 +0200
|
|
||||||
+++ acx-mac80211-20080805/common.c 2009-05-26 20:58:11.000000000 +0200
|
|
||||||
@@ -4300,9 +4300,10 @@
|
|
||||||
** Derived from mac80211 code, p54, bcm43xx_mac80211
|
|
||||||
**
|
|
||||||
*/
|
|
||||||
-int acx_net_config(struct ieee80211_hw *hw, struct ieee80211_conf *conf)
|
|
||||||
+int acx_net_config(struct ieee80211_hw *hw, u32 changed)
|
|
||||||
{
|
|
||||||
acx_device_t *adev = ieee2adev(hw);
|
|
||||||
+ struct ieee80211_conf *conf = &hw->conf;
|
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
FN_ENTER;
|
|
||||||
Index: acx-mac80211-20080805/pci.c
|
|
||||||
===================================================================
|
|
||||||
--- acx-mac80211-20080805.orig/pci.c 2009-05-26 20:58:10.000000000 +0200
|
|
||||||
+++ acx-mac80211-20080805/pci.c 2009-05-30 20:44:29.000000000 +0200
|
|
||||||
@@ -3105,7 +3105,7 @@
|
|
||||||
|
|
||||||
/* let chip do RTS/CTS handshaking before sending
|
|
||||||
* in case packet size exceeds threshold */
|
|
||||||
- if (info->flags & IEEE80211_TX_CTL_USE_RTS_CTS)
|
|
||||||
+ if (info->flags & IEEE80211_TX_RC_USE_RTS_CTS)
|
|
||||||
SET_BIT(Ctl2_8, DESC_CTL2_RTS);
|
|
||||||
else
|
|
||||||
CLEAR_BIT(Ctl2_8, DESC_CTL2_RTS);
|
|
||||||
@@ -3120,7 +3120,7 @@
|
|
||||||
/* put_txcr(adev, txdesc, clt, rate_cur); deprecated by mac80211 */
|
|
||||||
|
|
||||||
txdesc->total_length = cpu_to_le16(len);
|
|
||||||
- wlhdr_len = ieee80211_get_hdrlen(le16_to_cpu(wireless_header->frame_control));
|
|
||||||
+ wlhdr_len = ieee80211_hdrlen(le16_to_cpu(wireless_header->frame_control));
|
|
||||||
hostdesc2->length = cpu_to_le16(len - wlhdr_len);
|
|
||||||
/*
|
|
||||||
if (!ieeectl->do_not_encrypt && ieeectl->key_idx>= 0)
|
|
||||||
@@ -3444,8 +3444,8 @@
|
|
||||||
/* And finally report upstream */
|
|
||||||
if (hostdesc)
|
|
||||||
{
|
|
||||||
- info->status.excessive_retries = rts_failures;
|
|
||||||
- info->status.retry_count = ack_failures;
|
|
||||||
+ //info->status.excessive_retries = rts_failures;
|
|
||||||
+ //info->status.retry_count = ack_failures;
|
|
||||||
ieee80211_tx_status(adev->ieee, hostdesc->skb);
|
|
||||||
}
|
|
||||||
/* update pointer for descr to be cleaned next */
|
|
||||||
@@ -4303,6 +4303,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
acx_init_task_scheduler(adev);
|
|
||||||
+ adev->ieee->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION);
|
|
||||||
result = ieee80211_register_hw(adev->ieee);
|
|
||||||
if (OK != result) {
|
|
||||||
printk("acx: ieee80211_register_hw() FAILED: %d\n", result);
|
|
Loading…
Reference in New Issue