summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00queue.h
diff options
context:
space:
mode:
authorHelmut Schaa2011-03-03 19:42:35 +0100
committerJohn W. Linville2011-03-04 20:06:47 +0100
commit26a1d07f4176099a7b6f45009dad054e6ad5b7e4 (patch)
tree432cabdfd4ffb4dcdd6121e4898598e2a5be842e /drivers/net/wireless/rt2x00/rt2x00queue.h
parentrt2x00: Generate sw sequence numbers only for devices that need it (diff)
downloadkernel-qcow2-linux-26a1d07f4176099a7b6f45009dad054e6ad5b7e4.tar.gz
kernel-qcow2-linux-26a1d07f4176099a7b6f45009dad054e6ad5b7e4.tar.xz
kernel-qcow2-linux-26a1d07f4176099a7b6f45009dad054e6ad5b7e4.zip
rt2x00: Optimize TX descriptor handling
HT and no-HT rt2x00 devices use a partly different TX descriptor. Optimize the tx desciptor memory layout by putting the PLCP and HT substructs into a union and introduce a new driver flag to decide which TX desciptor format is used by the device. This saves us the expensive PLCP calculation fOr HT devices and the HT descriptor setup on no-HT devices. Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00queue.h')
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00queue.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.h b/drivers/net/wireless/rt2x00/rt2x00queue.h
index fab8e2687f29..330552046440 100644
--- a/drivers/net/wireless/rt2x00/rt2x00queue.h
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.h
@@ -305,20 +305,27 @@ struct txentry_desc {
u16 length;
u16 header_length;
- u16 length_high;
- u16 length_low;
- u16 signal;
- u16 service;
-
- u16 mcs;
- u16 stbc;
- u16 ba_size;
+ union {
+ struct {
+ u16 length_high;
+ u16 length_low;
+ u16 signal;
+ u16 service;
+ } plcp;
+
+ struct {
+ u16 mcs;
+ u16 stbc;
+ u16 ba_size;
+ u16 mpdu_density;
+ short txop;
+ } ht;
+ } u;
+
u16 rate_mode;
- u16 mpdu_density;
short retry_limit;
short ifs;
- short txop;
enum cipher cipher;
u16 key_idx;