aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00.h
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-06-10 04:54:31 -0400
committerDavid S. Miller <davem@davemloft.net>2008-06-10 04:54:31 -0400
commit788c0a53164c05c5ccdb1472474372b72ba74644 (patch)
tree5f274102e3dc4bcca6cb3a695aa2c8228ad5fc4f /drivers/net/wireless/rt2x00/rt2x00.h
parente64bda89b8fe81cce9b4a20885d2c204c2d52532 (diff)
parent78cf07472f0ede8394bacc4bc02354505080cfe1 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Conflicts: drivers/net/ps3_gelic_wireless.c drivers/net/wireless/libertas/main.c
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00.h')
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00.h52
1 files changed, 38 insertions, 14 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index 79bd9c9f8963..5c7220ea46e6 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -44,7 +44,7 @@
44/* 44/*
45 * Module information. 45 * Module information.
46 */ 46 */
47#define DRV_VERSION "2.1.5" 47#define DRV_VERSION "2.1.6"
48#define DRV_PROJECT "http://rt2x00.serialmonkey.com" 48#define DRV_PROJECT "http://rt2x00.serialmonkey.com"
49 49
50/* 50/*
@@ -540,11 +540,9 @@ struct rt2x00lib_ops {
540 */ 540 */
541 void (*write_tx_desc) (struct rt2x00_dev *rt2x00dev, 541 void (*write_tx_desc) (struct rt2x00_dev *rt2x00dev,
542 struct sk_buff *skb, 542 struct sk_buff *skb,
543 struct txentry_desc *txdesc, 543 struct txentry_desc *txdesc);
544 struct ieee80211_tx_control *control);
545 int (*write_tx_data) (struct rt2x00_dev *rt2x00dev, 544 int (*write_tx_data) (struct rt2x00_dev *rt2x00dev,
546 struct data_queue *queue, struct sk_buff *skb, 545 struct data_queue *queue, struct sk_buff *skb);
547 struct ieee80211_tx_control *control);
548 int (*get_tx_data_len) (struct rt2x00_dev *rt2x00dev, 546 int (*get_tx_data_len) (struct rt2x00_dev *rt2x00dev,
549 struct sk_buff *skb); 547 struct sk_buff *skb);
550 void (*kick_tx_queue) (struct rt2x00_dev *rt2x00dev, 548 void (*kick_tx_queue) (struct rt2x00_dev *rt2x00dev,
@@ -592,6 +590,7 @@ struct rt2x00_ops {
592 const unsigned int max_ap_intf; 590 const unsigned int max_ap_intf;
593 const unsigned int eeprom_size; 591 const unsigned int eeprom_size;
594 const unsigned int rf_size; 592 const unsigned int rf_size;
593 const unsigned int tx_queues;
595 const struct data_queue_desc *rx; 594 const struct data_queue_desc *rx;
596 const struct data_queue_desc *tx; 595 const struct data_queue_desc *tx;
597 const struct data_queue_desc *bcn; 596 const struct data_queue_desc *bcn;
@@ -927,6 +926,39 @@ static inline u16 get_duration_res(const unsigned int size, const u8 rate)
927} 926}
928 927
929/** 928/**
929 * rt2x00queue_create_tx_descriptor - Create TX descriptor from mac80211 input
930 * @entry: The entry which will be used to transfer the TX frame.
931 * @txdesc: rt2x00 TX descriptor which will be initialized by this function.
932 *
933 * This function will initialize the &struct txentry_desc based on information
934 * from mac80211. This descriptor can then be used by rt2x00lib and the drivers
935 * to correctly initialize the hardware descriptor.
936 * Note that before calling this function the skb->cb array must be untouched
937 * by rt2x00lib. Only after this function completes will it be save to
938 * overwrite the skb->cb information.
939 * The reason for this is that mac80211 writes its own tx information into
940 * the skb->cb array, and this function will use that information to initialize
941 * the &struct txentry_desc structure.
942 */
943void rt2x00queue_create_tx_descriptor(struct queue_entry *entry,
944 struct txentry_desc *txdesc);
945
946/**
947 * rt2x00queue_write_tx_descriptor - Write TX descriptor to hardware
948 * @entry: The entry which will be used to transfer the TX frame.
949 * @txdesc: TX descriptor which will be used to write hardware descriptor
950 *
951 * This function will write a TX descriptor initialized by
952 * &rt2x00queue_create_tx_descriptor to the hardware. After this call
953 * has completed the frame is now owned by the hardware, the hardware
954 * queue will have automatically be kicked unless this frame was generated
955 * by rt2x00lib, in which case the frame is "special" and must be kicked
956 * by the caller.
957 */
958void rt2x00queue_write_tx_descriptor(struct queue_entry *entry,
959 struct txentry_desc *txdesc);
960
961/**
930 * rt2x00queue_get_queue - Convert queue index to queue pointer 962 * rt2x00queue_get_queue - Convert queue index to queue pointer
931 * @rt2x00dev: Pointer to &struct rt2x00_dev. 963 * @rt2x00dev: Pointer to &struct rt2x00_dev.
932 * @queue: rt2x00 queue index (see &enum data_queue_qid). 964 * @queue: rt2x00 queue index (see &enum data_queue_qid).
@@ -964,17 +996,9 @@ void rt2x00lib_rxdone(struct queue_entry *entry,
964 struct rxdone_entry_desc *rxdesc); 996 struct rxdone_entry_desc *rxdesc);
965 997
966/* 998/*
967 * TX descriptor initializer
968 */
969void rt2x00lib_write_tx_desc(struct rt2x00_dev *rt2x00dev,
970 struct sk_buff *skb,
971 struct ieee80211_tx_control *control);
972
973/*
974 * mac80211 handlers. 999 * mac80211 handlers.
975 */ 1000 */
976int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb, 1001int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb);
977 struct ieee80211_tx_control *control);
978int rt2x00mac_start(struct ieee80211_hw *hw); 1002int rt2x00mac_start(struct ieee80211_hw *hw);
979void rt2x00mac_stop(struct ieee80211_hw *hw); 1003void rt2x00mac_stop(struct ieee80211_hw *hw);
980int rt2x00mac_add_interface(struct ieee80211_hw *hw, 1004int rt2x00mac_add_interface(struct ieee80211_hw *hw,