carl9170 firmware: per-vif tx sequence counter
[carl9170fw.git] / carlfw / include / wl.h
index 178679a6f9f12f23a22b7cbddf10f4ab61a1db4f..577fd05f31b789d778881441fad1b76de2f90f77 100644 (file)
@@ -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 */