~ubuntu-branches/ubuntu/hardy/linux-backports-modules-2.6.24/hardy-security

« back to all changes in this revision

Viewing changes to updates/wireless/iwlwifi/mac80211/pending/0009-mac80211-HT-add-IEEE-802.11n-TX_AMPDU-API.patch

  • Committer: Bazaar Package Importer
  • Author(s): , Ben Collins
  • Date: 2008-04-02 06:59:04 UTC
  • Revision ID: james.westby@ubuntu.com-20080402065904-e5knh2gn2hms3xbb
Tags: 2.6.24-14.11
[Ben Collins]

* iwlwifi: Update to iwlwifi-1.2.25 and mac80211-10.0.4
  - LP: #200950
* ubuntu: Slight cleanups to module hiearchy and Makefiles
* mac80211: Enable LED triggers
* iwlwifi: Add LED trigger support (rx and tx only)
  - LP: #176090

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
From fc5dcdadd03063981268f4df8ef7ffd9519e25f9 Mon Sep 17 00:00:00 2001
 
2
From: Ron Rindjunsky <ron.rindjunsky@intel.com>
 
3
Date: Sat, 30 Jun 2007 05:03:11 +0800
 
4
Subject: [PATCH] mac80211: [HT] add IEEE 802.11n TX_AMPDU API
 
5
 
 
6
This patch add TX AMPDU api
 
7
 
 
8
Signed-of-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
 
9
Signed-of-by: Tomas Winkler <tomas.winkler@intel.com>
 
10
Signed-of-by: Zhu Yi <yi.zhu@intel.com>
 
11
---
 
12
 include/net/mac80211.h |   64 +++++++++++++++++++++++++++++++++++++----------
 
13
 1 files changed, 50 insertions(+), 14 deletions(-)
 
14
 
 
15
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
 
16
index e5be8d3..99d27ec 100644
 
17
--- a/include/net/mac80211.h
 
18
+++ b/include/net/mac80211.h
 
19
@@ -718,36 +718,46 @@ struct ieee80211_ops {
 
20
         * Must be atomic. */
 
21
        u64 (*get_tsf)(struct ieee80211_hw *hw);
 
22
 
 
23
-       /* Call low level driver with 11n Block Ack action */
 
24
-       int (*handle_ba_action)(struct ieee80211_hw *hw,
 
25
-                               struct ieee80211_mgmt *mgmt);
 
26
-
 
27
        /* Reset the TSF timer and allow firmware/hardware to synchronize with
 
28
         * other STAs in the IBSS. This is only used in IBSS mode. This
 
29
         * function is optional if the firmware/hardware takes full care of
 
30
         * TSF synchronization. */
 
31
        void (*reset_tsf)(struct ieee80211_hw *hw);
 
32
 
 
33
-       /* Configure ht parameters. */
 
34
-       int (*conf_ht)(struct ieee80211_hw *hw,
 
35
-                      struct ieee80211_ht_capability *ht_cap_param,
 
36
-                      struct ieee80211_ht_additional_info *ht_extra_param);
 
37
-
 
38
-       /* Get ht capabilities from the device */
 
39
-       void (*get_ht_capab)(struct ieee80211_hw *hw,
 
40
-                            struct ieee80211_ht_capability *ht_cap_param);
 
41
-
 
42
        /* Setup beacon data for IBSS beacons. Unlike access point (Master),
 
43
         * IBSS uses a fixed beacon frame which is configured using this
 
44
         * function. This handler is required only for IBSS mode. */
 
45
        int (*beacon_update)(struct ieee80211_hw *hw,
 
46
-                            struct sk_buff *skb,
 
47
+                               struct sk_buff *skb,
 
48
                             struct ieee80211_tx_control *control);
 
49
 
 
50
        /* Determine whether the last IBSS beacon was sent by us. This is
 
51
         * needed only for IBSS mode and the result of this function is used to
 
52
         * determine whether to reply to Probe Requests. */
 
53
        int (*tx_last_beacon)(struct ieee80211_hw *hw);
 
54
+
 
55
+       /* Configure ht parameters. */
 
56
+       int (*conf_ht)(struct ieee80211_hw *hw,
 
57
+                       struct ieee80211_ht_capability *ht_cap_param,
 
58
+                       struct ieee80211_ht_additional_info *ht_extra_param);
 
59
+
 
60
+       /* Get ht capabilities from the device */
 
61
+       void (*get_ht_capab)(struct ieee80211_hw *hw,
 
62
+                               struct ieee80211_ht_capability *ht_cap_param);
 
63
+
 
64
+
 
65
+       /* move to Tx aggregation for a certain DA/TID.
 
66
+        * return the starting frame's sequence number in start_seq_nums.
 
67
+        * If aggregation can not be started on a certain TID return error,
 
68
+        * else return success */
 
69
+       int (*ht_tx_agg_start)(struct ieee80211_hw *hw, u8 *da, u16 tid, u16 *start_seq_num);
 
70
+
 
71
+       /* stop Tx aggregation for a certain DA/TID.
 
72
+        * If aggregation can not be stopped on a certain TID return error,
 
73
+        * else return success. generator field gives the HW an indication who
 
74
+        * requests to stop the aggregation - recipient (0) or initiator (1)
 
75
+        */
 
76
+       int (*ht_tx_agg_stop)(struct ieee80211_hw *hw, u8 *da, u16 tid, int generator);
 
77
 };
 
78
 
 
79
 /* Allocate a new hardware device. This must be called once for each
 
80
@@ -1000,6 +1010,32 @@ void ieee80211_stop_queues(struct ieee80211_hw *hw);
 
81
 void ieee80211_wake_queues(struct ieee80211_hw *hw);
 
82
 
 
83
 /**
 
84
+ * ieee80211_start_BA_session - low level driver asks to start a BA session
 
85
+ * @hw: pointer as obtained from ieee80211_alloc_hw().
 
86
+ * @da: destination address of the BA session recipient
 
87
+ * @tid: the desired TID to BA on.
 
88
+ * @return: error if no sta with matching da found, success otherwise
 
89
+ *
 
90
+ * although the low level driver can estimate the need to start aggregation on a
 
91
+ * certain DA/TID, the session itself should be managed by the stack. this function
 
92
+ * should be called by low level driver to start the BA session
 
93
+ */
 
94
+int ieee80211_start_BA_session(struct ieee80211_hw *hw, u8 *da, u16 tid);
 
95
+
 
96
+/**
 
97
+ * ieee80211_stop_BA_session - low level driver asks to stop a BA session
 
98
+ * @hw: pointer as obtained from ieee80211_alloc_hw().
 
99
+ * @da: destination address of the BA session recipient
 
100
+ * @tid: the desired TID to stop BA.
 
101
+ * @return: error if no sta with matching da found, success otherwise
 
102
+ *
 
103
+ * although the low level driver can estimate the need to stop aggregation on a
 
104
+ * certain DA/TSID, the session itself should be managed by the stack. this function
 
105
+ * should be called by low level driver to stop the BA session
 
106
+ */
 
107
+int ieee80211_stop_BA_session(struct ieee80211_hw *hw, u8 *da, u16 tid);
 
108
+
 
109
+/**
 
110
  * ieee80211_get_mc_list_item - iteration over items in multicast list
 
111
  * @hw: pointer as obtained from ieee80211_alloc_hw().
 
112
  * @prev: value returned by previous call to ieee80211_get_mc_list_item() or
 
113
-- 
 
114
1.5.2
 
115