X-Git-Url: https://jxself.org/git/?p=carl9170fw.git;a=blobdiff_plain;f=carlfw%2Finclude%2Fwl.h;h=9064dcb2c6af35e28691f1f147e27a86be293aec;hp=577fd05f31b789d778881441fad1b76de2f90f77;hb=35cac8dcfa9d01fff0c929f0e2b9cc38fc919589;hpb=19e4d682fca010ef72e0a304335910f670c2268a diff --git a/carlfw/include/wl.h b/carlfw/include/wl.h index 577fd05..9064dcb 100644 --- a/carlfw/include/wl.h +++ b/carlfw/include/wl.h @@ -6,7 +6,7 @@ * Copyright (c) 2000-2005 ZyDAS Technology Corporation * Copyright (c) 2007-2009 Atheros Communications, Inc. * Copyright 2009 Johannes Berg - * Copyright 2009, 2010 Christian Lamparter + * Copyright 2009-2011 Christian Lamparter * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -42,32 +42,25 @@ static inline __inline void set_wlan_txq_dma_curr_addr(const unsigned int q, con set(AR9170_MAC_REG_DMA_TXQ_CURR_ADDR + (q << 3), v); } -static inline __inline struct dma_desc *get_wlan_txq_dma_addr(const unsigned int q) +static inline __inline volatile struct dma_desc *get_wlan_txq_dma_addr(const unsigned int q) { return getp(AR9170_MAC_REG_DMA_TXQ_ADDR + (q << 3)); } -static inline __inline struct dma_desc *get_wlan_txq_addr(const unsigned int q) +static inline __inline volatile struct dma_desc *get_wlan_txq_addr(const unsigned int q) { return getp(AR9170_MAC_REG_DMA_TXQ_CURR_ADDR + (q << 3)); } -static inline __inline void _wlan_trigger(const uint32_t queue_bit) +static inline __inline volatile struct dma_desc *get_wlan_txq_last_addr(const unsigned int q) { - set(AR9170_MAC_REG_DMA_TRIGGER, queue_bit); + return getp(AR9170_MAC_REG_DMA_TXQ_LAST_ADDR + (q << 2)); } -#ifdef CONFIG_CARL9170FW_DELAYED_TX static inline __inline void wlan_trigger(const uint32_t queue_bit) { - fw.wlan.tx_trigger |= queue_bit; -} -#else -static inline __inline void wlan_trigger(const uint32_t queue_bit) -{ - _wlan_trigger(queue_bit); + set(AR9170_MAC_REG_DMA_TRIGGER, queue_bit); } -#endif /* CONFIG_CARL9170FW_DELAYED_TX */ static inline __inline uint8_t ar9170_get_rx_macstatus_status(struct dma_desc *desc) { @@ -222,6 +215,11 @@ static inline __inline struct carl9170_tx_superframe *get_super(struct dma_desc f); } +static inline __inline struct carl9170_tx_superframe *__get_super(struct dma_desc *desc) +{ + return DESC_PAYLOAD(desc); +} + static inline __inline void hide_super(struct dma_desc *desc) { desc->dataAddr = (uint8_t *) @@ -265,14 +263,10 @@ void wlan_modify_beacon(const unsigned int vif, const unsigned int bcn_addr, const unsigned int bcn_len); -static inline void wlan_prepare_wol(void) -{ - /* set filter policy to: discard everything */ - fw.wlan.rx_filter = CARL9170_RX_FILTER_EVERYTHING; +void wlan_tx_complete(struct carl9170_tx_superframe *super, + bool txs); - /* reenable rx dma */ - wlan_trigger(AR9170_DMA_TRIGGER_RXQ); -} +void wlan_prepare_wol(void); static inline void __check_wlantx(void) {