summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rtl818x/rtl8187.h
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2009-01-23 11:40:22 -0600
committerJohn W. Linville <linville@tuxdriver.com>2009-01-29 16:01:30 -0500
commit2f47690ed42a85820783dee7f16ae47edadf8fad (patch)
treeb16e286a5e306bd178cbaff061274d255d5cb562 /drivers/net/wireless/rtl818x/rtl8187.h
parent2a57cf3e83f89150f2ac9b6f01caf3fcdbb36486 (diff)
rtl8187: Fix driver to return TX retry info for RTL8187L
Current code for the RTL8187 is not returning valid retry information, thus the rate-setting mechanism is not functioning. As a further complication, this info is only obtained by reading a register, which cannot be read while in interrupt context. This patch implements the TX status return to mac80211 through the use of a work queue. One additional problem is that the driver currently enables the rate fallback mechanism of the device, which conflicts with the mac80211 rate-setting algorithm. This version of the patch disables rate fallback. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Tested-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br> Tested-by: Martín Ernesto Barreyro <barreyromartin@gmail.com> Acked-by: Hin-Tak Leung <htl10@users.sourceforge.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rtl818x/rtl8187.h')
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/wireless/rtl818x/rtl8187.h b/drivers/net/wireless/rtl818x/rtl8187.h
index 3b1e1c2aad2..9718f61809c 100644
--- a/drivers/net/wireless/rtl818x/rtl8187.h
+++ b/drivers/net/wireless/rtl818x/rtl8187.h
@@ -100,6 +100,8 @@ struct rtl8187_priv {
struct usb_device *udev;
u32 rx_conf;
struct usb_anchor anchored;
+ struct delayed_work work;
+ struct ieee80211_hw *dev;
u16 txpwr_base;
u8 asic_rev;
u8 is_rtl8187b;
@@ -117,7 +119,7 @@ struct rtl8187_priv {
struct {
__le64 buf;
struct sk_buff_head queue;
- } b_tx_status;
+ } b_tx_status; /* This queue is used by both -b and non-b devices */
};
void rtl8187_write_phy(struct ieee80211_hw *dev, u8 addr, u32 data);