Adds Refresh Rate to fw_dut_info.go
BUG=b:326315770
TEST=manual (go run fw_dut_info.go $HOST)
Change-Id: Ibc86548de1dc4c9a4115d325e28c156cf5303d75
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crostestutils/+/5338006
Reviewed-by: Andrew Luo <aluo@chromium.org>
Tested-by: Sean Carpenter <seancarpenter@google.com>
Commit-Queue: Sean Carpenter <seancarpenter@google.com>
diff --git a/go/src/firmware/cmd/dut_info/fw_dut_info.go b/go/src/firmware/cmd/dut_info/fw_dut_info.go
index caf4a47..a569d26 100644
--- a/go/src/firmware/cmd/dut_info/fw_dut_info.go
+++ b/go/src/firmware/cmd/dut_info/fw_dut_info.go
@@ -46,6 +46,7 @@
nvmeFirmwareVersion string
displaySize string
displayResolution string
+ displayRefreshRate string
vpd string
}
@@ -105,6 +106,7 @@
fmt.Println()
d.printField("Display Size", d.displaySize)
d.printField("Display Resolution", d.displayResolution)
+ d.printField("Display Refresh Rate", d.displayRefreshRate)
fmt.Println()
d.printField("VPD", d.vpd)
}
@@ -461,6 +463,22 @@
return buildErr(stderr)
}
+// setDisplayRefreshRate gets the refresh rate of the display in Hz
+func (d *dut) setDisplayRefreshRate() error {
+ stdout, stderr := dutio.ExecuteRemoteCommand(
+ d.hostname,
+ "find /sys -name '*edid' -exec edid-decode {} \\;",
+ )
+ r := regexp.MustCompile(`DTD.*\s(?P<RefreshRate>\d+\.\d+ Hz)`)
+ res := r.FindStringSubmatch(stdout)
+ if len(res) > 1 {
+ d.displayRefreshRate = res[1]
+ } else {
+ stderr += fmt.Sprintf("Unable to parse setDisplayRefreshRate stdout: \"%s\"\n", stdout)
+ }
+ return buildErr(stderr)
+}
+
// setVPD interfaces with a DUT and sets the vpd field (the "Vital Product
// Data").
func (d *dut) setVPD() error {
@@ -500,6 +518,7 @@
d.setField("NVMe Firmware", d.setNVMEFirmwareVersion)
d.setField("Display Size", d.setDisplaySize)
d.setField("Display Resolution", d.setDisplayResolution)
+ d.setField("Display Refresh Rate", d.setDisplayRefreshRate)
d.setField("VPD", d.setVPD)
return d
}