diff --git a/displayengine/include/utils/constants.h b/displayengine/include/utils/constants.h
index b675633..44b6896 100644
--- a/displayengine/include/utils/constants.h
+++ b/displayengine/include/utils/constants.h
@@ -43,9 +43,9 @@
 
 #define ROUND_UP(number, step) ((((number) + ((step) - 1)) / (step)) * (step))
 
-#define SET_BIT(value, bit) ((value) | (1 << (bit)))
-#define CLEAR_BIT(value, bit) ((value) & (~(1 << (bit))))
-#define IS_BIT(value, bit) ((value) & (1 << (bit)))
+#define SET_BIT(value, bit) (value |= (1 << (bit)))
+#define CLEAR_BIT(value, bit) (value &= (~(1 << (bit))))
+#define IS_BIT_SET(value, bit) (value & (1 << (bit)))
 
 namespace sde {
 
diff --git a/displayengine/libs/hwc/Android.mk b/displayengine/libs/hwc/Android.mk
index 0968160..1271e00 100755
--- a/displayengine/libs/hwc/Android.mk
+++ b/displayengine/libs/hwc/Android.mk
@@ -6,14 +6,12 @@
 LOCAL_MODULE_TAGS             := optional
 LOCAL_C_INCLUDES              := hardware/qcom/display/displayengine/include/ \
                                  hardware/qcom/display/libgralloc/ \
-                                 hardware/qcom/display/libqservice/ \
-                                 $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include
+                                 hardware/qcom/display/libqservice/
 LOCAL_CFLAGS                  := -Wno-missing-field-initializers -Wno-unused-parameter \
                                  -Wconversion -Wall -Werror \
                                  -DLOG_TAG=\"SDE\"
 LOCAL_SHARED_LIBRARIES        := libsde libqservice libbinder libhardware libhardware_legacy \
                                  libutils libcutils
-LOCAL_ADDITIONAL_DEPENDENCIES := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr
 LOCAL_SRC_FILES               := hwc_session.cpp \
                                  hwc_display.cpp \
                                  hwc_display_primary.cpp \
diff --git a/displayengine/libs/hwc/hwc_logger.cpp b/displayengine/libs/hwc/hwc_logger.cpp
index 595ea81..9d65e1c 100755
--- a/displayengine/libs/hwc/hwc_logger.cpp
+++ b/displayengine/libs/hwc/hwc_logger.cpp
@@ -41,17 +41,17 @@
 
 void HWCLogHandler::LogResources(bool enable) {
   if (enable) {
-    log_flags_ = SET_BIT(log_flags_, kTagResources);
+    SET_BIT(log_flags_, kTagResources);
   } else {
-    log_flags_ = CLEAR_BIT(log_flags_, kTagResources);
+    CLEAR_BIT(log_flags_, kTagResources);
   }
 }
 
 void HWCLogHandler::LogStrategy(bool enable) {
   if (enable) {
-    log_flags_ = SET_BIT(log_flags_, kTagStrategy);
+    SET_BIT(log_flags_, kTagStrategy);
   } else {
-    log_flags_ = CLEAR_BIT(log_flags_, kTagStrategy);
+    CLEAR_BIT(log_flags_, kTagStrategy);
   }
 }
 
@@ -68,7 +68,7 @@
 }
 
 void HWCLogHandler::Info(LogTag tag, const char *format, ...) {
-  if (IS_BIT(log_flags_, tag)) {
+  if (IS_BIT_SET(log_flags_, tag)) {
     va_list list;
     va_start(list, format);
     __android_log_vprint(ANDROID_LOG_INFO, LOG_TAG, format, list);
@@ -76,7 +76,7 @@
 }
 
 void HWCLogHandler::Verbose(LogTag tag, const char *format, ...) {
-  if (IS_BIT(log_flags_, tag)) {
+  if (IS_BIT_SET(log_flags_, tag)) {
     va_list list;
     va_start(list, format);
     __android_log_vprint(ANDROID_LOG_VERBOSE, LOG_TAG, format, list);
