diff --git a/merrifield/ips/common/RotationBufferProvider.cpp b/merrifield/ips/common/RotationBufferProvider.cpp
index 65a4db8..5f90865 100644
--- a/merrifield/ips/common/RotationBufferProvider.cpp
+++ b/merrifield/ips/common/RotationBufferProvider.cpp
@@ -16,6 +16,7 @@
 
 #include <HwcTrace.h>
 #include <common/RotationBufferProvider.h>
+#include <system/graphics-base.h>
 
 namespace android {
 namespace intel {
diff --git a/merrifield/platforms/merrifield/Android.mk b/merrifield/platforms/merrifield/Android.mk
index 9efd7fd..e6eb591 100644
--- a/merrifield/platforms/merrifield/Android.mk
+++ b/merrifield/platforms/merrifield/Android.mk
@@ -23,6 +23,9 @@
 LOCAL_SHARED_LIBRARIES := liblog libcutils libdrm \
                           libwsbm libutils libhardware \
                           libva libva-tpi libva-android libsync
+
+LOCAL_HEADER_LIBRARIES := libsystem_headers
+
 LOCAL_SRC_FILES := \
     ../../common/base/Drm.cpp \
     ../../common/base/HwcLayer.cpp \
diff --git a/merrifield/platforms/merrifield_plus/Android.mk b/merrifield/platforms/merrifield_plus/Android.mk
index dae5335..a0c9893 100644
--- a/merrifield/platforms/merrifield_plus/Android.mk
+++ b/merrifield/platforms/merrifield_plus/Android.mk
@@ -23,6 +23,9 @@
 LOCAL_SHARED_LIBRARIES := liblog libcutils libdrm \
                           libwsbm libutils libhardware \
                           libva libva-tpi libva-android libsync
+
+LOCAL_HEADER_LIBRARIES := libsystem_headers
+
 LOCAL_SRC_FILES := \
     ../../common/base/Drm.cpp \
     ../../common/base/HwcLayer.cpp \
diff --git a/moorefield_hdmi/Android.mk b/moorefield_hdmi/Android.mk
index 8903585..0eb4900 100644
--- a/moorefield_hdmi/Android.mk
+++ b/moorefield_hdmi/Android.mk
@@ -32,6 +32,8 @@
                           libwsbm libutils libhardware \
                           libva libva-tpi libva-android libsync
 
+LOCAL_HEADER_LIBRARIES := libsystem_headers
+
 LOCAL_SRC_FILES := \
     common/base/Drm.cpp \
     common/base/HwcLayer.cpp \
diff --git a/moorefield_hdmi/common/base/Drm.cpp b/moorefield_hdmi/common/base/Drm.cpp
index 3e5138a..e1c7a46 100755
--- a/moorefield_hdmi/common/base/Drm.cpp
+++ b/moorefield_hdmi/common/base/Drm.cpp
@@ -509,6 +509,10 @@
 {
     Mutex::Autolock _l(mLock);
 
+#ifdef INTEL_SUPPORT_HDMI_PRIMARY
+    device = IDisplayDevice::DEVICE_EXTERNAL;
+#endif
+
     int output = getOutputIndex(device);
     if (output < 0 ) {
         return false;
diff --git a/moorefield_hdmi/ips/common/BlankControl.cpp b/moorefield_hdmi/ips/common/BlankControl.cpp
index 53e2bc7..4d7c197 100644
--- a/moorefield_hdmi/ips/common/BlankControl.cpp
+++ b/moorefield_hdmi/ips/common/BlankControl.cpp
@@ -33,10 +33,8 @@
 
 bool BlankControl::blank(int disp, bool blank)
 {
-    // current do nothing but return true
-    // use PM to trigger screen blank/unblank
-    VLOGTRACE("blank is not supported yet, disp %d, blank %d", disp, blank);
-    return true;
+    Drm *drm = Hwcomposer::getInstance().getDrm();
+    return drm->setDpmsMode(disp, !blank);
 }
 
 } // namespace intel
diff --git a/moorefield_hdmi/ips/common/RotationBufferProvider.cpp b/moorefield_hdmi/ips/common/RotationBufferProvider.cpp
index 3c23b6b..cc893d0 100644
--- a/moorefield_hdmi/ips/common/RotationBufferProvider.cpp
+++ b/moorefield_hdmi/ips/common/RotationBufferProvider.cpp
@@ -16,6 +16,7 @@
 
 #include <common/utils/HwcTrace.h>
 #include <ips/common/RotationBufferProvider.h>
+#include <system/graphics-base.h>
 
 namespace android {
 namespace intel {
diff --git a/moorefield_hdmi/ips/common/WsbmWrapper.c b/moorefield_hdmi/ips/common/WsbmWrapper.c
index 8d7c275..cdbf951 100644
--- a/moorefield_hdmi/ips/common/WsbmWrapper.c
+++ b/moorefield_hdmi/ips/common/WsbmWrapper.c
@@ -136,7 +136,8 @@
         goto out;
     }
 
-    VLOGTRACE("ioctl offset %#x", arg.rep.driver_ioctl_offset);
+    unsigned int ioctl_offset = arg.rep.driver_ioctl_offset;
+    ILOGTRACE("ioctl offset %#x", ioctl_offset);
 
     mainPool = wsbmTTMPoolInit(drmFD, arg.rep.driver_ioctl_offset);
     if(!mainPool) {
@@ -356,8 +357,9 @@
         return NULL;
     }
 
+    unsigned long buf_size = wsbmBOSize((struct _WsbmBufferObject *)buf);
     VLOGTRACE("mapped successfully. %p, size %ld",
-        address, wsbmBOSize((struct _WsbmBufferObject *)buf));
+        address, buf_size);
 
     return address;
 }
@@ -374,7 +376,8 @@
     uint32_t offset =
         wsbmBOOffsetHint((struct _WsbmBufferObject *)buf) - 0x10000000;
 
-    VLOGTRACE("offset %#x", offset >> 12);
+    uint32_t offset_tmp = offset >> 12;
+    VLOGTRACE("offset %#x", offset_tmp);
 
     return offset >> 12;
 }
