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