use ah_startTxDma directly
[open-ath9k-htc-firmware.git] / target_firmware / wlan / if_ath.c
index baf1ae6017d3bb24abfee8d5a6d49f49827ef762..1059a25007d61e6c0cb278c4101950c77f918a92 100755 (executable)
 #include <adf_os_irq.h>
 
 #include <if_ath_pci.h>
-#include "if_ethersubr.h"
 #include "if_llc.h"
 #include "ieee80211_var.h"
-#include "ieee80211_proto.h"
 #include "if_athrate.h"
 #include "if_athvar.h"
 #include "ah_desc.h"
+#include "ah.h"
 
 static a_int32_t ath_numrxbufs = -1;
 static a_int32_t ath_numrxdescs = -1;
@@ -121,10 +120,10 @@ static a_int32_t ath_rate_setup(struct ath_softc_tgt *sc, a_uint32_t mode)
 
        switch (mode) {
        case IEEE80211_MODE_11NA:
-               sc->sc_rates[mode] = ath_hal_getratetable(ah, HAL_MODE_11NA);
+               sc->sc_rates[mode] = ah->ah_getRateTable(ah, HAL_MODE_11NA);
                break;
        case IEEE80211_MODE_11NG:
-               sc->sc_rates[mode] = ath_hal_getratetable(ah, HAL_MODE_11NG);
+               sc->sc_rates[mode] = ah->ah_getRateTable(ah, HAL_MODE_11NG);
                break;
        default:
                return 0;
@@ -625,8 +624,8 @@ static void ath_tgt_send_beacon(struct ath_softc_tgt *sc, adf_nbuf_t bc_hdr,
 
        ath_beacon_setup(sc, bf, &sc->sc_vap[vap_index]);
        ath_hal_stoptxdma(ah, sc->sc_bhalq);
-       ath_hal_puttxbuf(ah, sc->sc_bhalq, ATH_BUF_GET_DESC_PHY_ADDR(bf));
-       ath_hal_txstart(ah, sc->sc_bhalq);
+       ah->ah_setTxDP(ah, sc->sc_bhalq, ATH_BUF_GET_DESC_PHY_ADDR(bf));
+       ah->ah_startTxDma(ah, sc->sc_bhalq);
 }
 
 /******/
@@ -1037,7 +1036,7 @@ adf_os_irq_resp_t ath_intr(adf_drv_handle_t hdl)
                        struct ath_txq *txq = ATH_TXQ(sc, 8);
 
                        swbaEvt.tsf = ath_hal_gettsf64(ah);
-                       swbaEvt.beaconPendingCount = ath_hal_numtxpending(ah, sc->sc_bhalq);
+                       swbaEvt.beaconPendingCount = ah->ah_numTxPending(ah, sc->sc_bhalq);
                        sc->sc_swba_tsf = ath_hal_gettsf64(ah);
 
                        wmi_event(sc->tgt_wmi_handle,
@@ -1068,7 +1067,7 @@ adf_os_irq_resp_t ath_intr(adf_drv_handle_t hdl)
 
                if (status & HAL_INT_TXURN) {
                        sc->sc_int_stats.ast_txurn++;
-                       ath_hal_updatetxtriglevel(ah, AH_TRUE);
+                       ah->ah_updateTxTrigLevel(ah, AH_TRUE);
                }
 
                ATH_SCHEDULE_TQUEUE(sc->sc_dev, &sc->sc_txtq);
@@ -1136,7 +1135,6 @@ static void ath_init_tgt(void *Context, A_UINT16 Command,
 {
        struct ath_softc_tgt *sc = (struct ath_softc_tgt *)Context;
        struct ath_hal *ah = sc->sc_ah;
-       a_uint32_t stbcsupport;
 
        sc->sc_imask = HAL_INT_RX | HAL_INT_TX
                | HAL_INT_RXEOL | HAL_INT_RXORN
@@ -1147,13 +1145,6 @@ static void ath_init_tgt(void *Context, A_UINT16 Command,
        if (ath_hal_htsupported(ah))
                sc->sc_imask |= HAL_INT_CST;
 
-#ifdef MAGPIE_MERLIN
-       if (ath_hal_txstbcsupport(ah, &stbcsupport))
-               sc->sc_txstbcsupport = stbcsupport;
-
-       if (ath_hal_rxstbcsupport(ah, &stbcsupport))
-               sc->sc_rxstbcsupport = stbcsupport;
-#endif
        adf_os_setup_intr(sc->sc_dev, ath_intr);
        ath_hal_intrset(ah, sc->sc_imask);
 
@@ -1653,7 +1644,7 @@ static void ath_detach_tgt(void *Context, A_UINT16 Command, A_UINT16 SeqNo,
        struct ath_hal *ah = sc->sc_ah;
 
        ath_desc_free(sc);
-       ath_hal_detach(ah);
+       ah->ah_detach(ah);
        wmi_cmd_rsp(sc->tgt_wmi_handle, Command, SeqNo, NULL, 0);
        adf_os_mem_free(sc);
 }
@@ -1945,7 +1936,7 @@ bad:
 bad2:
        ath_desc_free(sc);
        if (ah)
-               ath_hal_detach(ah);
+               ah->ah_detach(ah);
 }
 
 static void tgt_hif_htc_wmi_shutdown(struct ath_softc_tgt *sc)