Commit ea9880fb authored by Sujith's avatar Sujith Committed by John W. Linville

ath9k: Remove redundant data structure ath9k_txq_info

Use ath9k_tx_queue_info which contains the same elements,
and merge get/set functions of tx queue properties.
Also, fix whitespace damage in struct ath_softc.
Signed-off-by: default avatarSujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 60b67f51
...@@ -282,23 +282,6 @@ enum ath9k_tx_queue_flags { ...@@ -282,23 +282,6 @@ enum ath9k_tx_queue_flags {
TXQ_FLAG_FRAG_BURST_BACKOFF_ENABLE = 0x0080, TXQ_FLAG_FRAG_BURST_BACKOFF_ENABLE = 0x0080,
}; };
struct ath9k_txq_info {
u32 tqi_ver;
enum ath9k_tx_queue_subtype tqi_subtype;
enum ath9k_tx_queue_flags tqi_qflags;
u32 tqi_priority;
u32 tqi_aifs;
u32 tqi_cwmin;
u32 tqi_cwmax;
u16 tqi_shretry;
u16 tqi_lgretry;
u32 tqi_cbrPeriod;
u32 tqi_cbrOverflowLimit;
u32 tqi_burstTime;
u32 tqi_readyTime;
u32 tqi_compBuf;
};
#define ATH9K_TXQ_USEDEFAULT ((u32) -1) #define ATH9K_TXQ_USEDEFAULT ((u32) -1)
#define ATH9K_DECOMP_MASK_SIZE 128 #define ATH9K_DECOMP_MASK_SIZE 128
...@@ -999,10 +982,10 @@ u32 ath9k_regd_get_ctl(struct ath_hal *ah, struct ath9k_channel *chan); ...@@ -999,10 +982,10 @@ u32 ath9k_regd_get_ctl(struct ath_hal *ah, struct ath9k_channel *chan);
u32 ath9k_regd_get_antenna_allowed(struct ath_hal *ah, u32 ath9k_regd_get_antenna_allowed(struct ath_hal *ah,
struct ath9k_channel *chan); struct ath9k_channel *chan);
u32 ath9k_hw_mhz2ieee(struct ath_hal *ah, u32 freq, u32 flags); u32 ath9k_hw_mhz2ieee(struct ath_hal *ah, u32 freq, u32 flags);
bool ath9k_hw_gettxqueueprops(struct ath_hal *ah, int q, bool ath9k_hw_get_txq_props(struct ath_hal *ah, int q,
struct ath9k_txq_info *qInfo); struct ath9k_tx_queue_info *qinfo);
bool ath9k_hw_settxqueueprops(struct ath_hal *ah, int q, bool ath9k_hw_set_txq_props(struct ath_hal *ah, int q,
const struct ath9k_txq_info *qInfo); const struct ath9k_tx_queue_info *qinfo);
struct ath9k_channel *ath9k_regd_check_channel(struct ath_hal *ah, struct ath9k_channel *ath9k_regd_check_channel(struct ath_hal *ah,
const struct ath9k_channel *c); const struct ath9k_channel *c);
void ath9k_hw_set11n_txdesc(struct ath_hal *ah, struct ath_desc *ds, void ath9k_hw_set11n_txdesc(struct ath_hal *ah, struct ath_desc *ds,
...@@ -1053,7 +1036,7 @@ void ath9k_hw_set11n_virtualmorefrag(struct ath_hal *ah, ...@@ -1053,7 +1036,7 @@ void ath9k_hw_set11n_virtualmorefrag(struct ath_hal *ah,
bool ath9k_hw_set_txpowerlimit(struct ath_hal *ah, u32 limit); bool ath9k_hw_set_txpowerlimit(struct ath_hal *ah, u32 limit);
bool ath9k_regd_is_public_safety_sku(struct ath_hal *ah); bool ath9k_regd_is_public_safety_sku(struct ath_hal *ah);
int ath9k_hw_setuptxqueue(struct ath_hal *ah, enum ath9k_tx_queue type, int ath9k_hw_setuptxqueue(struct ath_hal *ah, enum ath9k_tx_queue type,
const struct ath9k_txq_info *qInfo); const struct ath9k_tx_queue_info *qinfo);
u32 ath9k_hw_numtxpending(struct ath_hal *ah, u32 q); u32 ath9k_hw_numtxpending(struct ath_hal *ah, u32 q);
const char *ath9k_hw_probe(u16 vendorid, u16 devid); const char *ath9k_hw_probe(u16 vendorid, u16 devid);
bool ath9k_hw_disable(struct ath_hal *ah); bool ath9k_hw_disable(struct ath_hal *ah);
......
...@@ -30,9 +30,9 @@ ...@@ -30,9 +30,9 @@
static int ath_beaconq_config(struct ath_softc *sc) static int ath_beaconq_config(struct ath_softc *sc)
{ {
struct ath_hal *ah = sc->sc_ah; struct ath_hal *ah = sc->sc_ah;
struct ath9k_txq_info qi; struct ath9k_tx_queue_info qi;
ath9k_hw_gettxqueueprops(ah, sc->sc_bhalq, &qi); ath9k_hw_get_txq_props(ah, sc->sc_bhalq, &qi);
if (sc->sc_opmode == ATH9K_M_HOSTAP) { if (sc->sc_opmode == ATH9K_M_HOSTAP) {
/* Always burst out beacon and CAB traffic. */ /* Always burst out beacon and CAB traffic. */
qi.tqi_aifs = 1; qi.tqi_aifs = 1;
...@@ -45,7 +45,7 @@ static int ath_beaconq_config(struct ath_softc *sc) ...@@ -45,7 +45,7 @@ static int ath_beaconq_config(struct ath_softc *sc)
qi.tqi_cwmax = sc->sc_beacon_qi.tqi_cwmax; qi.tqi_cwmax = sc->sc_beacon_qi.tqi_cwmax;
} }
if (!ath9k_hw_settxqueueprops(ah, sc->sc_bhalq, &qi)) { if (!ath9k_hw_set_txq_props(ah, sc->sc_bhalq, &qi)) {
DPRINTF(sc, ATH_DBG_FATAL, DPRINTF(sc, ATH_DBG_FATAL,
"%s: unable to update h/w beacon queue parameters\n", "%s: unable to update h/w beacon queue parameters\n",
__func__); __func__);
...@@ -335,7 +335,7 @@ static void ath_beacon_start_adhoc(struct ath_softc *sc, int if_id) ...@@ -335,7 +335,7 @@ static void ath_beacon_start_adhoc(struct ath_softc *sc, int if_id)
int ath_beaconq_setup(struct ath_hal *ah) int ath_beaconq_setup(struct ath_hal *ah)
{ {
struct ath9k_txq_info qi; struct ath9k_tx_queue_info qi;
memzero(&qi, sizeof(qi)); memzero(&qi, sizeof(qi));
qi.tqi_aifs = 1; qi.tqi_aifs = 1;
......
This diff is collapsed.
...@@ -7394,12 +7394,21 @@ ath9k_hw_updatetxtriglevel(struct ath_hal *ah, bool bIncTrigLevel) ...@@ -7394,12 +7394,21 @@ ath9k_hw_updatetxtriglevel(struct ath_hal *ah, bool bIncTrigLevel)
return newLevel != curLevel; return newLevel != curLevel;
} }
static bool ath9k_hw_set_txq_props(struct ath_hal *ah, bool ath9k_hw_set_txq_props(struct ath_hal *ah, int q,
struct ath9k_tx_queue_info *qi, const struct ath9k_tx_queue_info *qinfo)
const struct ath9k_txq_info *qInfo)
{ {
u32 cw; u32 cw;
struct ath_hal_5416 *ahp = AH5416(ah);
struct ath9k_hw_capabilities *pCap = &ah->ah_caps;
struct ath9k_tx_queue_info *qi;
if (q >= pCap->total_queues) {
DPRINTF(ah->ah_sc, ATH_DBG_QUEUE, "%s: invalid queue num %u\n",
__func__, q);
return false;
}
qi = &ahp->ah_txq[q];
if (qi->tqi_type == ATH9K_TX_QUEUE_INACTIVE) { if (qi->tqi_type == ATH9K_TX_QUEUE_INACTIVE) {
DPRINTF(ah->ah_sc, ATH_DBG_QUEUE, "%s: inactive queue\n", DPRINTF(ah->ah_sc, ATH_DBG_QUEUE, "%s: inactive queue\n",
__func__); __func__);
...@@ -7408,43 +7417,43 @@ static bool ath9k_hw_set_txq_props(struct ath_hal *ah, ...@@ -7408,43 +7417,43 @@ static bool ath9k_hw_set_txq_props(struct ath_hal *ah,
DPRINTF(ah->ah_sc, ATH_DBG_QUEUE, "%s: queue %p\n", __func__, qi); DPRINTF(ah->ah_sc, ATH_DBG_QUEUE, "%s: queue %p\n", __func__, qi);
qi->tqi_ver = qInfo->tqi_ver; qi->tqi_ver = qinfo->tqi_ver;
qi->tqi_subtype = qInfo->tqi_subtype; qi->tqi_subtype = qinfo->tqi_subtype;
qi->tqi_qflags = qInfo->tqi_qflags; qi->tqi_qflags = qinfo->tqi_qflags;
qi->tqi_priority = qInfo->tqi_priority; qi->tqi_priority = qinfo->tqi_priority;
if (qInfo->tqi_aifs != ATH9K_TXQ_USEDEFAULT) if (qinfo->tqi_aifs != ATH9K_TXQ_USEDEFAULT)
qi->tqi_aifs = min(qInfo->tqi_aifs, 255U); qi->tqi_aifs = min(qinfo->tqi_aifs, 255U);
else else
qi->tqi_aifs = INIT_AIFS; qi->tqi_aifs = INIT_AIFS;
if (qInfo->tqi_cwmin != ATH9K_TXQ_USEDEFAULT) { if (qinfo->tqi_cwmin != ATH9K_TXQ_USEDEFAULT) {
cw = min(qInfo->tqi_cwmin, 1024U); cw = min(qinfo->tqi_cwmin, 1024U);
qi->tqi_cwmin = 1; qi->tqi_cwmin = 1;
while (qi->tqi_cwmin < cw) while (qi->tqi_cwmin < cw)
qi->tqi_cwmin = (qi->tqi_cwmin << 1) | 1; qi->tqi_cwmin = (qi->tqi_cwmin << 1) | 1;
} else } else
qi->tqi_cwmin = qInfo->tqi_cwmin; qi->tqi_cwmin = qinfo->tqi_cwmin;
if (qInfo->tqi_cwmax != ATH9K_TXQ_USEDEFAULT) { if (qinfo->tqi_cwmax != ATH9K_TXQ_USEDEFAULT) {
cw = min(qInfo->tqi_cwmax, 1024U); cw = min(qinfo->tqi_cwmax, 1024U);
qi->tqi_cwmax = 1; qi->tqi_cwmax = 1;
while (qi->tqi_cwmax < cw) while (qi->tqi_cwmax < cw)
qi->tqi_cwmax = (qi->tqi_cwmax << 1) | 1; qi->tqi_cwmax = (qi->tqi_cwmax << 1) | 1;
} else } else
qi->tqi_cwmax = INIT_CWMAX; qi->tqi_cwmax = INIT_CWMAX;
if (qInfo->tqi_shretry != 0) if (qinfo->tqi_shretry != 0)
qi->tqi_shretry = min((u32) qInfo->tqi_shretry, 15U); qi->tqi_shretry = min((u32) qinfo->tqi_shretry, 15U);
else else
qi->tqi_shretry = INIT_SH_RETRY; qi->tqi_shretry = INIT_SH_RETRY;
if (qInfo->tqi_lgretry != 0) if (qinfo->tqi_lgretry != 0)
qi->tqi_lgretry = min((u32) qInfo->tqi_lgretry, 15U); qi->tqi_lgretry = min((u32) qinfo->tqi_lgretry, 15U);
else else
qi->tqi_lgretry = INIT_LG_RETRY; qi->tqi_lgretry = INIT_LG_RETRY;
qi->tqi_cbrPeriod = qInfo->tqi_cbrPeriod; qi->tqi_cbrPeriod = qinfo->tqi_cbrPeriod;
qi->tqi_cbrOverflowLimit = qInfo->tqi_cbrOverflowLimit; qi->tqi_cbrOverflowLimit = qinfo->tqi_cbrOverflowLimit;
qi->tqi_burstTime = qInfo->tqi_burstTime; qi->tqi_burstTime = qinfo->tqi_burstTime;
qi->tqi_readyTime = qInfo->tqi_readyTime; qi->tqi_readyTime = qinfo->tqi_readyTime;
switch (qInfo->tqi_subtype) { switch (qinfo->tqi_subtype) {
case ATH9K_WME_UPSD: case ATH9K_WME_UPSD:
if (qi->tqi_type == ATH9K_TX_QUEUE_DATA) if (qi->tqi_type == ATH9K_TX_QUEUE_DATA)
qi->tqi_intFlags = ATH9K_TXQ_USE_LOCKOUT_BKOFF_DIS; qi->tqi_intFlags = ATH9K_TXQ_USE_LOCKOUT_BKOFF_DIS;
...@@ -7455,66 +7464,47 @@ static bool ath9k_hw_set_txq_props(struct ath_hal *ah, ...@@ -7455,66 +7464,47 @@ static bool ath9k_hw_set_txq_props(struct ath_hal *ah,
return true; return true;
} }
bool ath9k_hw_settxqueueprops(struct ath_hal *ah, int q, bool ath9k_hw_get_txq_props(struct ath_hal *ah, int q,
const struct ath9k_txq_info *qInfo) struct ath9k_tx_queue_info *qinfo)
{ {
struct ath_hal_5416 *ahp = AH5416(ah); struct ath_hal_5416 *ahp = AH5416(ah);
struct ath9k_hw_capabilities *pCap = &ah->ah_caps; struct ath9k_hw_capabilities *pCap = &ah->ah_caps;
struct ath9k_tx_queue_info *qi;
if (q >= pCap->total_queues) { if (q >= pCap->total_queues) {
DPRINTF(ah->ah_sc, ATH_DBG_QUEUE, "%s: invalid queue num %u\n", DPRINTF(ah->ah_sc, ATH_DBG_QUEUE, "%s: invalid queue num %u\n",
__func__, q); __func__, q);
return false; return false;
} }
return ath9k_hw_set_txq_props(ah, &ahp->ah_txq[q], qInfo);
}
static bool ath9k_hw_get_txq_props(struct ath_hal *ah, qi = &ahp->ah_txq[q];
struct ath9k_txq_info *qInfo,
const struct ath9k_tx_queue_info *qi)
{
if (qi->tqi_type == ATH9K_TX_QUEUE_INACTIVE) { if (qi->tqi_type == ATH9K_TX_QUEUE_INACTIVE) {
DPRINTF(ah->ah_sc, ATH_DBG_QUEUE, "%s: inactive queue\n", DPRINTF(ah->ah_sc, ATH_DBG_QUEUE, "%s: inactive queue\n",
__func__); __func__);
return false; return false;
} }
qInfo->tqi_qflags = qi->tqi_qflags; qinfo->tqi_qflags = qi->tqi_qflags;
qInfo->tqi_ver = qi->tqi_ver; qinfo->tqi_ver = qi->tqi_ver;
qInfo->tqi_subtype = qi->tqi_subtype; qinfo->tqi_subtype = qi->tqi_subtype;
qInfo->tqi_qflags = qi->tqi_qflags; qinfo->tqi_qflags = qi->tqi_qflags;
qInfo->tqi_priority = qi->tqi_priority; qinfo->tqi_priority = qi->tqi_priority;
qInfo->tqi_aifs = qi->tqi_aifs; qinfo->tqi_aifs = qi->tqi_aifs;
qInfo->tqi_cwmin = qi->tqi_cwmin; qinfo->tqi_cwmin = qi->tqi_cwmin;
qInfo->tqi_cwmax = qi->tqi_cwmax; qinfo->tqi_cwmax = qi->tqi_cwmax;
qInfo->tqi_shretry = qi->tqi_shretry; qinfo->tqi_shretry = qi->tqi_shretry;
qInfo->tqi_lgretry = qi->tqi_lgretry; qinfo->tqi_lgretry = qi->tqi_lgretry;
qInfo->tqi_cbrPeriod = qi->tqi_cbrPeriod; qinfo->tqi_cbrPeriod = qi->tqi_cbrPeriod;
qInfo->tqi_cbrOverflowLimit = qi->tqi_cbrOverflowLimit; qinfo->tqi_cbrOverflowLimit = qi->tqi_cbrOverflowLimit;
qInfo->tqi_burstTime = qi->tqi_burstTime; qinfo->tqi_burstTime = qi->tqi_burstTime;
qInfo->tqi_readyTime = qi->tqi_readyTime; qinfo->tqi_readyTime = qi->tqi_readyTime;
return true; return true;
} }
bool
ath9k_hw_gettxqueueprops(struct ath_hal *ah, int q,
struct ath9k_txq_info *qInfo)
{
struct ath_hal_5416 *ahp = AH5416(ah);
struct ath9k_hw_capabilities *pCap = &ah->ah_caps;
if (q >= pCap->total_queues) {
DPRINTF(ah->ah_sc, ATH_DBG_QUEUE, "%s: invalid queue num %u\n",
__func__, q);
return false;
}
return ath9k_hw_get_txq_props(ah, qInfo, &ahp->ah_txq[q]);
}
int int
ath9k_hw_setuptxqueue(struct ath_hal *ah, enum ath9k_tx_queue type, ath9k_hw_setuptxqueue(struct ath_hal *ah, enum ath9k_tx_queue type,
const struct ath9k_txq_info *qInfo) const struct ath9k_tx_queue_info *qinfo)
{ {
struct ath_hal_5416 *ahp = AH5416(ah); struct ath_hal_5416 *ahp = AH5416(ah);
struct ath9k_tx_queue_info *qi; struct ath9k_tx_queue_info *qi;
...@@ -7561,7 +7551,7 @@ ath9k_hw_setuptxqueue(struct ath_hal *ah, enum ath9k_tx_queue type, ...@@ -7561,7 +7551,7 @@ ath9k_hw_setuptxqueue(struct ath_hal *ah, enum ath9k_tx_queue type,
} }
memset(qi, 0, sizeof(struct ath9k_tx_queue_info)); memset(qi, 0, sizeof(struct ath9k_tx_queue_info));
qi->tqi_type = type; qi->tqi_type = type;
if (qInfo == NULL) { if (qinfo == NULL) {
qi->tqi_qflags = qi->tqi_qflags =
TXQ_FLAG_TXOKINT_ENABLE TXQ_FLAG_TXOKINT_ENABLE
| TXQ_FLAG_TXERRINT_ENABLE | TXQ_FLAG_TXERRINT_ENABLE
...@@ -7573,8 +7563,8 @@ ath9k_hw_setuptxqueue(struct ath_hal *ah, enum ath9k_tx_queue type, ...@@ -7573,8 +7563,8 @@ ath9k_hw_setuptxqueue(struct ath_hal *ah, enum ath9k_tx_queue type,
qi->tqi_lgretry = INIT_LG_RETRY; qi->tqi_lgretry = INIT_LG_RETRY;
qi->tqi_physCompBuf = 0; qi->tqi_physCompBuf = 0;
} else { } else {
qi->tqi_physCompBuf = qInfo->tqi_compBuf; qi->tqi_physCompBuf = qinfo->tqi_physCompBuf;
(void) ath9k_hw_settxqueueprops(ah, q, qInfo); (void) ath9k_hw_set_txq_props(ah, q, qinfo);
} }
return q; return q;
......
...@@ -700,7 +700,7 @@ static int ath9k_conf_tx(struct ieee80211_hw *hw, ...@@ -700,7 +700,7 @@ static int ath9k_conf_tx(struct ieee80211_hw *hw,
const struct ieee80211_tx_queue_params *params) const struct ieee80211_tx_queue_params *params)
{ {
struct ath_softc *sc = hw->priv; struct ath_softc *sc = hw->priv;
struct ath9k_txq_info qi; struct ath9k_tx_queue_info qi;
int ret = 0, qnum; int ret = 0, qnum;
if (queue >= WME_NUM_AC) if (queue >= WME_NUM_AC)
......
...@@ -2209,7 +2209,7 @@ int ath_tx_cleanup(struct ath_softc *sc) ...@@ -2209,7 +2209,7 @@ int ath_tx_cleanup(struct ath_softc *sc)
struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype) struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype)
{ {
struct ath_hal *ah = sc->sc_ah; struct ath_hal *ah = sc->sc_ah;
struct ath9k_txq_info qi; struct ath9k_tx_queue_info qi;
int qnum; int qnum;
memzero(&qi, sizeof(qi)); memzero(&qi, sizeof(qi));
...@@ -2217,7 +2217,7 @@ struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype) ...@@ -2217,7 +2217,7 @@ struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype)
qi.tqi_aifs = ATH9K_TXQ_USEDEFAULT; qi.tqi_aifs = ATH9K_TXQ_USEDEFAULT;
qi.tqi_cwmin = ATH9K_TXQ_USEDEFAULT; qi.tqi_cwmin = ATH9K_TXQ_USEDEFAULT;
qi.tqi_cwmax = ATH9K_TXQ_USEDEFAULT; qi.tqi_cwmax = ATH9K_TXQ_USEDEFAULT;
qi.tqi_compBuf = 0; qi.tqi_physCompBuf = 0;
/* /*
* Enable interrupts only for EOL and DESC conditions. * Enable interrupts only for EOL and DESC conditions.
...@@ -2337,11 +2337,12 @@ int ath_tx_get_qnum(struct ath_softc *sc, int qtype, int haltype) ...@@ -2337,11 +2337,12 @@ int ath_tx_get_qnum(struct ath_softc *sc, int qtype, int haltype)
/* Update parameters for a transmit queue */ /* Update parameters for a transmit queue */
int ath_txq_update(struct ath_softc *sc, int qnum, struct ath9k_txq_info *qi0) int ath_txq_update(struct ath_softc *sc, int qnum,
struct ath9k_tx_queue_info *qinfo)
{ {
struct ath_hal *ah = sc->sc_ah; struct ath_hal *ah = sc->sc_ah;
int error = 0; int error = 0;
struct ath9k_txq_info qi; struct ath9k_tx_queue_info qi;
if (qnum == sc->sc_bhalq) { if (qnum == sc->sc_bhalq) {
/* /*
...@@ -2349,20 +2350,20 @@ int ath_txq_update(struct ath_softc *sc, int qnum, struct ath9k_txq_info *qi0) ...@@ -2349,20 +2350,20 @@ int ath_txq_update(struct ath_softc *sc, int qnum, struct ath9k_txq_info *qi0)
* It will be picked up by ath_beaconq_config when * It will be picked up by ath_beaconq_config when
* it's necessary. * it's necessary.
*/ */
sc->sc_beacon_qi = *qi0; sc->sc_beacon_qi = *qinfo;
return 0; return 0;
} }
ASSERT(sc->sc_txq[qnum].axq_qnum == qnum); ASSERT(sc->sc_txq[qnum].axq_qnum == qnum);
ath9k_hw_gettxqueueprops(ah, qnum, &qi); ath9k_hw_get_txq_props(ah, qnum, &qi);
qi.tqi_aifs = qi0->tqi_aifs; qi.tqi_aifs = qinfo->tqi_aifs;
qi.tqi_cwmin = qi0->tqi_cwmin; qi.tqi_cwmin = qinfo->tqi_cwmin;
qi.tqi_cwmax = qi0->tqi_cwmax; qi.tqi_cwmax = qinfo->tqi_cwmax;
qi.tqi_burstTime = qi0->tqi_burstTime; qi.tqi_burstTime = qinfo->tqi_burstTime;
qi.tqi_readyTime = qi0->tqi_readyTime; qi.tqi_readyTime = qinfo->tqi_readyTime;
if (!ath9k_hw_settxqueueprops(ah, qnum, &qi)) { if (!ath9k_hw_set_txq_props(ah, qnum, &qi)) {
DPRINTF(sc, ATH_DBG_FATAL, DPRINTF(sc, ATH_DBG_FATAL,
"%s: unable to update hardware queue %u!\n", "%s: unable to update hardware queue %u!\n",
__func__, qnum); __func__, qnum);
...@@ -2376,11 +2377,11 @@ int ath_txq_update(struct ath_softc *sc, int qnum, struct ath9k_txq_info *qi0) ...@@ -2376,11 +2377,11 @@ int ath_txq_update(struct ath_softc *sc, int qnum, struct ath9k_txq_info *qi0)
int ath_cabq_update(struct ath_softc *sc) int ath_cabq_update(struct ath_softc *sc)
{ {
struct ath9k_txq_info qi; struct ath9k_tx_queue_info qi;
int qnum = sc->sc_cabq->axq_qnum; int qnum = sc->sc_cabq->axq_qnum;
struct ath_beacon_config conf; struct ath_beacon_config conf;
ath9k_hw_gettxqueueprops(sc->sc_ah, qnum, &qi); ath9k_hw_get_txq_props(sc->sc_ah, qnum, &qi);
/* /*
* Ensure the readytime % is within the bounds. * Ensure the readytime % is within the bounds.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment