we now correctly set-up connected screens during boot

Change-Id: Ie8b1a3b97ad1821cc970e43abe96c8cec7135b66
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index 09ac78d..6509a12 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -301,10 +301,7 @@
                 disp, connected);
         return;
     }
-
-    if (connected)
-        queryDisplayProperties(disp);
-
+    queryDisplayProperties(disp);
     mEventHandler.onHotplugReceived(disp, bool(connected));
 }
 
@@ -335,6 +332,7 @@
     status_t err = mHwc->getDisplayConfigs(mHwc, disp, &config, &numConfigs);
     if (err != NO_ERROR) {
         // this can happen if an unpluggable display is not connected
+        mDisplayData[disp].connected = false;
         return err;
     }
 
@@ -365,6 +363,9 @@
         }
     }
 
+    // FIXME: what should we set the format to?
+    mDisplayData[disp].format = HAL_PIXEL_FORMAT_RGBA_8888;
+    mDisplayData[disp].connected = true;
     if (mDisplayData[disp].xdpi == 0.0f || mDisplayData[disp].ydpi == 0.0f) {
         // is there anything smarter we can do?
         if (h >= 1080) {
@@ -432,6 +433,10 @@
     return mDisplayData[disp].ydpi;
 }
 
+bool HWComposer::isConnected(int disp) const {
+    return mDisplayData[disp].connected;
+}
+
 void HWComposer::eventControl(int event, int enabled) {
     status_t err = NO_ERROR;
     if (mHwc) {
@@ -503,9 +508,9 @@
         // triggers a SurfaceTextureClient::queueBuffer()  on some
         // devices (!?) -- log and ignore.
         ALOGE("HWComposer: framebufferTarget is null");
-        CallStack stack;
-        stack.update();
-        stack.dump("");
+//        CallStack stack;
+//        stack.update();
+//        stack.dump("");
         return NO_ERROR;
     }