projects
/
open-ath9k-htc-firmware.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
use ah_getPendingInterrupts directly
[open-ath9k-htc-firmware.git]
/
target_firmware
/
wlan
/
if_ath.c
diff --git
a/target_firmware/wlan/if_ath.c
b/target_firmware/wlan/if_ath.c
index 409aecfb1be8f4ad5caa65edb293591aa39e847e..3907262818fb15ec9aadcd2dda59838ef848d57f 100755
(executable)
--- a/
target_firmware/wlan/if_ath.c
+++ b/
target_firmware/wlan/if_ath.c
@@
-50,13
+50,12
@@
#include <adf_os_irq.h>
#include <if_ath_pci.h>
#include <adf_os_irq.h>
#include <if_ath_pci.h>
-#include "if_ethersubr.h"
#include "if_llc.h"
#include "ieee80211_var.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 "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;
static a_int32_t ath_numrxbufs = -1;
static a_int32_t ath_numrxdescs = -1;
@@
-97,11
+96,12
@@
static a_uint16_t adf_os_cpu_to_le16(a_uint16_t x)
*/
static u_int64_t ath_extend_tsf(struct ath_softc_tgt *sc, u_int32_t rstamp)
{
*/
static u_int64_t ath_extend_tsf(struct ath_softc_tgt *sc, u_int32_t rstamp)
{
+ struct ath_hal *ah = sc->sc_ah;
u_int64_t tsf;
u_int32_t tsf_low;
u_int64_t tsf64;
u_int64_t tsf;
u_int32_t tsf_low;
u_int64_t tsf64;
- tsf = a
th_hal_gettsf64(sc->sc_
ah);
+ tsf = a
h->ah_getTsf64(
ah);
tsf_low = tsf & 0xffffffff;
tsf64 = (tsf & ~0xffffffffULL) | rstamp;
tsf_low = tsf & 0xffffffff;
tsf64 = (tsf & ~0xffffffffULL) | rstamp;
@@
-121,10
+121,10
@@
static a_int32_t ath_rate_setup(struct ath_softc_tgt *sc, a_uint32_t mode)
switch (mode) {
case IEEE80211_MODE_11NA:
switch (mode) {
case IEEE80211_MODE_11NA:
- sc->sc_rates[mode] = a
th_hal_getratet
able(ah, HAL_MODE_11NA);
+ sc->sc_rates[mode] = a
h->ah_getRateT
able(ah, HAL_MODE_11NA);
break;
case IEEE80211_MODE_11NG:
break;
case IEEE80211_MODE_11NG:
- sc->sc_rates[mode] = a
th_hal_getratet
able(ah, HAL_MODE_11NG);
+ sc->sc_rates[mode] = a
h->ah_getRateT
able(ah, HAL_MODE_11NG);
break;
default:
return 0;
break;
default:
return 0;
@@
-271,13
+271,13
@@
static a_int32_t ath_rxdesc_init(struct ath_softc_tgt *sc, struct ath_rx_desc *d
0);
if (sc->sc_rxlink == NULL) {
0);
if (sc->sc_rxlink == NULL) {
- a
th_hal_putrxbuf
(ah, ds->ds_daddr);
+ a
h->ah_setRxDP
(ah, ds->ds_daddr);
}
else {
*sc->sc_rxlink = ds->ds_daddr;
}
sc->sc_rxlink = &ds->ds_link;
}
else {
*sc->sc_rxlink = ds->ds_daddr;
}
sc->sc_rxlink = &ds->ds_link;
- a
th_hal_rxena
(ah);
+ a
h->ah_enableReceive
(ah);
return 0;
}
return 0;
}
@@
-335,7
+335,7
@@
static void ath_uapsd_processtriggers(struct ath_softc_tgt *sc)
((struct ath_desc *)((caddr_t)(_sc)->sc_rxdma.dd_desc + \
((_pa) - (_sc)->sc_rxdma.dd_desc_paddr)))
((struct ath_desc *)((caddr_t)(_sc)->sc_rxdma.dd_desc + \
((_pa) - (_sc)->sc_rxdma.dd_desc_paddr)))
- tsf = a
th_hal_gett
sf64(ah);
+ tsf = a
h->ah_getT
sf64(ah);
bf = asf_tailq_first(&sc->sc_rxbuf);
ds = asf_tailq_first(&sc->sc_rxdesc);
bf = asf_tailq_first(&sc->sc_rxbuf);
ds = asf_tailq_first(&sc->sc_rxdesc);
@@
-472,7
+472,7
@@
static a_int32_t ath_startrecv(struct ath_softc_tgt *sc)
}
ds = asf_tailq_first(&sc->sc_rxdesc);
}
ds = asf_tailq_first(&sc->sc_rxdesc);
- a
th_hal_putrxbuf
(ah, ds->ds_daddr);
+ a
h->ah_setRxDP
(ah, ds->ds_daddr);
return 0;
}
return 0;
}
@@
-539,7
+539,7
@@
static void ath_beacon_setup(struct ath_softc_tgt *sc,
{
adf_nbuf_t skb = bf->bf_skb;
struct ath_hal *ah = sc->sc_ah;
{
adf_nbuf_t skb = bf->bf_skb;
struct ath_hal *ah = sc->sc_ah;
- struct ath_desc *ds;
+ struct ath_
tx_
desc *ds;
a_int32_t flags;
const HAL_RATE_TABLE *rt;
a_uint8_t rix, rate;
a_int32_t flags;
const HAL_RATE_TABLE *rt;
a_uint8_t rix, rate;
@@
-624,9
+624,9
@@
static void ath_tgt_send_beacon(struct ath_softc_tgt *sc, adf_nbuf_t bc_hdr,
adf_nbuf_dmamap_info(bf->bf_dmamap,&bf->bf_dmamap_info);
ath_beacon_setup(sc, bf, &sc->sc_vap[vap_index]);
adf_nbuf_dmamap_info(bf->bf_dmamap,&bf->bf_dmamap_info);
ath_beacon_setup(sc, bf, &sc->sc_vap[vap_index]);
- a
th_hal_stoptxd
ma(ah, sc->sc_bhalq);
- a
th_hal_puttxbuf
(ah, sc->sc_bhalq, ATH_BUF_GET_DESC_PHY_ADDR(bf));
- a
th_hal_txstart
(ah, sc->sc_bhalq);
+ a
h->ah_stopTxD
ma(ah, sc->sc_bhalq);
+ a
h->ah_setTxDP
(ah, sc->sc_bhalq, ATH_BUF_GET_DESC_PHY_ADDR(bf));
+ a
h->ah_startTxDma
(ah, sc->sc_bhalq);
}
/******/
}
/******/
@@
-637,7
+637,7
@@
static void ath_tx_stopdma(struct ath_softc_tgt *sc, struct ath_txq *txq)
{
struct ath_hal *ah = sc->sc_ah;
{
struct ath_hal *ah = sc->sc_ah;
-
(void) ath_hal_stoptxd
ma(ah, txq->axq_qnum);
+
ah->ah_stopTxD
ma(ah, txq->axq_qnum);
}
static void owltgt_txq_drain(struct ath_softc_tgt *sc, struct ath_txq *txq)
}
static void owltgt_txq_drain(struct ath_softc_tgt *sc, struct ath_txq *txq)
@@
-660,7
+660,7
@@
static void ath_draintxq(struct ath_softc_tgt *sc, HAL_BOOL drain_softq)
ath_tx_status_clear(sc);
sc->sc_tx_draining = 1;
ath_tx_status_clear(sc);
sc->sc_tx_draining = 1;
-
(void) ath_hal_stoptxd
ma(ah, sc->sc_bhalq);
+
ah->ah_stopTxD
ma(ah, sc->sc_bhalq);
for (i = 0; i < HAL_NUM_TX_QUEUES; i++)
if (ATH_TXQ_SETUP(sc, i))
for (i = 0; i < HAL_NUM_TX_QUEUES; i++)
if (ATH_TXQ_SETUP(sc, i))
@@
-785,7
+785,7
@@
static void tgt_HTCRecv_cabhandler(HTC_ENDPOINT_ID EndPt, adf_nbuf_t hdr_buf,
a_uint32_t tmp;
#ifdef ATH_ENABLE_CABQ
a_uint32_t tmp;
#ifdef ATH_ENABLE_CABQ
- tsf = a
th_hal_gett
sf64(ah);
+ tsf = a
h->ah_getT
sf64(ah);
tmp = tsf - sc->sc_swba_tsf;
if ( tmp > ATH_CABQ_HANDLING_THRESHOLD ) {
tmp = tsf - sc->sc_swba_tsf;
if ( tmp > ATH_CABQ_HANDLING_THRESHOLD ) {
@@
-879,7
+879,7
@@
static void ath_descdma_cleanup(struct ath_softc_tgt *sc,
struct ath_descdma *dd,
ath_bufhead *head, a_int32_t dir)
{
struct ath_descdma *dd,
ath_bufhead *head, a_int32_t dir)
{
- struct ath_
tx_
buf *bf;
+ struct ath_buf *bf;
struct ieee80211_node_target *ni;
asf_tailq_foreach(bf, head, bf_list) {
struct ieee80211_node_target *ni;
asf_tailq_foreach(bf, head, bf_list) {
@@
-924,7
+924,7
@@
static a_int32_t ath_desc_alloc(struct ath_softc_tgt *sc)
if (ath_numrxdescs == -1)
ath_numrxdescs = ATH_RXDESC;
if (ath_numrxdescs == -1)
ath_numrxdescs = ATH_RXDESC;
- error = ath_descdma_setup(sc, &sc->sc_rxdma, &sc->sc_rxbuf,
+ error = ath_descdma_setup(sc, &sc->sc_rxdma,
(ath_bufhead *)
&sc->sc_rxbuf,
"rx", ath_numrxdescs, 1,
sizeof(struct ath_rx_buf),
sizeof(struct ath_rx_desc));
"rx", ath_numrxdescs, 1,
sizeof(struct ath_rx_buf),
sizeof(struct ath_rx_desc));
@@
-933,7
+933,7
@@
static a_int32_t ath_desc_alloc(struct ath_softc_tgt *sc)
a_uint32_t i;
struct ath_descdma *dd = &sc->sc_rxdma;
a_uint32_t i;
struct ath_descdma *dd = &sc->sc_rxdma;
- struct ath_rx_desc *ds = dd->dd_desc;
+ struct ath_rx_desc *ds =
(struct ath_rx_desc *)
dd->dd_desc;
struct ath_rx_desc *ds_prev = NULL;
asf_tailq_init(&sc->sc_rxdesc);
struct ath_rx_desc *ds_prev = NULL;
asf_tailq_init(&sc->sc_rxdesc);
@@
-961,24
+961,24
@@
static a_int32_t ath_desc_alloc(struct ath_softc_tgt *sc)
asf_tailq_insert_tail(&sc->sc_rxdesc, ds, ds_list);
}
asf_tailq_insert_tail(&sc->sc_rxdesc, ds, ds_list);
}
- error = ath_descdma_setup(sc, &sc->sc_txdma, &sc->sc_txbuf,
+ error = ath_descdma_setup(sc, &sc->sc_txdma,
(ath_bufhead *)
&sc->sc_txbuf,
"tx", ATH_TXBUF + 1, ATH_TXDESC,
sizeof(struct ath_tx_buf),
sizeof(struct ath_tx_desc));
if (error != 0) {
"tx", ATH_TXBUF + 1, ATH_TXDESC,
sizeof(struct ath_tx_buf),
sizeof(struct ath_tx_desc));
if (error != 0) {
- ath_descdma_cleanup(sc, &sc->sc_rxdma, &sc->sc_rxbuf,
+ ath_descdma_cleanup(sc, &sc->sc_rxdma,
(ath_bufhead *)
&sc->sc_rxbuf,
ADF_OS_DMA_FROM_DEVICE);
return error;
}
ADF_OS_DMA_FROM_DEVICE);
return error;
}
- error = ath_descdma_setup(sc, &sc->sc_bdma, &sc->sc_bbuf,
+ error = ath_descdma_setup(sc, &sc->sc_bdma,
(ath_bufhead *)
&sc->sc_bbuf,
"beacon", ATH_BCBUF, 1,
sizeof(struct ath_tx_buf),
sizeof(struct ath_tx_desc));
if (error != 0) {
"beacon", ATH_BCBUF, 1,
sizeof(struct ath_tx_buf),
sizeof(struct ath_tx_desc));
if (error != 0) {
- ath_descdma_cleanup(sc, &sc->sc_txdma, &sc->sc_txbuf,
+ ath_descdma_cleanup(sc, &sc->sc_txdma,
(ath_bufhead *)
&sc->sc_txbuf,
ADF_OS_DMA_TO_DEVICE);
ADF_OS_DMA_TO_DEVICE);
- ath_descdma_cleanup(sc, &sc->sc_rxdma, &sc->sc_rxbuf,
+ ath_descdma_cleanup(sc, &sc->sc_rxdma,
(ath_bufhead *)
&sc->sc_rxbuf,
ADF_OS_DMA_FROM_DEVICE);
return error;
}
ADF_OS_DMA_FROM_DEVICE);
return error;
}
@@
-1001,10
+1001,10
@@
static void ath_desc_free(struct ath_softc_tgt *sc)
sc->sc_txbuf_held = NULL;
if (sc->sc_txdma.dd_desc_len != 0)
sc->sc_txbuf_held = NULL;
if (sc->sc_txdma.dd_desc_len != 0)
- ath_descdma_cleanup(sc, &sc->sc_txdma, &sc->sc_txbuf,
+ ath_descdma_cleanup(sc, &sc->sc_txdma,
(ath_bufhead *)
&sc->sc_txbuf,
ADF_OS_DMA_TO_DEVICE);
if (sc->sc_rxdma.dd_desc_len != 0)
ADF_OS_DMA_TO_DEVICE);
if (sc->sc_rxdma.dd_desc_len != 0)
- ath_descdma_cleanup(sc, &sc->sc_rxdma, &sc->sc_rxbuf,
+ ath_descdma_cleanup(sc, &sc->sc_rxdma,
(ath_bufhead *)
&sc->sc_rxbuf,
ADF_OS_DMA_FROM_DEVICE);
}
ADF_OS_DMA_FROM_DEVICE);
}
@@
-1021,10
+1021,10
@@
adf_os_irq_resp_t ath_intr(adf_drv_handle_t hdl)
if (sc->sc_invalid)
return ADF_OS_IRQ_NONE;
if (sc->sc_invalid)
return ADF_OS_IRQ_NONE;
- if (!a
th_hal_intrpend
(ah))
+ if (!a
h->ah_isInterruptPending
(ah))
return ADF_OS_IRQ_NONE;
return ADF_OS_IRQ_NONE;
- a
th_hal_getisr
(ah, &status);
+ a
h->ah_getPendingInterrupts
(ah, &status);
status &= sc->sc_imask;
status &= sc->sc_imask;
@@
-1036,9
+1036,9
@@
adf_os_irq_resp_t ath_intr(adf_drv_handle_t hdl)
WMI_SWBA_EVENT swbaEvt;
struct ath_txq *txq = ATH_TXQ(sc, 8);
WMI_SWBA_EVENT swbaEvt;
struct ath_txq *txq = ATH_TXQ(sc, 8);
- swbaEvt.tsf = a
th_hal_gett
sf64(ah);
- swbaEvt.beaconPendingCount = a
th_hal_numtxp
ending(ah, sc->sc_bhalq);
- sc->sc_swba_tsf = a
th_hal_gett
sf64(ah);
+ swbaEvt.tsf = a
h->ah_getT
sf64(ah);
+ swbaEvt.beaconPendingCount = a
h->ah_numTxP
ending(ah, sc->sc_bhalq);
+ sc->sc_swba_tsf = a
h->ah_getT
sf64(ah);
wmi_event(sc->tgt_wmi_handle,
WMI_SWBA_EVENTID,
wmi_event(sc->tgt_wmi_handle,
WMI_SWBA_EVENTID,
@@
-1068,7
+1068,7
@@
adf_os_irq_resp_t ath_intr(adf_drv_handle_t hdl)
if (status & HAL_INT_TXURN) {
sc->sc_int_stats.ast_txurn++;
if (status & HAL_INT_TXURN) {
sc->sc_int_stats.ast_txurn++;
- a
th_hal_updatetxtrigl
evel(ah, AH_TRUE);
+ a
h->ah_updateTxTrigL
evel(ah, AH_TRUE);
}
ATH_SCHEDULE_TQUEUE(sc->sc_dev, &sc->sc_txtq);
}
ATH_SCHEDULE_TQUEUE(sc->sc_dev, &sc->sc_txtq);
@@
-1136,7
+1136,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;
{
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
sc->sc_imask = HAL_INT_RX | HAL_INT_TX
| HAL_INT_RXEOL | HAL_INT_RXORN
@@
-1147,13
+1146,6
@@
static void ath_init_tgt(void *Context, A_UINT16 Command,
if (ath_hal_htsupported(ah))
sc->sc_imask |= HAL_INT_CST;
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);
adf_os_setup_intr(sc->sc_dev, ath_intr);
ath_hal_intrset(ah, sc->sc_imask);
@@
-1532,7
+1524,7
@@
static void ath_flushrecv_tgt(void *Context, A_UINT16 Command,
A_UINT16 SeqNo, A_UINT8 *data, a_int32_t datalen)
{
struct ath_softc_tgt *sc = (struct ath_softc_tgt *)Context;
A_UINT16 SeqNo, A_UINT8 *data, a_int32_t datalen)
{
struct ath_softc_tgt *sc = (struct ath_softc_tgt *)Context;
- struct ath_buf *bf;
+ struct ath_
rx_
buf *bf;
asf_tailq_foreach(bf, &sc->sc_rxbuf, bf_list)
if (bf->bf_skb != NULL) {
asf_tailq_foreach(bf, &sc->sc_rxbuf, bf_list)
if (bf->bf_skb != NULL) {
@@
-1573,8
+1565,9
@@
static void ath_aborttx_dma_tgt(void *Context, A_UINT16 Command,
A_UINT16 SeqNo, A_UINT8 *data, a_int32_t datalen)
{
struct ath_softc_tgt *sc = (struct ath_softc_tgt *)Context;
A_UINT16 SeqNo, A_UINT8 *data, a_int32_t datalen)
{
struct ath_softc_tgt *sc = (struct ath_softc_tgt *)Context;
+ struct ath_hal *ah = sc->sc_ah;
- a
th_hal_aborttxd
ma(sc->sc_ah);
+ a
h->ah_abortTxD
ma(sc->sc_ah);
wmi_cmd_rsp(sc->tgt_wmi_handle, Command, SeqNo, NULL, 0);
}
wmi_cmd_rsp(sc->tgt_wmi_handle, Command, SeqNo, NULL, 0);
}
@@
-1604,7
+1597,7
@@
static void ath_stop_tx_dma_tgt(void *Context, A_UINT16 Command,
q = *(a_uint32_t *)data;
q = adf_os_ntohl(q);
q = *(a_uint32_t *)data;
q = adf_os_ntohl(q);
- a
th_hal_stoptxd
ma(ah, q);
+ a
h->ah_stopTxD
ma(ah, q);
wmi_cmd_rsp(sc->tgt_wmi_handle, Command, SeqNo, NULL, 0);
}
wmi_cmd_rsp(sc->tgt_wmi_handle, Command, SeqNo, NULL, 0);
}
@@
-1624,9
+1617,9
@@
static void ath_stoprecv_tgt(void *Context, A_UINT16 Command,
struct ath_softc_tgt *sc = (struct ath_softc_tgt *)Context;
struct ath_hal *ah = sc->sc_ah;
struct ath_softc_tgt *sc = (struct ath_softc_tgt *)Context;
struct ath_hal *ah = sc->sc_ah;
- a
th_hal_stoppcurecv
(ah);
- a
th_hal_setrxf
ilter(ah, 0);
- a
th_hal_stopdmarecv
(ah);
+ a
h->ah_stopPcuReceive
(ah);
+ a
h->ah_setRxF
ilter(ah, 0);
+ a
h->ah_stopDmaReceive
(ah);
sc->sc_rxlink = NULL;
wmi_cmd_rsp(sc->tgt_wmi_handle, Command, SeqNo, NULL, 0);
sc->sc_rxlink = NULL;
wmi_cmd_rsp(sc->tgt_wmi_handle, Command, SeqNo, NULL, 0);
@@
-1653,7
+1646,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);
struct ath_hal *ah = sc->sc_ah;
ath_desc_free(sc);
- a
th_hal
_detach(ah);
+ a
h->ah
_detach(ah);
wmi_cmd_rsp(sc->tgt_wmi_handle, Command, SeqNo, NULL, 0);
adf_os_mem_free(sc);
}
wmi_cmd_rsp(sc->tgt_wmi_handle, Command, SeqNo, NULL, 0);
adf_os_mem_free(sc);
}
@@
-1883,8
+1876,7
@@
static void tgt_hif_htc_wmi_init(struct ath_softc_tgt *sc)
HTC_Ready(sc->tgt_htc_handle);
}
HTC_Ready(sc->tgt_htc_handle);
}
-a_int32_t ath_tgt_attach(a_uint32_t devid,a_uint32_t mem_start,
- struct ath_softc_tgt *sc, adf_os_device_t osdev)
+a_int32_t ath_tgt_attach(a_uint32_t devid, struct ath_softc_tgt *sc, adf_os_device_t osdev)
{
struct ath_hal *ah;
HAL_STATUS status;
{
struct ath_hal *ah;
HAL_STATUS status;
@@
-1906,7
+1898,7
@@
a_int32_t ath_tgt_attach(a_uint32_t devid,a_uint32_t mem_start,
ATH_INIT_TQUEUE(sc->sc_dev, &sc->sc_fataltq, ath_fatal_tasklet, sc);
flags |= AH_USE_EEPROM;
ATH_INIT_TQUEUE(sc->sc_dev, &sc->sc_fataltq, ath_fatal_tasklet, sc);
flags |= AH_USE_EEPROM;
- ah = _ath_hal_attach_tgt(devid,
sc,sc->sc_dev,mem_start
, flags, &status);
+ ah = _ath_hal_attach_tgt(devid,
sc, sc->sc_dev
, flags, &status);
if (ah == NULL) {
error = ENXIO;
goto bad;
if (ah == NULL) {
error = ENXIO;
goto bad;
@@
-1946,7
+1938,7
@@
bad:
bad2:
ath_desc_free(sc);
if (ah)
bad2:
ath_desc_free(sc);
if (ah)
- a
th_hal
_detach(ah);
+ a
h->ah
_detach(ah);
}
static void tgt_hif_htc_wmi_shutdown(struct ath_softc_tgt *sc)
}
static void tgt_hif_htc_wmi_shutdown(struct ath_softc_tgt *sc)