overlay: Add support for pipe dumps.
Add support for pipe state dump useful in dumpsys.
Reduce debug log spam when mdp state changes.
Change-Id: Ie27ad00698085e2ffd6166ad2f7503fe16a571f8
diff --git a/liboverlay/overlayUtils.cpp b/liboverlay/overlayUtils.cpp
index 9bffff0..3880976 100644
--- a/liboverlay/overlayUtils.cpp
+++ b/liboverlay/overlayUtils.cpp
@@ -335,6 +335,83 @@
return (mdpVersion >= qdutils::MDSS_V5);
}
+void getDump(char *buf, size_t len, const char *prefix,
+ const mdp_overlay& ov) {
+ char str[256] = {'\0'};
+ snprintf(str, 256,
+ "%s id=%d z=%d fg=%d alpha=%d mask=%d flags=0x%x\n",
+ prefix, ov.id, ov.z_order, ov.is_fg, ov.alpha,
+ ov.transp_mask, ov.flags);
+ strncat(buf, str, strlen(str));
+ getDump(buf, len, "\tsrc(msmfb_img)", ov.src);
+ getDump(buf, len, "\tsrc_rect(mdp_rect)", ov.src_rect);
+ getDump(buf, len, "\tdst_rect(mdp_rect)", ov.dst_rect);
+}
+
+void getDump(char *buf, size_t len, const char *prefix,
+ const msmfb_img& ov) {
+ char str_src[256] = {'\0'};
+ snprintf(str_src, 256,
+ "%s w=%d h=%d format=%d %s\n",
+ prefix, ov.width, ov.height, ov.format,
+ overlay::utils::getFormatString(ov.format));
+ strncat(buf, str_src, strlen(str_src));
+}
+
+void getDump(char *buf, size_t len, const char *prefix,
+ const mdp_rect& ov) {
+ char str_rect[256] = {'\0'};
+ snprintf(str_rect, 256,
+ "%s x=%d y=%d w=%d h=%d\n",
+ prefix, ov.x, ov.y, ov.w, ov.h);
+ strncat(buf, str_rect, strlen(str_rect));
+}
+
+void getDump(char *buf, size_t len, const char *prefix,
+ const msmfb_overlay_data& ov) {
+ char str[256] = {'\0'};
+ snprintf(str, 256,
+ "%s id=%d\n",
+ prefix, ov.id);
+ strncat(buf, str, strlen(str));
+ getDump(buf, len, "\tdata(msmfb_data)", ov.data);
+}
+
+void getDump(char *buf, size_t len, const char *prefix,
+ const msmfb_data& ov) {
+ char str_data[256] = {'\0'};
+ snprintf(str_data, 256,
+ "%s offset=%d memid=%d id=%d flags=0x%x priv=%d\n",
+ prefix, ov.offset, ov.memory_id, ov.id, ov.flags,
+ ov.priv);
+ strncat(buf, str_data, strlen(str_data));
+}
+
+void getDump(char *buf, size_t len, const char *prefix,
+ const msm_rotator_img_info& rot) {
+ char str[256] = {'\0'};
+ snprintf(str, 256, "%s sessid=%u rot=%d, enable=%d downscale=%d\n",
+ prefix, rot.session_id, rot.rotations, rot.enable,
+ rot.downscale_ratio);
+ strncat(buf, str, strlen(str));
+ getDump(buf, len, "\tsrc", rot.src);
+ getDump(buf, len, "\tdst", rot.dst);
+ getDump(buf, len, "\tsrc_rect", rot.src_rect);
+}
+
+void getDump(char *buf, size_t len, const char *prefix,
+ const msm_rotator_data_info& rot) {
+ char str[256] = {'\0'};
+ snprintf(str, 256,
+ "%s sessid=%u verkey=%d\n",
+ prefix, rot.session_id, rot.version_key);
+ strncat(buf, str, strlen(str));
+ getDump(buf, len, "\tsrc", rot.src);
+ getDump(buf, len, "\tdst", rot.dst);
+ getDump(buf, len, "\tsrc_chroma", rot.src_chroma);
+ getDump(buf, len, "\tdst_chroma", rot.dst_chroma);
+}
+
} // utils
} // overlay