X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=carlfw%2Finclude%2Fwl.h;h=9af4fdb278c1c23efc5556917961e9e7ef9eaeac;hb=484cb254482ee644cc2981d1e2753fca2718bcd3;hp=ff04536d4af7fd6291ef030be386678cc1f6c4e3;hpb=12d3f1ba6ba522cd1ef11483d813fe2c2e64f04b;p=carl9170fw.git diff --git a/carlfw/include/wl.h b/carlfw/include/wl.h index ff04536..9af4fdb 100644 --- a/carlfw/include/wl.h +++ b/carlfw/include/wl.h @@ -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,8 @@ 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; - - /* reenable rx dma */ - wlan_trigger(AR9170_DMA_TRIGGER_RXQ); -} +void wlan_tx_complete(struct carl9170_tx_superframe *super, bool txs); +void wlan_prepare_wol(void); static inline void __check_wlantx(void) {