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 volatile struct dma_desc *get_wlan_txq_last_addr(const unsigned int q)
+{
+ return getp(AR9170_MAC_REG_DMA_TXQ_LAST_ADDR + (q << 2));
+}
+
static inline __inline void wlan_trigger(const uint32_t queue_bit)
{
set(AR9170_MAC_REG_DMA_TRIGGER, queue_bit);
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 *)
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)
{