@@ -2437,6 +2437,71 @@ ath12k_htt_print_pdev_stats_cca_counters_tlv(const void *tag_buf, u16 tag_len,
2437
2437
stats_req -> buf_len = len ;
2438
2438
}
2439
2439
2440
+ static void
2441
+ ath12k_htt_print_pdev_obss_pd_stats_tlv (const void * tag_buf , u16 tag_len ,
2442
+ struct debug_htt_stats_req * stats_req )
2443
+ {
2444
+ const struct ath12k_htt_pdev_obss_pd_stats_tlv * htt_stats_buf = tag_buf ;
2445
+ u8 * buf = stats_req -> buf ;
2446
+ u32 len = stats_req -> buf_len ;
2447
+ u32 buf_len = ATH12K_HTT_STATS_BUF_SIZE ;
2448
+ u8 i ;
2449
+ static const char * access_cat_names [ATH12K_HTT_NUM_AC_WMM ] = {"best effort" ,
2450
+ "background" ,
2451
+ "video" , "voice" };
2452
+
2453
+ if (tag_len < sizeof (* htt_stats_buf ))
2454
+ return ;
2455
+
2456
+ len += scnprintf (buf + len , buf_len - len , "HTT_PDEV_OBSS_PD_STATS_TLV:\n" );
2457
+ len += scnprintf (buf + len , buf_len - len , "num_spatial_reuse_tx = %u\n" ,
2458
+ le32_to_cpu (htt_stats_buf -> num_sr_tx_transmissions ));
2459
+ len += scnprintf (buf + len , buf_len - len ,
2460
+ "num_spatial_reuse_opportunities = %u\n" ,
2461
+ le32_to_cpu (htt_stats_buf -> num_spatial_reuse_opportunities ));
2462
+ len += scnprintf (buf + len , buf_len - len , "num_non_srg_opportunities = %u\n" ,
2463
+ le32_to_cpu (htt_stats_buf -> num_non_srg_opportunities ));
2464
+ len += scnprintf (buf + len , buf_len - len , "num_non_srg_ppdu_tried = %u\n" ,
2465
+ le32_to_cpu (htt_stats_buf -> num_non_srg_ppdu_tried ));
2466
+ len += scnprintf (buf + len , buf_len - len , "num_non_srg_ppdu_success = %u\n" ,
2467
+ le32_to_cpu (htt_stats_buf -> num_non_srg_ppdu_success ));
2468
+ len += scnprintf (buf + len , buf_len - len , "num_srg_opportunities = %u\n" ,
2469
+ le32_to_cpu (htt_stats_buf -> num_srg_opportunities ));
2470
+ len += scnprintf (buf + len , buf_len - len , "num_srg_ppdu_tried = %u\n" ,
2471
+ le32_to_cpu (htt_stats_buf -> num_srg_ppdu_tried ));
2472
+ len += scnprintf (buf + len , buf_len - len , "num_srg_ppdu_success = %u\n" ,
2473
+ le32_to_cpu (htt_stats_buf -> num_srg_ppdu_success ));
2474
+ len += scnprintf (buf + len , buf_len - len , "num_psr_opportunities = %u\n" ,
2475
+ le32_to_cpu (htt_stats_buf -> num_psr_opportunities ));
2476
+ len += scnprintf (buf + len , buf_len - len , "num_psr_ppdu_tried = %u\n" ,
2477
+ le32_to_cpu (htt_stats_buf -> num_psr_ppdu_tried ));
2478
+ len += scnprintf (buf + len , buf_len - len , "num_psr_ppdu_success = %u\n" ,
2479
+ le32_to_cpu (htt_stats_buf -> num_psr_ppdu_success ));
2480
+ len += scnprintf (buf + len , buf_len - len , "min_duration_check_flush_cnt = %u\n" ,
2481
+ le32_to_cpu (htt_stats_buf -> num_obss_min_dur_check_flush_cnt ));
2482
+ len += scnprintf (buf + len , buf_len - len , "sr_ppdu_abort_flush_cnt = %u\n\n" ,
2483
+ le32_to_cpu (htt_stats_buf -> num_sr_ppdu_abort_flush_cnt ));
2484
+
2485
+ len += scnprintf (buf + len , buf_len - len , "HTT_PDEV_OBSS_PD_PER_AC_STATS:\n" );
2486
+ for (i = 0 ; i < ATH12K_HTT_NUM_AC_WMM ; i ++ ) {
2487
+ len += scnprintf (buf + len , buf_len - len , "Access Category %u (%s)\n" ,
2488
+ i , access_cat_names [i ]);
2489
+ len += scnprintf (buf + len , buf_len - len ,
2490
+ "num_non_srg_ppdu_tried = %u\n" ,
2491
+ le32_to_cpu (htt_stats_buf -> num_non_srg_tried_per_ac [i ]));
2492
+ len += scnprintf (buf + len , buf_len - len ,
2493
+ "num_non_srg_ppdu_success = %u\n" ,
2494
+ le32_to_cpu (htt_stats_buf -> num_non_srg_success_ac [i ]));
2495
+ len += scnprintf (buf + len , buf_len - len , "num_srg_ppdu_tried = %u\n" ,
2496
+ le32_to_cpu (htt_stats_buf -> num_srg_tried_per_ac [i ]));
2497
+ len += scnprintf (buf + len , buf_len - len ,
2498
+ "num_srg_ppdu_success = %u\n\n" ,
2499
+ le32_to_cpu (htt_stats_buf -> num_srg_success_per_ac [i ]));
2500
+ }
2501
+
2502
+ stats_req -> buf_len = len ;
2503
+ }
2504
+
2440
2505
static int ath12k_dbg_htt_ext_stats_parse (struct ath12k_base * ab ,
2441
2506
u16 tag , u16 len , const void * tag_buf ,
2442
2507
void * user_data )
@@ -2607,6 +2672,9 @@ static int ath12k_dbg_htt_ext_stats_parse(struct ath12k_base *ab,
2607
2672
case HTT_STATS_PDEV_CCA_COUNTERS_TAG :
2608
2673
ath12k_htt_print_pdev_stats_cca_counters_tlv (tag_buf , len , stats_req );
2609
2674
break ;
2675
+ case HTT_STATS_PDEV_OBSS_PD_TAG :
2676
+ ath12k_htt_print_pdev_obss_pd_stats_tlv (tag_buf , len , stats_req );
2677
+ break ;
2610
2678
default :
2611
2679
break ;
2612
2680
}
0 commit comments