X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=package%2Fb43%2Fsrc%2Fdma.h;h=d1eb5c0848a522edb6a9348366070e4e46980ddd;hb=b2a1f5e79bd22acba7d88089904cfa78adc5b46f;hp=c0d6b69e650128fa68dc7825f8cf00c10e23f073;hpb=e8620fa5aa1e1cc71f909f938c01207f22aa1b68;p=openwrt%2Fstaging%2Fflorian.git diff --git a/package/b43/src/dma.h b/package/b43/src/dma.h index c0d6b69e65..d1eb5c0848 100644 --- a/package/b43/src/dma.h +++ b/package/b43/src/dma.h @@ -181,7 +181,6 @@ struct b43_dmadesc_meta { dma_addr_t dmaaddr; /* ieee80211 TX status. Only used once per 802.11 frag. */ bool is_last_fragment; - struct ieee80211_tx_status txstat; }; struct b43_dmaring; @@ -245,6 +244,9 @@ struct b43_dmaring { enum b43_dmatype type; /* Boolean. Is this ring stopped at ieee80211 level? */ bool stopped; + /* The QOS priority assigned to this ring. Only used for TX rings. + * This is the mac80211 "queue" value. */ + u8 queue_prio; /* Lock, only used for TX. */ spinlock_t lock; struct b43_wldev *dev; @@ -253,7 +255,13 @@ struct b43_dmaring { int max_used_slots; /* Last time we injected a ring overflow. */ unsigned long last_injected_overflow; -#endif /* CONFIG_B43_DEBUG */ + /* Statistics: Number of successfully transmitted packets */ + u64 nr_succeed_tx_packets; + /* Statistics: Number of failed TX packets */ + u64 nr_failed_tx_packets; + /* Statistics: Total number of TX plus all retries. */ + u64 nr_total_packet_tries; +#endif /* CONFIG_B43_DEBUG */ }; static inline u32 b43_dma_read(struct b43_dmaring *ring, u16 offset) @@ -276,10 +284,13 @@ void b43_dma_get_tx_stats(struct b43_wldev *dev, struct ieee80211_tx_queue_stats *stats); int b43_dma_tx(struct b43_wldev *dev, - struct sk_buff *skb, struct ieee80211_tx_control *ctl); + struct sk_buff *skb); void b43_dma_handle_txstatus(struct b43_wldev *dev, const struct b43_txstatus *status); void b43_dma_rx(struct b43_dmaring *ring); +void b43_dma_direct_fifo_rx(struct b43_wldev *dev, + unsigned int engine_index, bool enable); + #endif /* B43_DMA_H_ */