diff --git a/sdm/include/core/debug_interface.h b/sdm/include/core/debug_interface.h
index 1d7f43b..373d8a0 100644
--- a/sdm/include/core/debug_interface.h
+++ b/sdm/include/core/debug_interface.h
@@ -82,6 +82,13 @@
   */
   virtual void Info(DebugTag tag, const char *format, ...) = 0;
 
+  /*! @brief Method to handle debug messages.
+
+    @param[in] tag \link DebugTag \endlink
+    @param[in] format \link message format with variable argument list \endlink
+  */
+  virtual void Debug(DebugTag tag, const char *format, ...) = 0;
+
   /*! @brief Method to handle verbose messages.
 
     @param[in] tag \link DebugTag \endlink
diff --git a/sdm/include/utils/debug.h b/sdm/include/utils/debug.h
index 61c258a..a5a10cd 100644
--- a/sdm/include/utils/debug.h
+++ b/sdm/include/utils/debug.h
@@ -41,12 +41,12 @@
 #define DLOGE_IF(tag, format, ...) DLOG(tag, Error, format, ##__VA_ARGS__)
 #define DLOGW_IF(tag, format, ...) DLOG(tag, Warning, format, ##__VA_ARGS__)
 #define DLOGI_IF(tag, format, ...) DLOG(tag, Info, format, ##__VA_ARGS__)
+#define DLOGD_IF(tag, format, ...) DLOG(tag, Debug, format, ##__VA_ARGS__)
 #define DLOGV_IF(tag, format, ...) DLOG(tag, Verbose, format, ##__VA_ARGS__)
 
 #define DLOGE(format, ...) DLOGE_IF(kTagNone, format, ##__VA_ARGS__)
 #define DLOGW(format, ...) DLOGW_IF(kTagNone, format, ##__VA_ARGS__)
 #define DLOGI(format, ...) DLOGI_IF(kTagNone, format, ##__VA_ARGS__)
-#define DLOGV(format, ...) DLOGV_IF(kTagNone, format, ##__VA_ARGS__)
 
 #define DTRACE_BEGIN(custom_string) Debug::Get()->BeginTrace(__CLASS__, __FUNCTION__, custom_string)
 #define DTRACE_END() Debug::Get()->EndTrace()
@@ -79,6 +79,7 @@
     virtual void Error(DebugTag /*tag*/, const char */*format*/, ...) { }
     virtual void Warning(DebugTag /*tag*/, const char */*format*/, ...) { }
     virtual void Info(DebugTag /*tag*/, const char */*format*/, ...) { }
+    virtual void Debug(DebugTag /*tag*/, const char */*format*/, ...) { }
     virtual void Verbose(DebugTag /*tag*/, const char */*format*/, ...) { }
     virtual void BeginTrace(const char */*class_name*/, const char */*function_name*/,
                             const char */*custom_string*/) { }
diff --git a/sdm/libs/core/display_base.cpp b/sdm/libs/core/display_base.cpp
index cbb238c..d18f53c 100644
--- a/sdm/libs/core/display_base.cpp
+++ b/sdm/libs/core/display_base.cpp
@@ -275,7 +275,7 @@
     comp_manager_->Purge(display_comp_ctx_);
     pending_commit_ = false;
   } else {
-    DLOGV("Failed to flush device.");
+    DLOGW("Unable to flush display = %d", display_type_);
   }
 
   return error;
