X-Git-Url: https://jxself.org/git/?p=carl9170fw.git;a=blobdiff_plain;f=carlfw%2Finclude%2Fwl.h;h=577fd05f31b789d778881441fad1b76de2f90f77;hp=178679a6f9f12f23a22b7cbddf10f4ab61a1db4f;hb=19e4d682fca010ef72e0a304335910f670c2268a;hpb=e72388a0aa23da8bc8e24a0cbe9d523c5a9ce294 diff --git a/carlfw/include/wl.h b/carlfw/include/wl.h index 178679a..577fd05 100644 --- a/carlfw/include/wl.h +++ b/carlfw/include/wl.h @@ -97,7 +97,7 @@ static inline __inline uint8_t ar9170_get_rx_macstatus_error(struct dma_desc *de static inline __inline struct ieee80211_hdr *ar9170_get_rx_i3e(struct dma_desc *desc) { if (!((ar9170_get_rx_macstatus_status(desc) & - AR9170_RX_STATUS_MPDU_MASK) & AR9170_RX_STATUS_MPDU_LAST)) { + AR9170_RX_STATUS_MPDU) & AR9170_RX_STATUS_MPDU_LAST)) { return (void *)(DESC_PAYLOAD_OFF(desc, offsetof(struct ar9170_rx_frame_head, i3e))); } else { @@ -109,7 +109,7 @@ static inline __inline struct ieee80211_hdr *ar9170_get_rx_i3e(struct dma_desc * static inline __inline struct ar9170_rx_head *ar9170_get_rx_head(struct dma_desc *desc) { if (!((ar9170_get_rx_macstatus_status(desc) & - AR9170_RX_STATUS_MPDU_MASK) & AR9170_RX_STATUS_MPDU_LAST)) { + AR9170_RX_STATUS_MPDU) & AR9170_RX_STATUS_MPDU_LAST)) { return (void *)((uint8_t *)DESC_PAYLOAD(desc) + offsetof(struct ar9170_rx_frame_head, phy_head)); } else { @@ -131,7 +131,7 @@ static inline __inline uint32_t ar9170_rx_to_phy(struct dma_desc *rx) mac_status = ar9170_get_rx_macstatus_status(rx); - phy.modulation = mac_status & AR9170_RX_STATUS_MODULATION_MASK; + phy.modulation = mac_status & AR9170_RX_STATUS_MODULATION; phy.chains = AR9170_TX_PHY_TXCHAIN_1; switch (phy.modulation) { @@ -190,7 +190,7 @@ static inline __inline unsigned int ar9170_get_rx_mpdu_len(struct dma_desc *desc mpdu_len -= sizeof(struct ar9170_rx_macstatus); - switch (ar9170_get_rx_macstatus_status(desc) & AR9170_RX_STATUS_MPDU_MASK) { + switch (ar9170_get_rx_macstatus_status(desc) & AR9170_RX_STATUS_MPDU) { case AR9170_RX_STATUS_MPDU_LAST: mpdu_len -= sizeof(struct ar9170_rx_phystatus); break; @@ -259,16 +259,35 @@ static inline __inline __hot void read_tsf(uint32_t *tsf) void wlan_tx(struct dma_desc *desc); void wlan_timer(void); void handle_wlan(void); -void wlan_tx_stuck(const struct carl9170_cmd *cmd, struct carl9170_rsp *rsp); + +void wlan_cab_flush_queue(const unsigned int vif); +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); +} static inline void __check_wlantx(void) { + BUILD_BUG_ON(CARL9170_TX_SUPERDESC_LEN & 3); BUILD_BUG_ON(sizeof(struct carl9170_tx_superdesc) != CARL9170_TX_SUPERDESC_LEN); + BUILD_BUG_ON(sizeof(struct _carl9170_tx_superdesc) != CARL9170_TX_SUPERDESC_LEN); + BUILD_BUG_ON(sizeof(struct _carl9170_tx_superframe) != CARL9170_TX_SUPERFRAME_LEN); BUILD_BUG_ON((offsetof(struct carl9170_tx_superframe, f) & 3) != 0); + BUILD_BUG_ON(offsetof(struct _carl9170_tx_superframe, f) != + (offsetof(struct _carl9170_tx_superframe, f))); BUILD_BUG_ON(sizeof(struct ar9170_tx_hwdesc) != AR9170_TX_HWDESC_LEN); - BUILD_BUG_ON(sizeof(struct ar9170_rx_head) != 12); - BUILD_BUG_ON(sizeof(struct ar9170_rx_phystatus) != 20); - BUILD_BUG_ON(sizeof(struct ar9170_rx_macstatus) != 4); + BUILD_BUG_ON(sizeof(struct _ar9170_tx_hwdesc) != AR9170_TX_HWDESC_LEN); + BUILD_BUG_ON(sizeof(struct ar9170_rx_head) != AR9170_RX_HEAD_LEN); + BUILD_BUG_ON(sizeof(struct ar9170_rx_phystatus) != AR9170_RX_PHYSTATUS_LEN); + BUILD_BUG_ON(sizeof(struct ar9170_rx_macstatus) != AR9170_RX_MACSTATUS_LEN); } #endif /* __CARL9170FW_WLAN_H */