release-request-323db86e-b638-4d24-8eb1-d2e3bf4a9d1a-for-git_oc-mr1-release-4017779 snap-temp-L47900000064949209

Change-Id: I69f8926d0db6e04347335d855365bfdb56c1e318
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;
 }