X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tools%2Fcarlu%2Fsrc%2Ftx.c;h=ec97502038f0e5a3c8c68f1c35ae6c2e901d95ce;hb=01333d7d7a1ce6be94e5dad4112f573fda476efe;hp=bfeb7e67e687a88a9900eedfdf0a63c01df3c3d6;hpb=e72388a0aa23da8bc8e24a0cbe9d523c5a9ce294;p=carl9170fw.git diff --git a/tools/carlu/src/tx.c b/tools/carlu/src/tx.c index bfeb7e6..ec97502 100644 --- a/tools/carlu/src/tx.c +++ b/tools/carlu/src/tx.c @@ -1,9 +1,9 @@ /* - * carl9170user - userspace testing utility for ar9170 devices + * carlu - userspace testing utility for ar9170 devices * * xmit - related functions * - * Copyright 2009, 2010 Christian Lamparter + * Copyright 2009-2011 Christian Lamparter * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -137,21 +137,25 @@ static void carlu_tx_fb_cb(struct carlu *ar, void carlu_tx_feedback(struct carlu *ar, struct carl9170_rsp *cmd) { - unsigned int i, n, k; + unsigned int i, n, k, q; struct frame *frame; struct carlu_tx_info *tx_info; n = cmd->hdr.ext; for (i = 0; i < n; i++) { - frame = carlu_find_frame(ar, cmd->tx_status[i].queue, - cmd->tx_status[i].cookie); + q = (cmd->_tx_status[i].info >> CARL9170_TX_STATUS_QUEUE_S) & + CARL9170_TX_STATUS_QUEUE; + frame = carlu_find_frame(ar, q, cmd->_tx_status[i].cookie); if (frame) { carlu_free_dev_mem(ar, frame); tx_info = get_tx_info(frame); - k = cmd->tx_status[i].rix; - tx_info->rates[k].cnt = cmd->tx_status[i].tries; + k = (cmd->_tx_status[i].info >> CARL9170_TX_STATUS_RIX) + & CARL9170_TX_STATUS_RIX_S; + tx_info->rates[k].cnt = (cmd->_tx_status[i].info >> + CARL9170_TX_STATUS_TRIES_S) & + CARL9170_TX_STATUS_TRIES; for (k++; k < CARL9170_TX_MAX_RATES; k++) { tx_info->rates[k].rix = -1; tx_info->rates[k].cnt = -1; @@ -160,7 +164,7 @@ void carlu_tx_feedback(struct carlu *ar, carlu_tx_fb_cb(ar, frame); } else { err("Found no frame for cookie %d.\n", - cmd->tx_status[i].cookie); + cmd->_tx_status[i].cookie); } } } @@ -184,7 +188,7 @@ int carlu_tx(struct carlu *ar, struct frame *frame) txp->s.len = cpu_to_le16(frame->len); - queue = ar9170_qmap[frame->queue % ARRAY_SIZE(ar9170_qmap)]; + queue = (frame->queue % __AR9170_NUM_TXQ); SET_VAL(CARL9170_TX_SUPER_MISC_QUEUE, txp->s.misc, queue); @@ -195,9 +199,9 @@ int carlu_tx(struct carlu *ar, struct frame *frame) txp->f.mac_control |= cpu_to_le16(queue << AR9170_TX_MAC_QOS_S); txp->f.phy_control = cpu_to_le32(AR9170_TX_PHY_MOD_CCK | AR9170_TX_PHY_BW_20MHZ | - ((17 * 2) << AR9170_TX_PHY_TX_PWR_SHIFT) | - (AR9170_TX_PHY_TXCHAIN_1 << AR9170_TX_PHY_TXCHAIN_SHIFT) | - (11 << AR9170_TX_PHY_MCS_SHIFT)); + ((17 * 2) << AR9170_TX_PHY_TX_PWR_S) | + (AR9170_TX_PHY_TXCHAIN_1 << AR9170_TX_PHY_TXCHAIN_S) | + (11 << AR9170_TX_PHY_MCS_S)); frame_queue_tail(&ar->tx_sent_queue[queue], frame); carlusb_tx(ar, frame);