sdm: Use generic libdebug utility.

CRs-Fixed: 2211061
Change-Id: Ib949c40ff63a61a4476876c45357a40a702c9a01
diff --git a/sdm/libs/hwc2/Android.mk b/sdm/libs/hwc2/Android.mk
index 0e839ce..483d7e7 100644
--- a/sdm/libs/hwc2/Android.mk
+++ b/sdm/libs/hwc2/Android.mk
@@ -19,9 +19,9 @@
 
 LOCAL_SHARED_LIBRARIES        := libsdmcore libqservice libbinder libhardware libhardware_legacy \
                                  libutils libcutils libsync libqdutils libqdMetaData \
-                                 libsdmutils libc++ liblog libgrallocutils libui libgpu_tonemapper \
-                                 libhidlbase libhidltransport vendor.display.config@1.0 \
-                                 android.hardware.graphics.mapper@2.0\
+                                 libdisplaydebug libsdmutils libc++ liblog libgrallocutils libui \
+                                 libgpu_tonemapper libhidlbase libhidltransport \
+                                 vendor.display.config@1.0 android.hardware.graphics.mapper@2.0 \
                                  android.hardware.graphics.allocator@2.0
 
 ifeq ($(display_config_version), DISPLAY_CONFIG_1_1)
diff --git a/sdm/libs/hwc2/hwc_debugger.cpp b/sdm/libs/hwc2/hwc_debugger.cpp
index 8b51799..39416c5 100644
--- a/sdm/libs/hwc2/hwc_debugger.cpp
+++ b/sdm/libs/hwc2/hwc_debugger.cpp
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2014 - 2017, The Linux Foundation. All rights reserved.
+* Copyright (c) 2014 - 2018, The Linux Foundation. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
@@ -35,147 +35,161 @@
 namespace sdm {
 
 HWCDebugHandler HWCDebugHandler::debug_handler_;
-std::bitset<32> HWCDebugHandler::debug_flags_ = 0x1;
-int32_t HWCDebugHandler::verbose_level_ = 0x0;
+
+HWCDebugHandler::HWCDebugHandler() {
+  DebugHandler::Set(HWCDebugHandler::Get());
+}
 
 void HWCDebugHandler::DebugAll(bool enable, int verbose_level) {
   if (enable) {
-    debug_flags_ = 0x7FFFFFFF;
+    debug_handler_.log_mask_ = 0x7FFFFFFF;
     if (verbose_level) {
-      // Enable verbose scalar logs only when explicitely enabled
-      debug_flags_[kTagScalar] = 0;
+      // Enable verbose scalar logs only when explicitly enabled
+      debug_handler_.log_mask_[kTagScalar] = 0;
     }
-    verbose_level_ = verbose_level;
+    debug_handler_.verbose_level_ = verbose_level;
   } else {
-    debug_flags_ = 0x1;   // kTagNone should always be printed.
-    verbose_level_ = 0;
+    debug_handler_.log_mask_ = 0x1;   // kTagNone should always be printed.
+    debug_handler_.verbose_level_ = 0;
   }
+
+  DebugHandler::SetLogMask(debug_handler_.log_mask_);
 }
 
 void HWCDebugHandler::DebugResources(bool enable, int verbose_level) {
   if (enable) {
-    debug_flags_[kTagResources] = 1;
-    verbose_level_ = verbose_level;
+    debug_handler_.log_mask_[kTagResources] = 1;
+    debug_handler_.verbose_level_ = verbose_level;
   } else {
-    debug_flags_[kTagResources] = 0;
-    verbose_level_ = 0;
+    debug_handler_.log_mask_[kTagResources] = 0;
+    debug_handler_.verbose_level_ = 0;
   }
+
+  DebugHandler::SetLogMask(debug_handler_.log_mask_);
 }
 
 void HWCDebugHandler::DebugStrategy(bool enable, int verbose_level) {
   if (enable) {
-    debug_flags_[kTagStrategy] = 1;
-    verbose_level_ = verbose_level;
+    debug_handler_.log_mask_[kTagStrategy] = 1;
+    debug_handler_.verbose_level_ = verbose_level;
   } else {
-    debug_flags_[kTagStrategy] = 0;
-    verbose_level_ = 0;
+    debug_handler_.log_mask_[kTagStrategy] = 0;
+    debug_handler_.verbose_level_ = 0;
   }
+
+  DebugHandler::SetLogMask(debug_handler_.log_mask_);
 }
 
 void HWCDebugHandler::DebugCompManager(bool enable, int verbose_level) {
   if (enable) {
-    debug_flags_[kTagCompManager] = 1;
-    verbose_level_ = verbose_level;
+    debug_handler_.log_mask_[kTagCompManager] = 1;
+    debug_handler_.verbose_level_ = verbose_level;
   } else {
-    debug_flags_[kTagCompManager] = 0;
-    verbose_level_ = 0;
+    debug_handler_.log_mask_[kTagCompManager] = 0;
+    debug_handler_.verbose_level_ = 0;
   }
+
+  DebugHandler::SetLogMask(debug_handler_.log_mask_);
 }
 
 void HWCDebugHandler::DebugDriverConfig(bool enable, int verbose_level) {
   if (enable) {
-    debug_flags_[kTagDriverConfig] = 1;
-    verbose_level_ = verbose_level;
+    debug_handler_.log_mask_[kTagDriverConfig] = 1;
+    debug_handler_.verbose_level_ = verbose_level;
   } else {
-    debug_flags_[kTagDriverConfig] = 0;
-    verbose_level_ = 0;
+    debug_handler_.log_mask_[kTagDriverConfig] = 0;
+    debug_handler_.verbose_level_ = 0;
   }
+
+  DebugHandler::SetLogMask(debug_handler_.log_mask_);
 }
 
 void HWCDebugHandler::DebugRotator(bool enable, int verbose_level) {
   if (enable) {
-    debug_flags_[kTagRotator] = 1;
-    verbose_level_ = verbose_level;
+    debug_handler_.log_mask_[kTagRotator] = 1;
+    debug_handler_.verbose_level_ = verbose_level;
   } else {
-    debug_flags_[kTagRotator] = 0;
-    verbose_level_ = 0;
+    debug_handler_.log_mask_[kTagRotator] = 0;
+    debug_handler_.verbose_level_ = 0;
   }
+
+  DebugHandler::SetLogMask(debug_handler_.log_mask_);
 }
 
 void HWCDebugHandler::DebugScalar(bool enable, int verbose_level) {
   if (enable) {
-    debug_flags_[kTagScalar] = 1;
-    verbose_level_ = verbose_level;
+    debug_handler_.log_mask_[kTagScalar] = 1;
+    debug_handler_.verbose_level_ = verbose_level;
   } else {
-    debug_flags_[kTagScalar] = 0;
-    verbose_level_ = 0;
+    debug_handler_.log_mask_[kTagScalar] = 0;
+    debug_handler_.verbose_level_ = 0;
   }
+
+  DebugHandler::SetLogMask(debug_handler_.log_mask_);
 }
 
 void HWCDebugHandler::DebugQdcm(bool enable, int verbose_level) {
   if (enable) {
-    debug_flags_[kTagQDCM] = 1;
-    verbose_level_ = verbose_level;
+    debug_handler_.log_mask_[kTagQDCM] = 1;
+    debug_handler_.verbose_level_ = verbose_level;
   } else {
-    debug_flags_[kTagQDCM] = 0;
-    verbose_level_ = 0;
+    debug_handler_.log_mask_[kTagQDCM] = 0;
+    debug_handler_.verbose_level_ = 0;
   }
+
+  DebugHandler::SetLogMask(debug_handler_.log_mask_);
 }
 
 void HWCDebugHandler::DebugClient(bool enable, int verbose_level) {
   if (enable) {
-    debug_flags_[kTagClient] = 1;
-    verbose_level_ = verbose_level;
+    debug_handler_.log_mask_[kTagClient] = 1;
+    debug_handler_.verbose_level_ = verbose_level;
   } else {
-    debug_flags_[kTagClient] = 0;
-    verbose_level_ = 0;
+    debug_handler_.log_mask_[kTagClient] = 0;
+    debug_handler_.verbose_level_ = 0;
   }
+
+  DebugHandler::SetLogMask(debug_handler_.log_mask_);
 }
 
 void HWCDebugHandler::DebugDisplay(bool enable, int verbose_level) {
   if (enable) {
-    debug_flags_[kTagDisplay] = 1;
-    verbose_level_ = verbose_level;
+    debug_handler_.log_mask_[kTagDisplay] = 1;
+    debug_handler_.verbose_level_ = verbose_level;
   } else {
-    debug_flags_[kTagDisplay] = 0;
-    verbose_level_ = 0;
+    debug_handler_.log_mask_[kTagDisplay] = 0;
+    debug_handler_.verbose_level_ = 0;
   }
+
+  DebugHandler::SetLogMask(debug_handler_.log_mask_);
 }
 
-void HWCDebugHandler::Error(DebugTag tag, const char *format, ...) {
-  if (debug_flags_[tag]) {
-    va_list list;
-    va_start(list, format);
-    __android_log_vprint(ANDROID_LOG_ERROR, LOG_TAG, format, list);
-  }
+void HWCDebugHandler::Error(const char *format, ...) {
+  va_list list;
+  va_start(list, format);
+  __android_log_vprint(ANDROID_LOG_ERROR, LOG_TAG, format, list);
 }
 
-void HWCDebugHandler::Warning(DebugTag tag, const char *format, ...) {
-  if (debug_flags_[tag]) {
-    va_list list;
-    va_start(list, format);
-    __android_log_vprint(ANDROID_LOG_WARN, LOG_TAG, format, list);
-  }
+void HWCDebugHandler::Warning(const char *format, ...) {
+  va_list list;
+  va_start(list, format);
+  __android_log_vprint(ANDROID_LOG_WARN, LOG_TAG, format, list);
 }
 
-void HWCDebugHandler::Info(DebugTag tag, const char *format, ...) {
-  if (debug_flags_[tag]) {
-    va_list list;
-    va_start(list, format);
-    __android_log_vprint(ANDROID_LOG_INFO, LOG_TAG, format, list);
-  }
+void HWCDebugHandler::Info(const char *format, ...) {
+  va_list list;
+  va_start(list, format);
+  __android_log_vprint(ANDROID_LOG_INFO, LOG_TAG, format, list);
 }
 
-void HWCDebugHandler::Debug(DebugTag tag, const char *format, ...) {
-  if (debug_flags_[tag]) {
-    va_list list;
-    va_start(list, format);
-    __android_log_vprint(ANDROID_LOG_DEBUG, LOG_TAG, format, list);
-  }
+void HWCDebugHandler::Debug(const char *format, ...) {
+  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 (debug_flags_[tag] && verbose_level_) {
+void HWCDebugHandler::Verbose(const char *format, ...) {
+  if (debug_handler_.verbose_level_) {
     va_list list;
     va_start(list, format);
     __android_log_vprint(ANDROID_LOG_VERBOSE, LOG_TAG, format, list);
@@ -202,7 +216,7 @@
   return value;
 }
 
-DisplayError HWCDebugHandler::GetProperty(const char *property_name, int *value) {
+int HWCDebugHandler::GetProperty(const char *property_name, int *value) {
   char property[PROPERTY_VALUE_MAX];
 
   if (property_get(property_name, property, NULL) > 0) {
@@ -213,7 +227,7 @@
   return kErrorNotSupported;
 }
 
-DisplayError HWCDebugHandler::GetProperty(const char *property_name, char *value) {
+int HWCDebugHandler::GetProperty(const char *property_name, char *value) {
   if (property_get(property_name, value, NULL) > 0) {
     return kErrorNone;
   }
@@ -221,13 +235,5 @@
   return kErrorNotSupported;
 }
 
-DisplayError HWCDebugHandler::SetProperty(const char *property_name, const char *value) {
-  if (property_set(property_name, value) == 0) {
-    return kErrorNone;
-  }
-
-  return kErrorNotSupported;
-}
-
 }  // namespace sdm
 
diff --git a/sdm/libs/hwc2/hwc_debugger.h b/sdm/libs/hwc2/hwc_debugger.h
index 3a3d787..7ebca8a 100644
--- a/sdm/libs/hwc2/hwc_debugger.h
+++ b/sdm/libs/hwc2/hwc_debugger.h
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2014 - 2017, The Linux Foundation. All rights reserved.
+* Copyright (c) 2014 - 2018, The Linux Foundation. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
@@ -33,15 +33,18 @@
 #define ATRACE_TAG (ATRACE_TAG_GRAPHICS | ATRACE_TAG_HAL)
 
 #include <core/sdm_types.h>
-#include <core/debug_interface.h>
+#include <debug_handler.h>
 #include <log/log.h>
 #include <utils/Trace.h>
 #include <bitset>
 
 namespace sdm {
 
+using display::DebugHandler;
+
 class HWCDebugHandler : public DebugHandler {
  public:
+  HWCDebugHandler();
   static inline DebugHandler* Get() { return &debug_handler_; }
   static const char* DumpDir() { return "/data/vendor/display"; }
 
@@ -57,22 +60,21 @@
   static void DebugDisplay(bool enable, int verbose_level);
   static int  GetIdleTimeoutMs();
 
-  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 Error(const char *format, ...);
+  virtual void Warning(const char *format, ...);
+  virtual void Info(const char *format, ...);
+  virtual void Debug(const char *format, ...);
+  virtual void Verbose(const char *format, ...);
   virtual void BeginTrace(const char *class_name, const char *function_name,
                           const char *custom_string);
   virtual void EndTrace();
-  virtual DisplayError GetProperty(const char *property_name, int *value);
-  virtual DisplayError GetProperty(const char *property_name, char *value);
-  virtual DisplayError SetProperty(const char *property_name, const char *value);
+  virtual int GetProperty(const char *property_name, int *value);
+  virtual int GetProperty(const char *property_name, char *value);
 
  private:
   static HWCDebugHandler debug_handler_;
-  static std::bitset<32> debug_flags_;
-  static int32_t verbose_level_;
+  std::bitset<32> log_mask_;
+  int32_t verbose_level_;
 };
 
 }  // namespace sdm
diff --git a/sdm/libs/hwc2/hwc_session.cpp b/sdm/libs/hwc2/hwc_session.cpp
index 8a69776..bdc84aa 100644
--- a/sdm/libs/hwc2/hwc_session.cpp
+++ b/sdm/libs/hwc2/hwc_session.cpp
@@ -171,8 +171,8 @@
   } else {
     g_hwc_uevent_.Register(this);
 
-    error = CoreInterface::CreateCore(HWCDebugHandler::Get(), &buffer_allocator_,
-                                      &buffer_sync_handler_, &socket_handler_, &core_intf_);
+    error = CoreInterface::CreateCore(&buffer_allocator_, &buffer_sync_handler_, &socket_handler_,
+                                      &core_intf_);
 
     error = core_intf_->GetFirstDisplayInterfaceType(&hw_disp_info);