diff --git a/nvme-print-stdout.c b/nvme-print-stdout.c index 3188dafaf3..d95f15cf28 100644 --- a/nvme-print-stdout.c +++ b/nvme-print-stdout.c @@ -2441,7 +2441,8 @@ static void stdout_id_ctrl_ipmsr(__le16 ctrl_ipmsr) __u16 srs = NVME_GET(ipmsr, CTRL_IPMSR_SRS); __u16 srv = NVME_GET(ipmsr, CTRL_IPMSR_SRV); - printf(" [15:8] : %#x\tSample Rate Scale\n", srs); + printf(" [15:8] : %#x\tSample Rate Scale (%s)\n", srs, + nvme_ipmsr_srs_to_string(srs)); printf(" [7:0] : %#x\tSample Rate Value\n", srv); printf("\n"); diff --git a/nvme-print.c b/nvme-print.c index 92de312aec..bb1756fffe 100644 --- a/nvme-print.c +++ b/nvme-print.c @@ -1542,6 +1542,26 @@ const char *nvme_power_measurement_action_to_string(__u8 act) return "Reserved"; } +const char *nvme_ipmsr_srs_to_string(__u8 srs) +{ + switch (srs) { + case 0: + return "Not reported"; + case 1: + return "1 microsecond"; + case 2: + return "10 microseconds"; + case 3: + return "100 microseconds"; + case 4: + return "1 millisecond"; + case 5: + return "10 milliseconds"; + default: + return "Reserved"; + } +} + void nvme_feature_show(enum nvme_features_id fid, int sel, unsigned int result) { nvme_print(show_feature, NORMAL, fid, sel, result); diff --git a/nvme-print.h b/nvme-print.h index 0d976215d1..2a0dcbf731 100644 --- a/nvme-print.h +++ b/nvme-print.h @@ -345,6 +345,7 @@ const char *nvme_bpwps_to_string(__u8 bpwps); const char *nvme_feature_power_limit_scale_to_string(__u8 pls); const char *nvme_power_measurement_type_to_string(__u8 pmt); const char *nvme_power_measurement_action_to_string(__u8 act); +const char *nvme_ipmsr_srs_to_string(__u8 srs); void nvme_dev_full_path(nvme_ns_t n, char *path, size_t len); void nvme_generic_full_path(nvme_ns_t n, char *path, size_t len);