diff --git a/sdm/libs/core/fb/hw_primary.cpp b/sdm/libs/core/fb/hw_primary.cpp
index 639e5d3..ee59bae 100644
--- a/sdm/libs/core/fb/hw_primary.cpp
+++ b/sdm/libs/core/fb/hw_primary.cpp
@@ -531,7 +531,7 @@
         break;
 
     if (feature) {
-      DLOGV("feature_id = %d", feature->feature_id_);
+      DLOGV_IF(kTagDriverConfig, "feature_id = %d", feature->feature_id_);
 
       if ((feature->feature_id_ < kMaxNumPPFeatures)) {
 
diff --git a/sdm/libs/hwc/hwc_debugger.cpp b/sdm/libs/hwc/hwc_debugger.cpp
index a3b3cb0..4b5c659 100644
--- a/sdm/libs/hwc/hwc_debugger.cpp
+++ b/sdm/libs/hwc/hwc_debugger.cpp
@@ -36,60 +36,75 @@
 
 HWCDebugHandler HWCDebugHandler::debug_handler_;
 uint32_t HWCDebugHandler::debug_flags_ = 0x1;
+uint32_t HWCDebugHandler::verbose_level_ = 0x0;
 
-void HWCDebugHandler::DebugAll(bool enable) {
+void HWCDebugHandler::DebugAll(bool enable, int verbose_level) {
   if (enable) {
     debug_flags_ = 0xFFFFFFFF;
+    verbose_level_ = verbose_level;
   } else {
     debug_flags_ = 0x1;   // kTagNone should always be printed.
+    verbose_level_ = 0;
   }
 }
 
-void HWCDebugHandler::DebugResources(bool enable) {
+void HWCDebugHandler::DebugResources(bool enable, int verbose_level) {
   if (enable) {
     SET_BIT(debug_flags_, kTagResources);
+    verbose_level_ = verbose_level;
   } else {
     CLEAR_BIT(debug_flags_, kTagResources);
+    verbose_level_ = 0;
   }
 }
 
-void HWCDebugHandler::DebugStrategy(bool enable) {
+void HWCDebugHandler::DebugStrategy(bool enable, int verbose_level) {
   if (enable) {
     SET_BIT(debug_flags_, kTagStrategy);
+    verbose_level_ = verbose_level;
   } else {
     CLEAR_BIT(debug_flags_, kTagStrategy);
+    verbose_level_ = 0;
   }
 }
 
-void HWCDebugHandler::DebugCompManager(bool enable) {
+void HWCDebugHandler::DebugCompManager(bool enable, int verbose_level) {
   if (enable) {
     SET_BIT(debug_flags_, kTagCompManager);
+    verbose_level_ = verbose_level;
   } else {
     CLEAR_BIT(debug_flags_, kTagCompManager);
+    verbose_level_ = 0;
   }
 }
 
-void HWCDebugHandler::DebugDriverConfig(bool enable) {
+void HWCDebugHandler::DebugDriverConfig(bool enable, int verbose_level) {
   if (enable) {
     SET_BIT(debug_flags_, kTagDriverConfig);
+    verbose_level_ = verbose_level;
   } else {
     CLEAR_BIT(debug_flags_, kTagDriverConfig);
+    verbose_level_ = 0;
   }
 }
 
-void HWCDebugHandler::DebugRotator(bool enable) {
+void HWCDebugHandler::DebugRotator(bool enable, int verbose_level) {
   if (enable) {
     SET_BIT(debug_flags_, kTagRotator);
+    verbose_level_ = verbose_level;
   } else {
     CLEAR_BIT(debug_flags_, kTagRotator);
+    verbose_level_ = 0;
   }
 }
 
-void HWCDebugHandler::DebugQdcm(bool enable) {
+void HWCDebugHandler::DebugQdcm(bool enable, int verbose_level) {
   if (enable) {
     SET_BIT(debug_flags_, kTagQDCM);
+    verbose_level_ = verbose_level;
   } else {
     CLEAR_BIT(debug_flags_, kTagQDCM);
+    verbose_level_ = 0;
   }
 }
 
@@ -113,10 +128,18 @@
   }
 }
 
-void HWCDebugHandler::Verbose(DebugTag tag, const char *format, ...) {
+void HWCDebugHandler::Debug(DebugTag tag, const char *format, ...) {
   if (IS_BIT_SET(debug_flags_, tag)) {
     va_list list;
     va_start(list, format);
+    __android_log_vprint(ANDROID_LOG_DEBUG, LOG_TAG, format, list);
+  }
+}
+
+void HWCDebugHandler::Verbose(DebugTag tag, const char *format, ...) {
+  if (IS_BIT_SET(debug_flags_, tag)  && verbose_level_) {
+    va_list list;
+    va_start(list, format);
     __android_log_vprint(ANDROID_LOG_VERBOSE, LOG_TAG, format, list);
   }
 }
diff --git a/sdm/libs/hwc/hwc_debugger.h b/sdm/libs/hwc/hwc_debugger.h
index 3386377..9fedb80 100644
--- a/sdm/libs/hwc/hwc_debugger.h
+++ b/sdm/libs/hwc/hwc_debugger.h
@@ -42,6 +42,7 @@
 #define DLOGE(format, ...) DLOG(ALOGE, format, ##__VA_ARGS__)
 #define DLOGW(format, ...) DLOG(ALOGW, format, ##__VA_ARGS__)
 #define DLOGI(format, ...) DLOG(ALOGI, format, ##__VA_ARGS__)
+#define DLOGD(format, ...) DLOG(ALOGI, format, ##__VA_ARGS__)
 #define DLOGV(format, ...) DLOG(ALOGV, format, ##__VA_ARGS__)
 
 #define DTRACE_BEGIN(custom_string) HWCDebugHandler::Get()->BeginTrace(__CLASS__, __FUNCTION__, \
@@ -54,17 +55,19 @@
 class HWCDebugHandler : public DebugHandler {
  public:
   static inline DebugHandler* Get() { return &debug_handler_; }
-  static void DebugAll(bool enable);
-  static void DebugResources(bool enable);
-  static void DebugStrategy(bool enable);
-  static void DebugCompManager(bool enable);
-  static void DebugDriverConfig(bool enable);
-  static void DebugRotator(bool enable);
-  static void DebugQdcm(bool enable);
+
+  static void DebugAll(bool enable, int verbose_level);
+  static void DebugResources(bool enable, int verbose_level);
+  static void DebugStrategy(bool enable, int verbose_level);
+  static void DebugCompManager(bool enable, int verbose_level);
+  static void DebugDriverConfig(bool enable, int verbose_level);
+  static void DebugRotator(bool enable, int verbose_level);
+  static void DebugQdcm(bool enable, int verbose_level);
 
   virtual void Error(DebugTag tag, const char *format, ...);
   virtual void Warning(DebugTag tag, const char *format, ...);
   virtual void Info(DebugTag tag, const char *format, ...);
+  virtual void Debug(DebugTag tag, const char *format, ...);
   virtual void Verbose(DebugTag tag, const char *format, ...);
   virtual void BeginTrace(const char *class_name, const char *function_name,
                           const char *custom_string);
@@ -74,6 +77,7 @@
  private:
   static HWCDebugHandler debug_handler_;
   static uint32_t debug_flags_;
+  static uint32_t verbose_level_;
 };
 
 }  // namespace sdm
diff --git a/sdm/libs/hwc/hwc_session.cpp b/sdm/libs/hwc/hwc_session.cpp
index 49626db..227de55 100644
--- a/sdm/libs/hwc/hwc_session.cpp
+++ b/sdm/libs/hwc/hwc_session.cpp
@@ -600,33 +600,34 @@
   int type = input_parcel->readInt32();
   bool enable = (input_parcel->readInt32() > 0);
   DLOGI("type = %d enable = %d", type, enable);
+  int verbose_level = input_parcel->readInt32();
 
   switch (type) {
   case qService::IQService::DEBUG_ALL:
-    HWCDebugHandler::DebugAll(enable);
+    HWCDebugHandler::DebugAll(enable, verbose_level);
     break;
 
   case qService::IQService::DEBUG_MDPCOMP:
-    HWCDebugHandler::DebugStrategy(enable);
-    HWCDebugHandler::DebugCompManager(enable);
+    HWCDebugHandler::DebugStrategy(enable, verbose_level);
+    HWCDebugHandler::DebugCompManager(enable, verbose_level);
     break;
 
   case qService::IQService::DEBUG_PIPE_LIFECYCLE:
-    HWCDebugHandler::DebugResources(enable);
+    HWCDebugHandler::DebugResources(enable, verbose_level);
     break;
 
   case qService::IQService::DEBUG_DRIVER_CONFIG:
-    HWCDebugHandler::DebugDriverConfig(enable);
+    HWCDebugHandler::DebugDriverConfig(enable, verbose_level);
     break;
 
   case qService::IQService::DEBUG_ROTATOR:
-    HWCDebugHandler::DebugResources(enable);
-    HWCDebugHandler::DebugDriverConfig(enable);
-    HWCDebugHandler::DebugRotator(enable);
+    HWCDebugHandler::DebugResources(enable, verbose_level);
+    HWCDebugHandler::DebugDriverConfig(enable, verbose_level);
+    HWCDebugHandler::DebugRotator(enable, verbose_level);
     break;
 
   case qService::IQService::DEBUG_QDCM:
-    HWCDebugHandler::DebugQdcm(enable);
+    HWCDebugHandler::DebugQdcm(enable, verbose_level);
     break;
 
   default:
