diff --git a/tools/tools/ath/athalq/ar9300_ds.c b/tools/tools/ath/athalq/ar9300_ds.c index d303351e708d..a554929f28e1 100644 --- a/tools/tools/ath/athalq/ar9300_ds.c +++ b/tools/tools/ath/athalq/ar9300_ds.c @@ -317,6 +317,80 @@ ar9300_decode_rxstatus(struct if_ath_alq_payload *a) (unsigned int) be32toh(a->hdr.tstamp_sec), (unsigned int) be32toh(a->hdr.tstamp_usec), (unsigned long long) be64toh(a->hdr.threadid)); + + /* status1 */ + /* .. and status5 */ + printf(" RSSI %d/%d/%d / %d/%d/%d; combined: %d; rate=0x%02x\n", + MS(rxs.status1, AR_rx_rssi_ant00), + MS(rxs.status1, AR_rx_rssi_ant01), + MS(rxs.status1, AR_rx_rssi_ant02), + MS(rxs.status5, AR_rx_rssi_ant10), + MS(rxs.status5, AR_rx_rssi_ant11), + MS(rxs.status5, AR_rx_rssi_ant12), + MS(rxs.status5, AR_rx_rssi_combined), + MS(rxs.status1, AR_rx_rate)); + + /* status2 */ + printf(" Len: %d; more=%d, delim=%d, upload=%d\n", + MS(rxs.status2, AR_data_len), + MF(rxs.status2, AR_rx_more), + MS(rxs.status2, AR_num_delim), + MS(rxs.status2, AR_hw_upload_data)); + + /* status3 */ + printf(" RX timestamp: %d\n", rxs.status3); + + /* status4 */ + printf(" GI: %d, 2040: %d, parallel40: %d, stbc=%d\n", + MF(rxs.status4, AR_gi), + MF(rxs.status4, AR_2040), + MF(rxs.status4, AR_parallel40), + MF(rxs.status4, AR_rx_stbc)); + printf(" Not sounding: %d, ness: %d, upload_valid: %d\n", + MF(rxs.status4, AR_rx_not_sounding), + MS(rxs.status4, AR_rx_ness), + MS(rxs.status4, AR_hw_upload_data_valid)); + printf(" RX antenna: 0x%08x\n", + MS(rxs.status4, AR_rx_antenna)); + + /* EVM */ + /* status6 - 9 */ + printf(" EVM: 0x%08x; 0x%08x; 0x%08x; 0x%08x\n", + rxs.status6, + rxs.status7, + rxs.status8, + rxs.status9); + + /* status10 - ? */ + + /* status11 */ + printf(" RX done: %d, RX frame ok: %d, CRC error: %d\n", + MF(rxs.status11, AR_rx_done), + MF(rxs.status11, AR_rx_frame_ok), + MF(rxs.status11, AR_crc_err)); + printf(" Decrypt CRC err: %d, PHY err: %d, MIC err: %d\n", + MF(rxs.status11, AR_decrypt_crc_err), + MF(rxs.status11, AR_phyerr), + MF(rxs.status11, AR_michael_err)); + printf(" Pre delim CRC err: %d, uAPSD Trig: %d\n", + MF(rxs.status11, AR_pre_delim_crc_err), + MF(rxs.status11, AR_apsd_trig)); + printf(" RXKeyIdxValid: %d, KeyIdx: %d, PHY error: %d\n", + MF(rxs.status11, AR_rx_key_idx_valid), + MS(rxs.status11, AR_key_idx), + MS(rxs.status11, AR_phy_err_code)); + printf(" RX more Aggr: %d, RX aggr %d, post delim CRC err: %d\n", + MF(rxs.status11, AR_rx_more_aggr), + MF(rxs.status11, AR_rx_aggr), + MF(rxs.status11, AR_post_delim_crc_err)); + printf(" hw upload data type: %d; position bit: %d\n", + MS(rxs.status11, AR_hw_upload_data_type), + MF(rxs.status11, AR_position_bit)); + printf(" Hi RX chain: %d, RxFirstAggr: %d, DecryptBusy: %d, KeyMiss: %d\n", + MF(rxs.status11, AR_hi_rx_chain), + MF(rxs.status11, AR_rx_first_aggr), + MF(rxs.status11, AR_decrypt_busy_err), + MF(rxs.status11, AR_key_miss)); } void