@@ -654,10 +654,10 @@ static void rtw_print_rate(struct seq_file *m, u8 rate)
654654 case DESC_RATE6M ...DESC_RATE54M :
655655 rtw_print_ofdm_rate_txt (m , rate );
656656 break ;
657- case DESC_RATEMCS0 ...DESC_RATEMCS15 :
657+ case DESC_RATEMCS0 ...DESC_RATEMCS31 :
658658 rtw_print_ht_rate_txt (m , rate );
659659 break ;
660- case DESC_RATEVHT1SS_MCS0 ...DESC_RATEVHT2SS_MCS9 :
660+ case DESC_RATEVHT1SS_MCS0 ...DESC_RATEVHT4SS_MCS9 :
661661 rtw_print_vht_rate_txt (m , rate );
662662 break ;
663663 default :
@@ -692,9 +692,11 @@ static int rtw_debugfs_get_tx_pwr_tbl(struct seq_file *m, void *v)
692692{
693693 struct rtw_debugfs_priv * debugfs_priv = m -> private ;
694694 struct rtw_dev * rtwdev = debugfs_priv -> rtwdev ;
695+ struct rtw_power_params pwr_param = {0 };
695696 struct rtw_hal * hal = & rtwdev -> hal ;
697+ u8 nss = rtwdev -> efuse .hw_cap .nss ;
696698 u8 path , rate , bw , ch , regd ;
697- struct rtw_power_params pwr_param = { 0 } ;
699+ u8 max_ht_rate , max_rate ;
698700
699701 mutex_lock (& rtwdev -> mutex );
700702 bw = hal -> current_band_width ;
@@ -707,19 +709,23 @@ static int rtw_debugfs_get_tx_pwr_tbl(struct seq_file *m, void *v)
707709 seq_printf (m , "%-4s %-10s %-9s %-9s (%-4s %-4s %-4s) %-4s\n" ,
708710 "path" , "rate" , "pwr" , "base" , "byr" , "lmt" , "sar" , "rem" );
709711
712+ max_ht_rate = DESC_RATEMCS0 + nss * 8 - 1 ;
713+
714+ if (rtwdev -> chip -> vht_supported )
715+ max_rate = DESC_RATEVHT1SS_MCS0 + nss * 10 - 1 ;
716+ else
717+ max_rate = max_ht_rate ;
718+
710719 mutex_lock (& hal -> tx_power_mutex );
711- for (path = RF_PATH_A ; path <= RF_PATH_B ; path ++ ) {
720+ for (path = RF_PATH_A ; path < hal -> rf_path_num ; path ++ ) {
712721 /* there is no CCK rates used in 5G */
713722 if (hal -> current_band_type == RTW_BAND_5G )
714723 rate = DESC_RATE6M ;
715724 else
716725 rate = DESC_RATE1M ;
717726
718- /* now, not support vht 3ss and vht 4ss*/
719- for (; rate <= DESC_RATEVHT2SS_MCS9 ; rate ++ ) {
720- /* now, not support ht 3ss and ht 4ss*/
721- if (rate > DESC_RATEMCS15 &&
722- rate < DESC_RATEVHT1SS_MCS0 )
727+ for (; rate <= max_rate ; rate ++ ) {
728+ if (rate > max_ht_rate && rate <= DESC_RATEMCS31 )
723729 continue ;
724730
725731 rtw_get_tx_power_params (rtwdev , path , rate , bw ,
@@ -849,20 +855,28 @@ static int rtw_debugfs_get_phy_info(struct seq_file *m, void *v)
849855 last_cnt -> num_qry_pkt [rate_id + 9 ]);
850856 }
851857
852- seq_printf (m , "[RSSI(dBm)] = {%d, %d}\n" ,
858+ seq_printf (m , "[RSSI(dBm)] = {%d, %d, %d, %d }\n" ,
853859 dm_info -> rssi [RF_PATH_A ] - 100 ,
854- dm_info -> rssi [RF_PATH_B ] - 100 );
855- seq_printf (m , "[Rx EVM(dB)] = {-%d, -%d}\n" ,
860+ dm_info -> rssi [RF_PATH_B ] - 100 ,
861+ dm_info -> rssi [RF_PATH_C ] - 100 ,
862+ dm_info -> rssi [RF_PATH_D ] - 100 );
863+ seq_printf (m , "[Rx EVM(dB)] = {-%d, -%d, -%d, -%d}\n" ,
856864 dm_info -> rx_evm_dbm [RF_PATH_A ],
857- dm_info -> rx_evm_dbm [RF_PATH_B ]);
858- seq_printf (m , "[Rx SNR] = {%d, %d}\n" ,
865+ dm_info -> rx_evm_dbm [RF_PATH_B ],
866+ dm_info -> rx_evm_dbm [RF_PATH_C ],
867+ dm_info -> rx_evm_dbm [RF_PATH_D ]);
868+ seq_printf (m , "[Rx SNR] = {%d, %d, %d, %d}\n" ,
859869 dm_info -> rx_snr [RF_PATH_A ],
860- dm_info -> rx_snr [RF_PATH_B ]);
861- seq_printf (m , "[CFO_tail(KHz)] = {%d, %d}\n" ,
870+ dm_info -> rx_snr [RF_PATH_B ],
871+ dm_info -> rx_snr [RF_PATH_C ],
872+ dm_info -> rx_snr [RF_PATH_D ]);
873+ seq_printf (m , "[CFO_tail(KHz)] = {%d, %d, %d, %d}\n" ,
862874 dm_info -> cfo_tail [RF_PATH_A ],
863- dm_info -> cfo_tail [RF_PATH_B ]);
875+ dm_info -> cfo_tail [RF_PATH_B ],
876+ dm_info -> cfo_tail [RF_PATH_C ],
877+ dm_info -> cfo_tail [RF_PATH_D ]);
864878
865- if (dm_info -> curr_rx_rate >= DESC_RATE11M ) {
879+ if (dm_info -> curr_rx_rate >= DESC_RATE6M ) {
866880 seq_puts (m , "[Rx Average Status]:\n" );
867881 seq_printf (m , " * OFDM, EVM: {-%d}, SNR: {%d}\n" ,
868882 (u8 )ewma_evm_read (& ewma_evm [RTW_EVM_OFDM ]),
@@ -875,6 +889,13 @@ static int rtw_debugfs_get_phy_info(struct seq_file *m, void *v)
875889 (u8 )ewma_evm_read (& ewma_evm [RTW_EVM_2SS_B ]),
876890 (u8 )ewma_snr_read (& ewma_snr [RTW_SNR_2SS_A ]),
877891 (u8 )ewma_snr_read (& ewma_snr [RTW_SNR_2SS_B ]));
892+ seq_printf (m , " * 3SS, EVM: {-%d, -%d, -%d}, SNR: {%d, %d, %d}\n" ,
893+ (u8 )ewma_evm_read (& ewma_evm [RTW_EVM_3SS_A ]),
894+ (u8 )ewma_evm_read (& ewma_evm [RTW_EVM_3SS_B ]),
895+ (u8 )ewma_evm_read (& ewma_evm [RTW_EVM_3SS_C ]),
896+ (u8 )ewma_snr_read (& ewma_snr [RTW_SNR_3SS_A ]),
897+ (u8 )ewma_snr_read (& ewma_snr [RTW_SNR_3SS_B ]),
898+ (u8 )ewma_snr_read (& ewma_snr [RTW_SNR_3SS_C ]));
878899 }
879900
880901 seq_puts (m , "[Rx Counter]:\n" );
0 commit comments