diff options
author | David S. Miller <davem@davemloft.net> | 2008-06-10 04:54:31 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-06-10 04:54:31 -0400 |
commit | 788c0a53164c05c5ccdb1472474372b72ba74644 (patch) | |
tree | 5f274102e3dc4bcca6cb3a695aa2c8228ad5fc4f /drivers/net/wireless/rt2x00/rt2x00.h | |
parent | e64bda89b8fe81cce9b4a20885d2c204c2d52532 (diff) | |
parent | 78cf07472f0ede8394bacc4bc02354505080cfe1 (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.h | 52 |
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 | */ | ||
943 | void 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 | */ | ||
958 | void 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 | */ | ||
969 | void 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 | */ |
976 | int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb, | 1001 | int rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb); |
977 | struct ieee80211_tx_control *control); | ||
978 | int rt2x00mac_start(struct ieee80211_hw *hw); | 1002 | int rt2x00mac_start(struct ieee80211_hw *hw); |
979 | void rt2x00mac_stop(struct ieee80211_hw *hw); | 1003 | void rt2x00mac_stop(struct ieee80211_hw *hw); |
980 | int rt2x00mac_add_interface(struct ieee80211_hw *hw, | 1004 | int rt2x00mac_add_interface(struct ieee80211_hw *hw, |