summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/rt2x00/rt2800.h
diff options
context:
space:
mode:
authorHelmut Schaa <helmut.schaa@googlemail.com>2012-03-09 18:31:50 +0400
committerJohn W. Linville <linville@tuxdriver.com>2012-03-12 22:21:49 +0400
commit290d60891eb659e52204ec209e08cc0cabc5b99f (patch)
treefcca74bae4b2431424bcb49f5d57bf01fa1bad13 /drivers/net/wireless/rt2x00/rt2800.h
parente9219779f943dfa1010ccbb63de14d49a47c43ee (diff)
downloadlinux-290d60891eb659e52204ec209e08cc0cabc5b99f.tar.xz
rt2x00: Fix beacon skew in rt2800pci
rt2800pci is suffering from beacon skew in AP mode. Some powersaving clients (like VOIP phones) are getting into trouble after some time when the beacon skew is getting too big. The ralink legacy drivers contain a function that indicates that the beacon timer is off by 1us per tbtt. And this function works around that by reducing the beacon interval for every 64th beacon transmission by 64us (the smallest possible value). Do the same in rt2800pci. This allows proper powersaving when rt2800pci is used in AP mode. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2800.h')
-rw-r--r--drivers/net/wireless/rt2x00/rt2800.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
index e5c05d8c7448..063bfa8b91f4 100644
--- a/drivers/net/wireless/rt2x00/rt2800.h
+++ b/drivers/net/wireless/rt2x00/rt2800.h
@@ -2475,6 +2475,12 @@ struct mac_iveiv_entry {
#define EIRP_MAX_TX_POWER_LIMIT 0x50
/*
+ * Number of TBTT intervals after which we have to adjust
+ * the hw beacon timer.
+ */
+#define BCN_TBTT_OFFSET 64
+
+/*
* RT2800 driver data structure
*/
struct rt2800_drv_data {
@@ -2484,6 +2490,7 @@ struct rt2800_drv_data {
u8 bbp26;
u8 txmixer_gain_24g;
u8 txmixer_gain_5g;
+ unsigned int tbtt_tick;
};
#endif /* RT2800_H */