r85 - tarballs unstable/rt2x00/debian unstable/rt2x00/debian/patches
benh at alioth.debian.org
benh at alioth.debian.org
Mon Nov 12 00:28:05 UTC 2007
Author: benh
Date: 2007-11-12 00:28:05 +0000 (Mon, 12 Nov 2007)
New Revision: 85
Added:
tarballs/rt2x00_2.0.12+git20071103.orig.tar.gz
Removed:
unstable/rt2x00/debian/patches/005_fix_probe_148f_2573.diff
Modified:
unstable/rt2x00/debian/changelog
unstable/rt2x00/debian/patches/002_out_of_tree.diff
unstable/rt2x00/debian/patches/003_workaround_mac80211_changes.diff
unstable/rt2x00/debian/patches/004_fix_filter_flags.diff
unstable/rt2x00/debian/patches/series
Log:
Made a new snapshot from git, roughly matching the version merged into Linux 2.6.24.
Updated patches.
Added suggestion of pending firmware packages for drivers that need firmware.
Added: tarballs/rt2x00_2.0.12+git20071103.orig.tar.gz
===================================================================
(Binary files differ)
Property changes on: tarballs/rt2x00_2.0.12+git20071103.orig.tar.gz
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: unstable/rt2x00/debian/changelog
===================================================================
--- unstable/rt2x00/debian/changelog 2007-11-12 00:03:11 UTC (rev 84)
+++ unstable/rt2x00/debian/changelog 2007-11-12 00:28:05 UTC (rev 85)
@@ -1,3 +1,10 @@
+rt2x00 (2.0.12+git20071103-1) unstable; urgency=low
+
+ * New version from git
+ * Added suggestion of firmware packages needed for some drivers
+
+ -- Ben Hutchings <ben at decadent.org.uk> Sun, 04 Nov 2007 23:16:53 +0000
+
rt2x00 (2.0.9-2) unstable; urgency=low
* Fixed probing for USB devices with ambiguous id
Modified: unstable/rt2x00/debian/patches/002_out_of_tree.diff
===================================================================
--- unstable/rt2x00/debian/patches/002_out_of_tree.diff 2007-11-12 00:03:11 UTC (rev 84)
+++ unstable/rt2x00/debian/patches/002_out_of_tree.diff 2007-11-12 00:28:05 UTC (rev 85)
@@ -64,7 +64,7 @@
+CONFIG_RT2X00_DEBUG=y
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00.h
+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -38,6 +38,8 @@
+@@ -39,6 +39,8 @@
#include "rt2x00reg.h"
#include "rt2x00ring.h"
Modified: unstable/rt2x00/debian/patches/003_workaround_mac80211_changes.diff
===================================================================
--- unstable/rt2x00/debian/patches/003_workaround_mac80211_changes.diff 2007-11-12 00:03:11 UTC (rev 84)
+++ unstable/rt2x00/debian/patches/003_workaround_mac80211_changes.diff 2007-11-12 00:28:05 UTC (rev 85)
@@ -1,21 +1,23 @@
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00.h
+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -31,6 +31,7 @@
- #include <linux/skbuff.h>
+@@ -32,6 +32,7 @@
#include <linux/workqueue.h>
#include <linux/firmware.h>
+ #include <linux/mutex.h>
+#include <linux/version.h>
#include <net/mac80211.h>
-@@ -40,6 +41,76 @@
+@@ -41,6 +42,86 @@
#include "config.h"
+/* Version compatibility workarounds */
+
+#ifndef IEEE80211_TXCTL_LONG_RETRY_LIMIT
++
+#define IEEE80211_TXCTL_LONG_RETRY_LIMIT 0
++
+/* These were changed around the same time as
+ * IEEE80211_TXCTL_LONG_RETRY_LIMIT was added in wireless-dev, but we
+ * can't detect this change directly using the preprocessor
@@ -24,8 +26,16 @@
+ ieee80211_rts_get(hw, frame, frame_len, frame_txctl, rts)
+#define ieee80211_ctstoself_get(hw, if_id, frame, frame_len, frame_txctl, cts) \
+ ieee80211_ctstoself_get(hw, frame, frame_len, frame_txctl, cts)
-+#endif
+
++/* erp_ie_changed was added around the same time. */
++#define RT2X00_SYNTHESISE_ERP_IE_CHANGED
++enum ieee80211_erp_change_flags {
++ IEEE80211_ERP_CHANGE_PROTECTION = 1<<0,
++ IEEE80211_ERP_CHANGE_PREAMBLE = 1<<1,
++};
++
++#endif /* !IEEE80211_TXCTL_LONG_RETRY_LIMIT */
++
+/* These negative capability flags have been removed in wireless-dev */
+#ifndef IEEE80211_HW_HOST_GEN_BEACON
+#define IEEE80211_HW_HOST_GEN_BEACON 0
@@ -85,7 +95,16 @@
/*
* Module information.
* DRV_NAME should be set within the individual module source files.
-@@ -315,6 +386,19 @@
+@@ -375,7 +456,7 @@
+ * When set to INVALID_INTERFACE, no interface is configured.
+ */
+ int type;
+-#define INVALID_INTERFACE IEEE80211_IF_TYPE_INVALID
++#define INVALID_INTERFACE (IEEE80211_IF_TYPE_AP - 1)
+
+ /*
+ * MAC of the device.
+@@ -391,6 +472,19 @@
* Store the packet filter mode for the current interface.
*/
unsigned int filter;
@@ -105,7 +124,7 @@
};
/* Magic filter for configure_filter to apply existing filter */
-@@ -332,6 +416,13 @@
+@@ -408,6 +502,13 @@
return intf->type == type;
}
@@ -119,22 +138,40 @@
/*
* Details about the supported modes, rates and channels
* of a particular chipset. This is used by rt2x00lib
-@@ -417,8 +508,12 @@
+@@ -450,6 +551,9 @@
+ int phymode;
+
+ int basic_rates;
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++ int preamble;
++#endif
+ int slot_time;
+
+ short sifs;
+@@ -520,6 +624,12 @@
*/
- void (*config_mac_addr) (struct rt2x00_dev *rt2x00dev, u8 *mac);
- void (*config_bssid) (struct rt2x00_dev *rt2x00dev, u8 *bssid);
-- void (*config_packet_filter) (struct rt2x00_dev *rt2x00dev,
-- const unsigned int filter);
+ void (*config_mac_addr) (struct rt2x00_dev *rt2x00dev, __le32 *mac);
+ void (*config_bssid) (struct rt2x00_dev *rt2x00dev, __le32 *bssid);
+#ifdef RT2X00_ADAPT_OLD_FILTER_API
+ void (*configure_filter) (struct ieee80211_hw *hw,
+ unsigned int changed_flags,
+ unsigned int *total_flags,
+ int mc_count, struct dev_addr_list *mc_list);
+#endif
- void (*config_type) (struct rt2x00_dev *rt2x00dev, const int type);
- void (*config) (struct rt2x00_dev *rt2x00dev, const unsigned int flags,
- struct ieee80211_conf *conf);
-@@ -768,7 +863,11 @@
+ void (*config_type) (struct rt2x00_dev *rt2x00dev, const int type,
+ const int tsf_sync);
+ void (*config_preamble) (struct rt2x00_dev *rt2x00dev,
+@@ -744,7 +854,9 @@
+ */
+ struct work_struct beacon_work;
+ struct work_struct filter_work;
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ struct work_struct config_work;
++#endif
+
+ /*
+ * Data ring arrays for RX, TX and Beacon.
+@@ -915,7 +1027,11 @@
int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb,
struct ieee80211_tx_control *control);
int rt2x00mac_start(struct ieee80211_hw *hw);
@@ -146,7 +183,7 @@
int rt2x00mac_add_interface(struct ieee80211_hw *hw,
struct ieee80211_if_init_conf *conf);
void rt2x00mac_remove_interface(struct ieee80211_hw *hw,
-@@ -776,6 +875,10 @@
+@@ -923,6 +1039,10 @@
int rt2x00mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *conf);
int rt2x00mac_config_interface(struct ieee80211_hw *hw, int if_id,
struct ieee80211_if_conf *conf);
@@ -159,7 +196,7 @@
int rt2x00mac_get_tx_stats(struct ieee80211_hw *hw,
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2400pci.c
+++ rt2x00/drivers/net/wireless/rt2x00/rt2400pci.c
-@@ -296,8 +296,13 @@
+@@ -284,8 +284,13 @@
* Enable synchronisation.
*/
rt2x00pci_register_read(rt2x00dev, CSR14, ®);
@@ -173,9 +210,25 @@
+ rt2x00_set_field32(®, CSR14_TBCN, 1);
+ }
rt2x00_set_field32(®, CSR14_BEACON_GEN, 0);
- if (is_interface_type(intf, IEEE80211_IF_TYPE_IBSS) ||
- is_interface_type(intf, IEEE80211_IF_TYPE_AP))
-@@ -1415,7 +1420,14 @@
+ rt2x00_set_field32(®, CSR14_TSF_SYNC, tsf_sync);
+ rt2x00pci_register_write(rt2x00dev, CSR14, reg);
+@@ -489,8 +494,14 @@
+ const unsigned int flags,
+ struct rt2x00lib_conf *libconf)
+ {
+- if (flags & CONFIG_UPDATE_PHYMODE)
++ if (flags & CONFIG_UPDATE_PHYMODE) {
+ rt2400pci_config_phymode(rt2x00dev, libconf->basic_rates);
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++ rt2x00mac_erp_ie_changed(rt2x00dev->hw,
++ IEEE80211_ERP_CHANGE_PREAMBLE,
++ 0, libconf->preamble);
++#endif
++ }
+ if (flags & CONFIG_UPDATE_CHANNEL)
+ rt2400pci_config_channel(rt2x00dev, &libconf->rf);
+ if (flags & CONFIG_UPDATE_TXPOWER)
+@@ -1369,7 +1380,14 @@
/*
* Initialize all hw fields.
*/
@@ -191,7 +244,7 @@
rt2x00dev->hw->extra_tx_headroom = 0;
rt2x00dev->hw->max_signal = MAX_SIGNAL;
rt2x00dev->hw->max_rssi = MAX_RX_SSI;
-@@ -1616,13 +1628,19 @@
+@@ -1570,16 +1588,24 @@
static const struct ieee80211_ops rt2400pci_mac80211_ops = {
.tx = rt2x00mac_tx,
@@ -210,8 +263,13 @@
+#endif
.get_stats = rt2x00mac_get_stats,
.set_retry_limit = rt2400pci_set_retry_limit,
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ .erp_ie_changed = rt2x00mac_erp_ie_changed,
++#endif
.conf_tx = rt2400pci_conf_tx,
-@@ -1651,6 +1669,9 @@
+ .get_tx_stats = rt2x00mac_get_tx_stats,
+ .get_tsf = rt2400pci_get_tsf,
+@@ -1604,6 +1630,9 @@
.fill_rxdone = rt2400pci_fill_rxdone,
.config_mac_addr = rt2400pci_config_mac_addr,
.config_bssid = rt2400pci_config_bssid,
@@ -219,11 +277,11 @@
+ .configure_filter = rt2400pci_configure_filter,
+#endif
.config_type = rt2400pci_config_type,
+ .config_preamble = rt2400pci_config_preamble,
.config = rt2400pci_config,
- };
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500pci.c
+++ rt2x00/drivers/net/wireless/rt2x00/rt2500pci.c
-@@ -300,8 +300,13 @@
+@@ -288,8 +288,13 @@
* Enable synchronisation.
*/
rt2x00pci_register_read(rt2x00dev, CSR14, ®);
@@ -237,9 +295,25 @@
+ rt2x00_set_field32(®, CSR14_TBCN, 1);
+ }
rt2x00_set_field32(®, CSR14_BEACON_GEN, 0);
- if (is_interface_type(intf, IEEE80211_IF_TYPE_IBSS) ||
- is_interface_type(intf, IEEE80211_IF_TYPE_AP))
-@@ -1729,7 +1734,14 @@
+ rt2x00_set_field32(®, CSR14_TSF_SYNC, tsf_sync);
+ rt2x00pci_register_write(rt2x00dev, CSR14, reg);
+@@ -538,8 +543,14 @@
+ const unsigned int flags,
+ struct rt2x00lib_conf *libconf)
+ {
+- if (flags & CONFIG_UPDATE_PHYMODE)
++ if (flags & CONFIG_UPDATE_PHYMODE) {
+ rt2500pci_config_phymode(rt2x00dev, libconf->basic_rates);
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++ rt2x00mac_erp_ie_changed(rt2x00dev->hw,
++ IEEE80211_ERP_CHANGE_PREAMBLE,
++ 0, libconf->preamble);
++#endif
++ }
+ if (flags & CONFIG_UPDATE_CHANNEL)
+ rt2500pci_config_channel(rt2x00dev, &libconf->rf,
+ libconf->conf->power_level);
+@@ -1664,7 +1675,14 @@
/*
* Initialize all hw fields.
*/
@@ -255,7 +329,7 @@
rt2x00dev->hw->extra_tx_headroom = 0;
rt2x00dev->hw->max_signal = MAX_SIGNAL;
rt2x00dev->hw->max_rssi = MAX_RX_SSI;
-@@ -1928,13 +1940,19 @@
+@@ -1863,16 +1881,24 @@
static const struct ieee80211_ops rt2500pci_mac80211_ops = {
.tx = rt2x00mac_tx,
@@ -274,8 +348,13 @@
+#endif
.get_stats = rt2x00mac_get_stats,
.set_retry_limit = rt2500pci_set_retry_limit,
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ .erp_ie_changed = rt2x00mac_erp_ie_changed,
++#endif
.conf_tx = rt2x00mac_conf_tx,
-@@ -1963,6 +1981,9 @@
+ .get_tx_stats = rt2x00mac_get_tx_stats,
+ .get_tsf = rt2500pci_get_tsf,
+@@ -1897,6 +1923,9 @@
.fill_rxdone = rt2500pci_fill_rxdone,
.config_mac_addr = rt2500pci_config_mac_addr,
.config_bssid = rt2500pci_config_bssid,
@@ -283,11 +362,11 @@
+ .configure_filter = rt2500pci_configure_filter,
+#endif
.config_type = rt2500pci_config_type,
+ .config_preamble = rt2500pci_config_preamble,
.config = rt2500pci_config,
- };
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500usb.c
+++ rt2x00/drivers/net/wireless/rt2x00/rt2500usb.c
-@@ -309,8 +309,13 @@
+@@ -331,8 +331,13 @@
rt2500usb_register_write(rt2x00dev, TXRX_CSR18, reg);
rt2500usb_register_read(rt2x00dev, TXRX_CSR19, ®);
@@ -301,9 +380,42 @@
+ rt2x00_set_field16(®, TXRX_CSR19_TBCN, 1);
+ }
rt2x00_set_field16(®, TXRX_CSR19_BEACON_GEN, 0);
- if (is_interface_type(intf, IEEE80211_IF_TYPE_IBSS) ||
- is_interface_type(intf, IEEE80211_IF_TYPE_AP))
-@@ -1501,7 +1506,12 @@
+ rt2x00_set_field16(®, TXRX_CSR19_TSF_SYNC, tsf_sync);
+ rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg);
+@@ -345,6 +350,7 @@
+ {
+ u16 reg;
+
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ /*
+ * When in atomic context, reschedule and let rt2x00lib
+ * call this function again.
+@@ -353,6 +359,7 @@
+ queue_work(rt2x00dev->hw->workqueue, &rt2x00dev->config_work);
+ return;
+ }
++#endif
+
+ rt2500usb_register_read(rt2x00dev, TXRX_CSR1, ®);
+ rt2x00_set_field16(®, TXRX_CSR1_ACK_TIMEOUT, ack_timeout);
+@@ -525,9 +532,15 @@
+ const unsigned int flags,
+ struct rt2x00lib_conf *libconf)
+ {
+- if (flags & CONFIG_UPDATE_PHYMODE)
++ if (flags & CONFIG_UPDATE_PHYMODE) {
+ rt2500usb_config_phymode(rt2x00dev, libconf->phymode,
+ libconf->basic_rates);
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++ rt2x00mac_erp_ie_changed(rt2x00dev->hw,
++ IEEE80211_ERP_CHANGE_PREAMBLE,
++ 0, libconf->preamble);
++#endif
++ }
+ if (flags & CONFIG_UPDATE_CHANNEL)
+ rt2500usb_config_channel(rt2x00dev, &libconf->rf,
+ libconf->conf->power_level);
+@@ -1523,7 +1536,12 @@
rt2x00dev->hw->flags =
IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE |
IEEE80211_HW_RX_INCLUDES_FCS |
@@ -317,7 +429,7 @@
rt2x00dev->hw->extra_tx_headroom = TXD_DESC_SIZE;
rt2x00dev->hw->max_signal = MAX_SIGNAL;
rt2x00dev->hw->max_rssi = MAX_RX_SSI;
-@@ -1746,13 +1756,19 @@
+@@ -1764,15 +1782,23 @@
static const struct ieee80211_ops rt2500usb_mac80211_ops = {
.tx = rt2x00mac_tx,
@@ -335,9 +447,13 @@
.configure_filter = rt2500usb_configure_filter,
+#endif
.get_stats = rt2x00mac_get_stats,
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ .erp_ie_changed = rt2x00mac_erp_ie_changed,
++#endif
.conf_tx = rt2x00mac_conf_tx,
.get_tx_stats = rt2x00mac_get_tx_stats,
-@@ -1773,6 +1789,9 @@
+ .beacon_update = rt2500usb_beacon_update,
+@@ -1793,6 +1819,9 @@
.fill_rxdone = rt2500usb_fill_rxdone,
.config_mac_addr = rt2500usb_config_mac_addr,
.config_bssid = rt2500usb_config_bssid,
@@ -345,11 +461,27 @@
+ .configure_filter = rt2500usb_configure_filter,
+#endif
.config_type = rt2500usb_config_type,
+ .config_preamble = rt2500usb_config_preamble,
.config = rt2500usb_config,
- };
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt61pci.c
+++ rt2x00/drivers/net/wireless/rt2x00/rt61pci.c
-@@ -2289,7 +2289,12 @@
+@@ -674,8 +674,14 @@
+ const unsigned int flags,
+ struct rt2x00lib_conf *libconf)
+ {
+- if (flags & CONFIG_UPDATE_PHYMODE)
++ if (flags & CONFIG_UPDATE_PHYMODE) {
+ rt61pci_config_phymode(rt2x00dev, libconf->basic_rates);
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++ rt2x00mac_erp_ie_changed(rt2x00dev->hw,
++ IEEE80211_ERP_CHANGE_PREAMBLE,
++ 0, libconf->preamble);
++#endif
++ }
+ if (flags & CONFIG_UPDATE_CHANNEL)
+ rt61pci_config_channel(rt2x00dev, &libconf->rf,
+ libconf->conf->power_level);
+@@ -2209,7 +2215,12 @@
*/
rt2x00dev->hw->flags =
IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE |
@@ -363,7 +495,7 @@
rt2x00dev->hw->extra_tx_headroom = 0;
rt2x00dev->hw->max_signal = MAX_SIGNAL;
rt2x00dev->hw->max_rssi = MAX_RX_SSI;
-@@ -2521,13 +2526,19 @@
+@@ -2444,16 +2455,24 @@
static const struct ieee80211_ops rt61pci_mac80211_ops = {
.tx = rt2x00mac_tx,
@@ -382,8 +514,13 @@
+#endif
.get_stats = rt2x00mac_get_stats,
.set_retry_limit = rt61pci_set_retry_limit,
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ .erp_ie_changed = rt2x00mac_erp_ie_changed,
++#endif
.conf_tx = rt2x00mac_conf_tx,
-@@ -2557,6 +2568,9 @@
+ .get_tx_stats = rt2x00mac_get_tx_stats,
+ .get_tsf = rt61pci_get_tsf,
+@@ -2479,6 +2498,9 @@
.fill_rxdone = rt61pci_fill_rxdone,
.config_mac_addr = rt61pci_config_mac_addr,
.config_bssid = rt61pci_config_bssid,
@@ -391,11 +528,11 @@
+ .configure_filter = rt61pci_configure_filter,
+#endif
.config_type = rt61pci_config_type,
+ .config_preamble = rt61pci_config_preamble,
.config = rt61pci_config,
- };
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt73usb.c
+++ rt2x00/drivers/net/wireless/rt2x00/rt73usb.c
-@@ -314,8 +314,13 @@
+@@ -331,8 +331,13 @@
* Enable synchronisation.
*/
rt73usb_register_read(rt2x00dev, TXRX_CSR9, ®);
@@ -409,9 +546,41 @@
+ rt2x00_set_field32(®, TXRX_CSR9_TBTT_ENABLE, 1);
+ }
rt2x00_set_field32(®, TXRX_CSR9_BEACON_GEN, 0);
- if (is_interface_type(intf, IEEE80211_IF_TYPE_IBSS) ||
- is_interface_type(intf, IEEE80211_IF_TYPE_AP))
-@@ -1751,7 +1756,12 @@
+ rt2x00_set_field32(®, TXRX_CSR9_TSF_SYNC, tsf_sync);
+ rt73usb_register_write(rt2x00dev, TXRX_CSR9, reg);
+@@ -345,6 +350,7 @@
+ {
+ u32 reg;
+
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ /*
+ * When in atomic context, reschedule and let rt2x00lib
+ * call this function again.
+@@ -353,6 +359,7 @@
+ queue_work(rt2x00dev->hw->workqueue, &rt2x00dev->config_work);
+ return;
+ }
++#endif
+
+ rt73usb_register_read(rt2x00dev, TXRX_CSR0, ®);
+ rt2x00_set_field32(®, TXRX_CSR0_RX_ACK_TIMEOUT, ack_timeout);
+@@ -624,8 +631,14 @@
+ const unsigned int flags,
+ struct rt2x00lib_conf *libconf)
+ {
+- if (flags & CONFIG_UPDATE_PHYMODE)
++ if (flags & CONFIG_UPDATE_PHYMODE) {
+ rt73usb_config_phymode(rt2x00dev, libconf->basic_rates);
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++ rt2x00mac_erp_ie_changed(rt2x00dev->hw,
++ IEEE80211_ERP_CHANGE_PREAMBLE,
++ 0, libconf->preamble);
++#endif
++ }
+ if (flags & CONFIG_UPDATE_CHANNEL)
+ rt73usb_config_channel(rt2x00dev, &libconf->rf,
+ libconf->conf->power_level);
+@@ -1754,7 +1767,12 @@
*/
rt2x00dev->hw->flags =
IEEE80211_HW_HOST_GEN_BEACON_TEMPLATE |
@@ -425,7 +594,7 @@
rt2x00dev->hw->extra_tx_headroom = TXD_DESC_SIZE;
rt2x00dev->hw->max_signal = MAX_SIGNAL;
rt2x00dev->hw->max_rssi = MAX_RX_SSI;
-@@ -2007,13 +2017,19 @@
+@@ -2014,16 +2032,24 @@
static const struct ieee80211_ops rt73usb_mac80211_ops = {
.tx = rt2x00mac_tx,
@@ -444,8 +613,13 @@
+#endif
.get_stats = rt2x00mac_get_stats,
.set_retry_limit = rt73usb_set_retry_limit,
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ .erp_ie_changed = rt2x00mac_erp_ie_changed,
++#endif
.conf_tx = rt2x00mac_conf_tx,
-@@ -2044,6 +2060,9 @@
+ .get_tx_stats = rt2x00mac_get_tx_stats,
+ .get_tsf = rt73usb_get_tsf,
+@@ -2048,6 +2074,9 @@
.fill_rxdone = rt73usb_fill_rxdone,
.config_mac_addr = rt73usb_config_mac_addr,
.config_bssid = rt73usb_config_bssid,
@@ -453,22 +627,8 @@
+ .configure_filter = rt73usb_configure_filter,
+#endif
.config_type = rt73usb_config_type,
+ .config_preamble = rt73usb_config_preamble,
.config = rt73usb_config,
- };
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00config.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00config.c
-@@ -50,6 +50,11 @@
- {
- if (type != INVALID_INTERFACE)
- rt2x00dev->ops->lib->config_type(rt2x00dev, type);
-+#ifdef RT2X00_ADAPT_OLD_FILTER_API
-+ else if (is_monitor_present(&rt2x00dev->interface))
-+ rt2x00dev->ops->lib->config_type(rt2x00dev,
-+ IEEE80211_IF_TYPE_MNTR);
-+#endif
- }
-
- void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -34,6 +34,28 @@
@@ -668,7 +828,18 @@
{
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -280,9 +280,14 @@
+@@ -156,8 +156,10 @@
+ cancel_work_sync(&rt2x00dev->beacon_work);
+ if (work_pending(&rt2x00dev->filter_work))
+ cancel_work_sync(&rt2x00dev->filter_work);
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ if (work_pending(&rt2x00dev->config_work))
+ cancel_work_sync(&rt2x00dev->config_work);
++#endif
+
+ /*
+ * Stop the TX queues.
+@@ -422,11 +424,17 @@
struct rt2x00_dev *rt2x00dev =
container_of(work, struct rt2x00_dev, filter_work);
@@ -685,4 +856,37 @@
+ 0, NULL);
}
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ static void rt2x00lib_configuration_scheduled(struct work_struct *work)
+ {
+ struct rt2x00_dev *rt2x00dev =
+@@ -436,6 +444,7 @@
+ rt2x00mac_erp_ie_changed(rt2x00dev->hw,
+ IEEE80211_ERP_CHANGE_PREAMBLE, 0, preamble);
+ }
++#endif
+
/*
+ * Interrupt context handlers.
+@@ -1150,7 +1159,9 @@
+ */
+ INIT_WORK(&rt2x00dev->beacon_work, rt2x00lib_beacondone_scheduled);
+ INIT_WORK(&rt2x00dev->filter_work, rt2x00lib_packetfilter_scheduled);
++#ifndef RT2X00_SYNTHESISE_ERP_IE_CHANGED
+ INIT_WORK(&rt2x00dev->config_work, rt2x00lib_configuration_scheduled);
++#endif
+ INIT_DELAYED_WORK(&rt2x00dev->link.work, rt2x00lib_link_tuner);
+
+ /*
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00config.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt2x00config.c
+@@ -227,6 +227,9 @@
+
+ libconf.basic_rates =
+ DEVICE_GET_RATE_FIELD(rate->val, RATEMASK) & DEV_BASIC_RATEMASK;
++#ifdef RT2X00_SYNTHESISE_ERP_IE_CHANGED
++ libconf.preamble = !!DEVICE_GET_RATE_FIELD(rate->val2, PREAMBLE);
++#endif
+ }
+
+ if (flags & CONFIG_UPDATE_CHANNEL) {
Modified: unstable/rt2x00/debian/patches/004_fix_filter_flags.diff
===================================================================
--- unstable/rt2x00/debian/patches/004_fix_filter_flags.diff 2007-11-12 00:03:11 UTC (rev 84)
+++ unstable/rt2x00/debian/patches/004_fix_filter_flags.diff 2007-11-12 00:28:05 UTC (rev 85)
@@ -1,32 +1,6 @@
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2400pci.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2400pci.c
-@@ -1511,8 +1511,8 @@
- * - Some filters are set based on interface type.
- */
- *total_flags |= FIF_ALLMULTI;
-- if (changed_flags & FIF_OTHER_BSS ||
-- changed_flags & FIF_PROMISC_IN_BSS)
-+ if (*total_flags & FIF_OTHER_BSS ||
-+ *total_flags & FIF_PROMISC_IN_BSS)
- *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
- if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
- *total_flags |= FIF_PROMISC_IN_BSS;
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500pci.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2500pci.c
-@@ -1844,8 +1844,8 @@
- */
- if (mc_count)
- *total_flags |= FIF_ALLMULTI;
-- if (changed_flags & FIF_OTHER_BSS ||
-- changed_flags & FIF_PROMISC_IN_BSS)
-+ if (*total_flags & FIF_OTHER_BSS ||
-+ *total_flags & FIF_PROMISC_IN_BSS)
- *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
- if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
- *total_flags |= FIF_PROMISC_IN_BSS;
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500usb.c
+++ rt2x00/drivers/net/wireless/rt2x00/rt2500usb.c
-@@ -1594,8 +1594,14 @@
+@@ -1616,8 +1616,14 @@
{
struct rt2x00_dev *rt2x00dev = hw->priv;
struct interface *intf = &rt2x00dev->interface;
@@ -41,19 +15,8 @@
/*
* Mask off any flags we are going to ignore from
* the total_flags field.
-@@ -1616,8 +1622,8 @@
+@@ -1649,7 +1655,8 @@
*/
- if (mc_count)
- *total_flags |= FIF_ALLMULTI;
-- if (changed_flags & FIF_OTHER_BSS ||
-- changed_flags & FIF_PROMISC_IN_BSS)
-+ if (*total_flags & FIF_OTHER_BSS ||
-+ *total_flags & FIF_PROMISC_IN_BSS)
- *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
- if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
- *total_flags |= FIF_PROMISC_IN_BSS;
-@@ -1627,7 +1633,8 @@
- */
if (intf->filter == *total_flags)
return;
- intf->filter = *total_flags;
@@ -62,7 +25,7 @@
/*
* When in atomic context, reschedule and let rt2x00lib
-@@ -1638,6 +1645,7 @@
+@@ -1660,6 +1667,7 @@
return;
}
@@ -70,7 +33,7 @@
/*
* Start configuration steps.
* Note that the version error will always be dropped
-@@ -1646,18 +1654,18 @@
+@@ -1668,18 +1676,18 @@
*/
rt2500usb_register_read(rt2x00dev, TXRX_CSR2, ®);
rt2x00_set_field16(®, TXRX_CSR2_DROP_CRC,
@@ -95,22 +58,9 @@
rt2x00_set_field16(®, TXRX_CSR2_DROP_BROADCAST, 0);
rt2500usb_register_write(rt2x00dev, TXRX_CSR2, reg);
}
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt61pci.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt61pci.c
-@@ -2403,8 +2403,8 @@
- */
- if (mc_count)
- *total_flags |= FIF_ALLMULTI;
-- if (changed_flags & FIF_OTHER_BSS ||
-- changed_flags & FIF_PROMISC_IN_BSS)
-+ if (*total_flags & FIF_OTHER_BSS ||
-+ *total_flags & FIF_PROMISC_IN_BSS)
- *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
- if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
- *total_flags |= FIF_PROMISC_IN_BSS;
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt73usb.c
+++ rt2x00/drivers/net/wireless/rt2x00/rt73usb.c
-@@ -1848,8 +1848,14 @@
+@@ -1851,8 +1851,14 @@
{
struct rt2x00_dev *rt2x00dev = hw->priv;
struct interface *intf = &rt2x00dev->interface;
@@ -125,19 +75,8 @@
/*
* Mask off any flags we are going to ignore from
* the total_flags field.
-@@ -1870,8 +1876,8 @@
+@@ -1884,7 +1890,8 @@
*/
- if (mc_count)
- *total_flags |= FIF_ALLMULTI;
-- if (changed_flags & FIF_OTHER_BSS ||
-- changed_flags & FIF_PROMISC_IN_BSS)
-+ if (*total_flags & FIF_OTHER_BSS ||
-+ *total_flags & FIF_PROMISC_IN_BSS)
- *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
- if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
- *total_flags |= FIF_PROMISC_IN_BSS;
-@@ -1881,7 +1887,8 @@
- */
if (intf->filter == *total_flags)
return;
- intf->filter = *total_flags;
@@ -146,7 +85,7 @@
/*
* When in atomic context, reschedule and let rt2x00lib
-@@ -1892,6 +1899,7 @@
+@@ -1895,6 +1902,7 @@
return;
}
@@ -154,7 +93,7 @@
/*
* Start configuration steps.
* Note that the version error will always be dropped
-@@ -1900,18 +1908,18 @@
+@@ -1903,18 +1911,18 @@
*/
rt73usb_register_read(rt2x00dev, TXRX_CSR0, ®);
rt2x00_set_field32(®, TXRX_CSR0_DROP_CRC,
@@ -179,21 +118,9 @@
rt2x00_set_field32(®, TXRX_CSR0_DROP_BROADCAST, 0);
rt2x00_set_field32(®, TXRX_CSR0_DROP_ACK_CTS, 1);
rt73usb_register_write(rt2x00dev, TXRX_CSR0, reg);
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00dev.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -281,8 +281,7 @@
- container_of(work, struct rt2x00_dev, filter_work);
-
- rt2x00dev->ops->hw->configure_filter(rt2x00dev->hw,
-- rt2x00dev->interface.filter,
-- &rt2x00dev->interface.filter,
-+ FIF_RT2X00_USE_CURRENT, NULL,
- 0, NULL);
- }
-
--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00.h
+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -315,6 +315,11 @@
+@@ -393,6 +393,11 @@
unsigned int filter;
};
@@ -205,3 +132,26 @@
static inline int is_interface_present(struct interface *intf)
{
return !!intf->id;
+--- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00dev.c
++++ rt2x00/drivers/net/wireless/rt2x00/rt2x00dev.c
+@@ -421,18 +421,10 @@
+ {
+ struct rt2x00_dev *rt2x00dev =
+ container_of(work, struct rt2x00_dev, filter_work);
+- unsigned int filter = rt2x00dev->interface.filter;
+-
+- /*
+- * Since we had stored the filter inside interface.filter,
+- * we should now clear that field. Otherwise the driver will
+- * assume nothing has changed (*total_flags will be compared
+- * to interface.filter to determine if any action is required).
+- */
+- rt2x00dev->interface.filter = 0;
+
+ rt2x00dev->ops->hw->configure_filter(rt2x00dev->hw,
+- filter, &filter, 0, NULL);
++ FIF_RT2X00_USE_CURRENT, NULL,
++ 0, NULL);
+ }
+
+ static void rt2x00lib_configuration_scheduled(struct work_struct *work)
Deleted: unstable/rt2x00/debian/patches/005_fix_probe_148f_2573.diff
===================================================================
--- unstable/rt2x00/debian/patches/005_fix_probe_148f_2573.diff 2007-11-12 00:03:11 UTC (rev 84)
+++ unstable/rt2x00/debian/patches/005_fix_probe_148f_2573.diff 2007-11-12 00:28:05 UTC (rev 85)
@@ -1,72 +0,0 @@
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500usb.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2500usb.c
-@@ -1278,6 +1278,7 @@
- static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev)
- {
- u16 reg;
-+ __le32 reg32;
- u16 value;
- u16 eeprom;
-
-@@ -1291,12 +1292,13 @@
- */
- value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RF_TYPE);
- rt2500usb_register_read(rt2x00dev, MAC_CSR0, ®);
-- rt2x00_set_chip(rt2x00dev, RT2570, value, reg);
--
-- if (rt2x00_rev(&rt2x00dev->chip, 0xffff0)) {
-+ rt2500usb_register_multiread(rt2x00dev, MAC_RT73_CSR0,
-+ ®32, sizeof(reg32));
-+ if ((reg & 0xfff0) || (le32_to_cpu(reg32) & 0xffff0) == 0x25730) {
- ERROR(rt2x00dev, "Invalid RT chipset detected.\n");
- return -ENODEV;
- }
-+ rt2x00_set_chip(rt2x00dev, RT2570, value, reg);
-
- if (!rt2x00_rf(&rt2x00dev->chip, RF2522) &&
- !rt2x00_rf(&rt2x00dev->chip, RF2523) &&
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2500usb.h
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2500usb.h
-@@ -73,6 +73,11 @@
- #define MAC_CSR0 0x0400
-
- /*
-+ * MAC_RT73_CSR0: ASIC revision number in RT73, for use when probing.
-+ */
-+#define MAC_RT73_CSR0 0x3000
-+
-+/*
- * MAC_CSR1: System control.
- * SOFT_RESET: Software reset, 1: reset, 0: normal.
- * BBP_RESET: Hardware reset, 1: reset, 0, release.
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt2x00.h
-+++ rt2x00/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -811,11 +811,6 @@
- return chipset->rev;
- }
-
--static inline u16 rt2x00_rev(const struct rt2x00_chip *chipset, const u32 mask)
--{
-- return chipset->rev & mask;
--}
--
- /*
- * Duration calculations
- * The rate variable passed is: 100kbs.
---- rt2x00.orig/drivers/net/wireless/rt2x00/rt73usb.c
-+++ rt2x00/drivers/net/wireless/rt2x00/rt73usb.c
-@@ -1530,12 +1530,11 @@
- */
- value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RF_TYPE);
- rt73usb_register_read(rt2x00dev, MAC_CSR0, ®);
-- rt2x00_set_chip(rt2x00dev, RT2571, value, reg);
--
-- if (!rt2x00_rev(&rt2x00dev->chip, 0x25730)) {
-+ if ((reg & 0xffff0) != 0x25730) {
- ERROR(rt2x00dev, "Invalid RT chipset detected.\n");
- return -ENODEV;
- }
-+ rt2x00_set_chip(rt2x00dev, RT2571, value, reg);
-
- if (!rt2x00_rf(&rt2x00dev->chip, RF5226) &&
- !rt2x00_rf(&rt2x00dev->chip, RF2528) &&
Modified: unstable/rt2x00/debian/patches/series
===================================================================
--- unstable/rt2x00/debian/patches/series 2007-11-12 00:03:11 UTC (rev 84)
+++ unstable/rt2x00/debian/patches/series 2007-11-12 00:28:05 UTC (rev 85)
@@ -1,4 +1,3 @@
002_out_of_tree.diff
004_fix_filter_flags.diff
003_workaround_mac80211_changes.diff
-005_fix_probe_148f_2573.diff
More information about the Pkg-ralink-commits
mailing list