summaryrefslogtreecommitdiff
path: root/sdm/libs/core/fb/hw_device.cpp
diff options
context:
space:
mode:
authorNaseer Ahmed <naseer@codeaurora.org>2017-05-30 17:01:44 -0400
committerNaseer Ahmed <naseer@codeaurora.org>2017-06-29 19:47:35 -0400
commit878959394bd5863b8fb1272d1db62f36a1b73401 (patch)
tree62da268216b4049e41a50d20c021b50a72a9f388 /sdm/libs/core/fb/hw_device.cpp
parent0b1ad3537b0c5f790be4222263146da266cbdc9e (diff)
downloaddisplay-878959394bd5863b8fb1272d1db62f36a1b73401.tar.gz
sdm: Save debug logs on pingpong timeout
Save xlogs in /data/vendor/display on pingpong timeout for userdebug/eng builds Change-Id: I8a60452af44797c8a425e84706375d3209612692
Diffstat (limited to 'sdm/libs/core/fb/hw_device.cpp')
-rw-r--r--sdm/libs/core/fb/hw_device.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/sdm/libs/core/fb/hw_device.cpp b/sdm/libs/core/fb/hw_device.cpp
index 773845b4..21a23160 100644
--- a/sdm/libs/core/fb/hw_device.cpp
+++ b/sdm/libs/core/fb/hw_device.cpp
@@ -1359,5 +1359,33 @@ DisplayError HWDevice::GetMixerAttributes(HWMixerAttributes *mixer_attributes) {
return kErrorNone;
}
+DisplayError HWDevice::DumpDebugData() {
+ DLOGW("Pingpong timeout occurred in the driver.");
+#ifdef USER_DEBUG
+ // Save the xlogs on ping pong time out
+ std::ofstream dst("/data/vendor/display/mdp_xlog");
+ dst << "+++ MDP:XLOG +++" << std::endl;
+ std::ifstream src("/sys/kernel/debug/mdp/xlog/dump");
+ dst << src.rdbuf() << std::endl;
+ src.close();
+
+ dst << "+++ MDP:REG_XLOG +++" << std::endl;
+ src.open("/sys/kernel/debug/mdp/xlog/reg_xlog");
+ dst << src.rdbuf() << std::endl;
+ src.close();
+
+ dst << "+++ MDP:DBGBUS_XLOG +++" << std::endl;
+ src.open("/sys/kernel/debug/mdp/xlog/dbgbus_xlog");
+ dst << src.rdbuf() << std::endl;
+ src.close();
+
+ dst << "+++ MDP:VBIF_DBGBUS_XLOG +++" << std::endl;
+ src.open("/sys/kernel/debug/mdp/xlog/vbif_dbgbus_xlog");
+ dst << src.rdbuf() << std::endl;
+ src.close();
+#endif
+ return kErrorNone;
+}
+
} // namespace sdm