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);