diff options
| -rw-r--r-- | package/acx-mac80211/patches/003-if_types.patch | 93 | ||||
| -rw-r--r-- | package/acx-mac80211/patches/004-acx_config_interface_type.patch | 95 | ||||
| -rw-r--r-- | package/acx-mac80211/patches/005-pci_fixes.patch | 59 | 
3 files changed, 247 insertions, 0 deletions
| diff --git a/package/acx-mac80211/patches/003-if_types.patch b/package/acx-mac80211/patches/003-if_types.patch new file mode 100644 index 000000000..4e52963c8 --- /dev/null +++ b/package/acx-mac80211/patches/003-if_types.patch @@ -0,0 +1,93 @@ +diff -urN acx-mac80211-20080805/acx_mac80211.h acx-mac80211-20080805.new/acx_mac80211.h +--- acx-mac80211-20080805/acx_mac80211.h	2009-05-07 14:32:44.000000000 +0200 ++++ acx-mac80211-20080805.new/acx_mac80211.h	2009-05-07 15:59:45.000000000 +0200 +@@ -36,7 +36,7 @@ +         /* 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; +diff -urN acx-mac80211-20080805/common.c acx-mac80211-20080805.new/common.c +--- acx-mac80211-20080805/common.c	2009-05-07 14:32:44.000000000 +0200 ++++ acx-mac80211-20080805.new/common.c	2009-05-07 16:11:26.000000000 +0200 +@@ -4105,28 +4105,28 @@ +  + 	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) + 				{ +@@ -4136,7 +4136,7 @@ + 			break; + 		} + 	} else { +-		if (adev->interface.type == IEEE80211_IF_TYPE_MNTR) ++		if (adev->interface.type == NL80211_IFTYPE_MONITOR) + 		{ + 			if (adev->mode != ACX_MODE_MONITOR) + 			{ +@@ -4180,7 +4180,7 @@ + 	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) +@@ -4226,7 +4226,7 @@ + 	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 { +@@ -4380,7 +4380,7 @@ +  + 	acx_lock(adev, flags); +  +-	if ((vif->type != IEEE80211_IF_TYPE_MNTR) ++	if ((vif->type != NL80211_IFTYPE_MONITOR) + 	    && (adev->vif == vif)) { + 		if (conf->bssid) + 		{ +@@ -4388,7 +4388,7 @@ +  	             	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) + 		{ diff --git a/package/acx-mac80211/patches/004-acx_config_interface_type.patch b/package/acx-mac80211/patches/004-acx_config_interface_type.patch new file mode 100644 index 000000000..e6830c544 --- /dev/null +++ b/package/acx-mac80211/patches/004-acx_config_interface_type.patch @@ -0,0 +1,95 @@ +diff -urN acx-mac80211-20080805/acx_func.h acx-mac80211-20080805.new/acx_func.h +--- acx-mac80211-20080805/acx_func.h	2009-05-07 14:32:44.000000000 +0200 ++++ acx-mac80211-20080805.new/acx_func.h	2009-05-07 16:28:17.000000000 +0200 +@@ -619,9 +619,10 @@ + 		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, +diff -urN acx-mac80211-20080805/common.c acx-mac80211-20080805.new/common.c +--- acx-mac80211-20080805/common.c	2009-05-07 16:20:37.000000000 +0200 ++++ acx-mac80211-20080805.new/common.c	2009-05-07 16:35:55.000000000 +0200 +@@ -4364,9 +4364,10 @@ + ** + */ +  +-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; +@@ -4382,22 +4383,22 @@ +  + 	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); +@@ -4412,7 +4413,7 @@ + 	err = 0; + err_out: + 	FN_EXIT1(err); +-	return err; ++	return; + } +  + /** +diff -urN acx-mac80211-20080805/pci.c acx-mac80211-20080805.new/pci.c +--- acx-mac80211-20080805/pci.c	2009-05-07 14:32:44.000000000 +0200 ++++ acx-mac80211-20080805.new/pci.c	2009-05-07 16:27:27.000000000 +0200 +@@ -1469,7 +1469,7 @@ + 	.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, +diff -urN acx-mac80211-20080805/usb.c acx-mac80211-20080805.new/usb.c +--- acx-mac80211-20080805/usb.c	2009-05-07 14:32:44.000000000 +0200 ++++ acx-mac80211-20080805.new/usb.c	2009-05-07 16:27:38.000000000 +0200 +@@ -741,7 +741,7 @@ + 	.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, diff --git a/package/acx-mac80211/patches/005-pci_fixes.patch b/package/acx-mac80211/patches/005-pci_fixes.patch new file mode 100644 index 000000000..440ab53c8 --- /dev/null +++ b/package/acx-mac80211/patches/005-pci_fixes.patch @@ -0,0 +1,59 @@ +diff -urN acx-mac80211-20080805/acx_func.h acx-mac80211-20080805.new/acx_func.h +--- acx-mac80211-20080805/acx_func.h	2009-05-07 16:36:37.000000000 +0200 ++++ acx-mac80211-20080805.new/acx_func.h	2009-05-07 16:54:21.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); +diff -urN acx-mac80211-20080805/common.c acx-mac80211-20080805.new/common.c +--- acx-mac80211-20080805/common.c	2009-05-07 16:36:37.000000000 +0200 ++++ acx-mac80211-20080805.new/common.c	2009-05-07 16:57:45.000000000 +0200 +@@ -4294,9 +4294,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; +diff -urN acx-mac80211-20080805/pci.c acx-mac80211-20080805.new/pci.c +--- acx-mac80211-20080805/pci.c	2009-05-07 16:39:39.000000000 +0200 ++++ acx-mac80211-20080805.new/pci.c	2009-05-07 16:59:07.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 */ | 
