Home | History | Annotate | Download | only in wifi_hal

Lines Matching full:info

88 static wifi_error update_connectivity_ring_buf(hal_info *info,
103 if (info->rb_infos[CONNECTIVITY_EVENTS_RB_ID].verbose_level >= 1 &&
104 info->on_ring_buffer_data) {
105 return ring_buffer_write(&info->rb_infos[CONNECTIVITY_EVENTS_RB_ID],
113 static wifi_error process_log_extscan_capabilities(hal_info *info,
205 status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
212 static wifi_error process_bt_coex_scan_event(hal_info *info,
258 status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
266 static wifi_error process_bt_coex_event(hal_info *info, u32 id,
378 status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
386 static wifi_error process_extscan_event(hal_info *info, u32 id,
520 status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
528 static wifi_error process_addba_success_event(hal_info *info,
564 status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
572 static wifi_error process_addba_failed_event(hal_info *info,
608 status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
616 static wifi_error process_roam_event(hal_info *info, u32 id,
751 status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
759 wifi_error process_firmware_prints(hal_info *info, u8 *buf, u16 length)
772 if (info->rb_infos[FIRMWARE_PRINTS_RB_ID].verbose_level >= 1 &&
773 info->on_ring_buffer_data) {
776 status = ring_buffer_write(&info->rb_infos[FIRMWARE_PRINTS_RB_ID],
785 status = ring_buffer_write(&info->rb_infos[FIRMWARE_PRINTS_RB_ID],
796 static wifi_error process_beacon_received_event(hal_info *info,
827 status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
835 static wifi_error process_fw_diag_msg(hal_info *info, u8* buf, u16 length)
858 status = process_bt_coex_event(info, id,
868 status = process_bt_coex_scan_event(info, id,
882 status = process_extscan_event(info, id,
894 status = process_roam_event(info, id,
903 status = process_addba_success_event(info,
912 status = process_addba_failed_event(info,
921 status = process_beacon_received_event(info,
941 status = process_log_extscan_capabilities(info,
958 process_firmware_prints(info, (u8 *)diag_msg_hdr,
983 static wifi_error process_wlan_pe_event(hal_info *info, u8* buf, int length)
1025 status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
1033 static wifi_error process_wlan_eapol_event(hal_info *info, u8* buf, int length)
1078 status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
1086 static wifi_error process_wakelock_event(hal_info *info, u8* buf, int length)
1139 if (info->rb_infos[POWER_EVENTS_RB_ID].verbose_level >= 1 &&
1140 info->on_ring_buffer_data) {
1141 status = ring_buffer_write(&info->rb_infos[POWER_EVENTS_RB_ID],
1158 static void process_wlan_log_complete_event(hal_info *info,
1167 push_out_all_ring_buffers(info);
1171 send_alert(info, lfd_event->reason_code);
1176 static void process_wlan_low_resource_failure(hal_info *info,
1212 status = update_connectivity_ring_buf(info, pRingBufferEntry, tot_len);
1219 static wifi_error update_stats_to_ring_buf(hal_info *info,
1235 if ((info->rb_infos[PKT_STATS_RB_ID].verbose_level >= VERBOSE_DEBUG_PROBLEM)
1236 && info->on_ring_buffer_data) {
1237 ring_buffer_write(&info->rb_infos[PKT_STATS_RB_ID],
1316 static wifi_error populate_rx_aggr_stats(hal_info *info)
1319 wifi_ring_buffer_entry *pRingBufferEntry = info->rx_aggr_pkts;
1323 while (index < info->rx_buf_size_occupied) {
1326 pps_entry->MCS = info->aggr_stats.RxMCS.mcs;
1327 pps_entry->last_transmit_rate = info->aggr_stats.last_transmit_rate;
1328 pps_entry->rssi = info->aggr_stats.rssi;
1329 pps_entry->firmware_entry_timestamp = info->aggr_stats.timestamp;
1330 pps_entry->tid = info->aggr_stats.tid;
1333 status = update_stats_to_ring_buf(info, (u8 *)pRingBufferEntry,
1347 memset(info->rx_aggr_pkts, 0, info->rx_buf_size_occupied);
1348 info->rx_buf_size_occupied = 0;
1353 static wifi_error parse_rx_stats(hal_info *info, u8 *buf, u16 size)
1362 memset(info->rx_aggr_pkts, 0, info->rx_buf_size_occupied);
1363 memset(&info->aggr_stats, 0, sizeof(rx_aggr_stats));
1364 info->rx_buf_size_occupied = 0;
1372 if (len_ring_buffer_entry + info->rx_buf_size_occupied
1373 > info->rx_buf_size_allocated) {
1375 temp = (wifi_ring_buffer_entry *)realloc(info->rx_aggr_pkts,
1376 len_ring_buffer_entry + info->rx_buf_size_occupied);
1379 free(info->rx_aggr_pkts);
1380 info->rx_aggr_pkts = NULL;
1383 info->rx_aggr_pkts = temp;
1384 memset((u8 *)info->rx_aggr_pkts + info->rx_buf_size_allocated, 0,
1385 len_ring_buffer_entry + info->rx_buf_size_occupied
1386 - info->rx_buf_size_allocated);
1387 info->rx_buf_size_allocated =
1388 len_ring_buffer_entry + info->rx_buf_size_occupied;
1391 pRingBufferEntry = (wifi_ring_buffer_entry *)((u8 *)info->rx_aggr_pkts
1392 + info->rx_buf_size_occupied);
1394 info->rx_buf_size_occupied += len_ring_buffer_entry;
1423 MCS *mcs = &info->aggr_stats.RxMCS;
1427 memset(&info->aggr_stats, 0, sizeof(rx_aggr_stats));
1454 info->aggr_stats.last_transmit_rate
1455 = get_rate(info->aggr_stats.RxMCS.mcs);
1457 info->aggr_stats.rssi = rx_stats_rcvd->ppdu_start.rssi_comb;
1458 info->aggr_stats.tid = rx_stats_rcvd->mpdu_start.tid;
1470 info->aggr_stats.timestamp = rx_stats_rcvd->ppdu_end.tsf_timestamp;
1471 status = populate_rx_aggr_stats(info);
1516 static void get_tx_aggr_stats(struct tx_ppdu_start *ppdu_start, hal_info *info)
1521 info->pkt_stats->tx_seqnum_bitmap_31_0 = ppdu_start->seqnum_bitmap_31_0;
1522 info->pkt_stats->tx_seqnum_bitmap_63_32 = ppdu_start->seqnum_bitmap_63_32;
1524 if (info->pkt_stats->isBlockAck) {
1525 int baShift = ppdu_start->start_seq_num - info->pkt_stats->ba_seq_num;
1532 baBitmap0 = info->pkt_stats->ba_bitmap_31_0;
1533 baBitmap1 = info->pkt_stats->ba_bitmap_63_32;
1542 info->pkt_stats->shifted_bitmap_31_0 =
1544 info->pkt_stats->shifted_bitmap_63_32 = baBitmap1 >> baShift;
1546 info->pkt_stats->shifted_bitmap_31_0 =
1548 info->pkt_stats->shifted_bitmap_63_32 = 0;
1554 info->pkt_stats->shifted_bitmap_31_0 = baBitmap0 << baShift;
1555 info->pkt_stats->shifted_bitmap_63_32 =
1559 info->pkt_stats->shifted_bitmap_31_0 = 0;
1560 info->pkt_stats->shifted_bitmap_63_32 =
1565 info->pkt_stats->shifted_bitmap_31_0 = 0;
1566 info->pkt_stats->shifted_bitmap_63_32 = 0;
1570 static void get_try_status_params(hal_info *info,
1580 info->pkt_stats->tx_bandwidth =
1582 info->pkt_stats->series =
1586 static wifi_error parse_tx_stats(hal_info *info, void *buf,
1592 (wifi_ring_buffer_entry *)info->pkt_stats->tx_stats;
1616 info->pkt_stats->start_seq_num = ppdu_start->start_seq_num;
1618 rb_pkt_stats->MCS = get_tx_mcs(info->pkt_stats->series, ppdu_start) |
1619 (info->pkt_stats->tx_bandwidth << BW_OFFSET);
1623 get_tx_aggr_stats(ppdu_start, info);
1624 info->pkt_stats->tx_stats_events |= BIT(PKTLOG_TYPE_TX_CTRL);
1638 if (info->pkt_stats->tx_stats_events)
1644 info->pkt_stats->ba_seq_num = tx_ppdu_end->stat.ba_start_seq_num;
1645 info->pkt_stats->isBlockAck = tx_ppdu_end->stat.ba_status;
1649 info->pkt_stats->isBlockAck = tx_ppdu_end->stat.ba_status;
1651 info->pkt_stats->ba_bitmap_31_0 = tx_ppdu_end->stat.ba_bitmap_31_0;
1652 info->pkt_stats->ba_bitmap_63_32 =
1658 get_try_status_params(info, tx_ppdu_end);
1660 info->pkt_stats->tx_stats_events |= BIT(PKTLOG_TYPE_TX_STAT);
1665 memset(info->pkt_stats, 0, sizeof(struct pkt_stats_s));
1666 info->pkt_stats->num_msdu = *(u8 *)buf;
1667 info->pkt_stats->tx_stats_events = BIT(PKTLOG_TYPE_TX_MSDU_ID);
1685 if ((info->pkt_stats->tx_stats_events & BIT(PKTLOG_TYPE_TX_CTRL)) &&
1686 (info->pkt_stats->tx_stats_events & BIT(PKTLOG_TYPE_TX_STAT)) &&
1687 (info->pkt_stats->tx_stats_events & BIT(PKTLOG_TYPE_TX_MSDU_ID))) {
1692 if (info->pkt_stats->num_msdu == 1) {
1696 status = update_stats_to_ring_buf(info,
1707 if (info->pkt_stats->tx_seqnum_bitmap_31_0 & BIT(i)) {
1708 if (info->pkt_stats->shifted_bitmap_31_0 & BIT(i)) {
1720 if (info->pkt_stats->tx_seqnum_bitmap_63_32
1722 if (info->pkt_stats->shifted_bitmap_63_32
1736 info->pkt_stats->start_seq_num + i;
1741 status = update_stats_to_ring_buf(info,
1755 info->pkt_stats->tx_stats_events = 0;
1764 wifi_error write_per_packet_stats_to_rb(hal_info *info, u8 *buf, u16 length)
1777 if (info->rb_infos[PKT_STATS_RB_ID].verbose_level >= 3 &&
1778 info->on_ring_buffer_data) {
1781 status = ring_buffer_write(&info->rb_infos[PKT_STATS_RB_ID],
1790 status = ring_buffer_write(&info->rb_infos[PKT_STATS_RB_ID],
1803 static wifi_error parse_tx_pkt_fate_stats(hal_info *info, u8 *buf, u16 size)
1808 if (info->pkt_fate_stats->n_tx_stats_collected >= MAX_FATE_LOG_LEN) {
1814 pkt_fate_stats = &info->pkt_fate_stats->tx_fate_stats[
1815 info->pkt_fate_stats->n_tx_stats_collected];
1833 info->pkt_fate_stats->n_tx_stats_collected);
1837 info->pkt_fate_stats->n_tx_stats_collected++;
1843 static wifi_error parse_rx_pkt_fate_stats(hal_info *info, u8 *buf, u16 size)
1848 if (info->pkt_fate_stats->n_rx_stats_collected >= MAX_FATE_LOG_LEN) {
1854 pkt_fate_stats = &info->pkt_fate_stats->rx_fate_stats[
1855 info->pkt_fate_stats->n_rx_stats_collected];
1873 info->pkt_fate_stats->n_rx_stats_collected);
1877 info->pkt_fate_stats->n_rx_stats_collected++;
1883 static wifi_error trigger_fate_stats(hal_info *info, u8 *buf, u16 size)
1886 packet_fate_monitor_info *pkt_fate_stats = info->pkt_fate_stats;
1905 static wifi_error report_fate_stats(hal_info *info, u8 *buf, u16 size)
1912 static wifi_error parse_pkt_fate_stats(hal_info *info, u8 *buf, u16 size)
1919 trigger_fate_stats(info, buf, size);
1922 report_fate_stats(info, buf, size);
1926 parse_tx_pkt_fate_stats(info, buf, size);
1930 parse_rx_pkt_fate_stats(info, buf, size);
1940 static wifi_error parse_stats_record(hal_info *info,
1945 status = write_per_packet_stats_to_rb(info,
1951 status = parse_rx_stats(info,
1957 pthread_mutex_lock(&info->pkt_fate_stats_lock);
1958 if (info->fate_monitoring_enabled)
1959 status = parse_pkt_fate_stats(info,
1964 pthread_mutex_unlock(&info->pkt_fate_stats_lock);
1966 status = parse_tx_stats(info,
1974 static wifi_error parse_stats(hal_info *info, u8 *data, u32 buflen)
1991 status = parse_stats_record(info, pkt_stats_header);
2004 wifi_error process_driver_prints(hal_info *info, u8 *buf, u16 length)
2017 if (info->rb_infos[DRIVER_PRINTS_RB_ID].verbose_level >= 1 &&
2018 info->on_ring_buffer_data) {
2021 status = ring_buffer_write(&info->rb_infos[DRIVER_PRINTS_RB_ID],
2030 status = ring_buffer_write(&info->rb_infos[DRIVER_PRINTS_RB_ID],
2041 wifi_error diag_message_handler(hal_info *info, nl_msg *msg)
2074 process_wakelock_event(info, buf, event_hdr->length);
2077 process_wlan_pe_event(info, buf, event_hdr->length);
2080 process_wlan_eapol_event(info, buf, event_hdr->length);
2083 process_wlan_log_complete_event(info, buf, event_hdr->length);
2086 process_wlan_low_resource_failure(info, buf, event_hdr->length);
2098 if ((info->prev_seq_no + 1) !=
2102 info->prev_seq_no);
2103 if (info->pkt_stats->tx_stats_events) {
2104 info->pkt_stats->tx_stats_events = 0;
2105 memset(&info->pkt_stats->tx_stats, 0,
2110 info->prev_seq_no =
2112 status = parse_stats(info,
2134 process_driver_prints(info, (u8 *)(wnl + 1), wnl->wmsg.length);
2136 process_firmware_prints(info, (u8 *)(wnl + 1), wnl->wmsg.length);
2160 process_fw_diag_msg(info, &slot->payload[0], length);