overlay: writeback: Do not create writeback instance on dumpsys

Do not create a writeback instance during dumpsys.
Instead use the dumpsys to return empty if no instance exists.
This fixes the issue where
a) Unnecessary instance is created.
b) Dumpsys has garbage, if a valid instance didn't exist

b/8316155 - Implement HWComposer 1.3 w/ virtual display support
Change-Id: Ic8ea5ddd8d05203234da7c7dfccd2c2b497e62f7
diff --git a/msm8974/libhwcomposer/hwc.cpp b/msm8974/libhwcomposer/hwc.cpp
index dc1f931..3a4e552 100644
--- a/msm8974/libhwcomposer/hwc.cpp
+++ b/msm8974/libhwcomposer/hwc.cpp
@@ -676,8 +676,10 @@
     ctx->mRotMgr->getDump(ovDump, 1024);
     dumpsys_log(aBuf, ovDump);
     ovDump[0] = '\0';
-    Writeback::getInstance()->getDump(ovDump, 1024);
-    dumpsys_log(aBuf, ovDump);
+    if(Writeback::getDump(ovDump, 1024)) {
+        dumpsys_log(aBuf, ovDump);
+        ovDump[0] = '\0';
+    }
     strlcpy(buff, aBuf.string(), buff_len);
 }
 
diff --git a/msm8974/liboverlay/overlayWriteback.cpp b/msm8974/liboverlay/overlayWriteback.cpp
index 7d2ede8..d1d3223 100644
--- a/msm8974/liboverlay/overlayWriteback.cpp
+++ b/msm8974/liboverlay/overlayWriteback.cpp
@@ -213,13 +213,6 @@
     return mOpFmt;
 }
 
-void Writeback::getDump(char *buf, size_t len) const {
-    utils::getDump(buf, len, "WBData", mFbData);
-    char str[4] = {'\0'};
-    snprintf(str, 4, "\n");
-    strncat(buf, str, strlen(str));
-}
-
 //static
 
 Writeback *Writeback::getInstance() {
@@ -245,6 +238,17 @@
     }
 }
 
+bool Writeback::getDump(char *buf, size_t len) {
+    if(sWb) {
+        utils::getDump(buf, len, "WBData", sWb->mFbData);
+        char str[4] = {'\0'};
+        snprintf(str, 4, "\n");
+        strncat(buf, str, strlen(str));
+        return true;
+    }
+    return false;
+}
+
 Writeback *Writeback::sWb = 0;
 bool Writeback::sUsed = false;
 
diff --git a/msm8974/liboverlay/overlayWriteback.h b/msm8974/liboverlay/overlayWriteback.h
index 33eb059..9785b64 100644
--- a/msm8974/liboverlay/overlayWriteback.h
+++ b/msm8974/liboverlay/overlayWriteback.h
@@ -87,12 +87,14 @@
     int getFbFd() const { return mFd.getFD(); }
     int getOutputFormat();
     bool setOutputFormat(int mdpFormat);
-    void getDump(char *buf, size_t len) const;
 
     static Writeback* getInstance();
     static void configBegin() { sUsed = false; }
     static void configDone();
     static void clear();
+    //Will take a dump of data structure only if there is an instance existing
+    //Returns true if dump is added to the input buffer, false otherwise
+    static bool getDump(char *buf, size_t len);
 
 private:
     explicit Writeback();