OSDN Git Service

Add hotplug support for primary display.
authorMichael Lentine <mlentine@google.com>
Wed, 13 May 2015 01:04:26 +0000 (18:04 -0700)
committerDan Stoza <stoza@google.com>
Thu, 28 May 2015 20:35:24 +0000 (13:35 -0700)
When the primary is connected/disconnected on tv devices HWComposer updates
it's display parameters but doesn't destroy or recreate the display.

Bug: 18698244

Change-Id: I759c8f75d3e3a7462b85eb51973fb5072b71a702
(cherry picked from commit 10613dc3b565e95d3d5f459ec70fd2f6a77f807a)

services/surfaceflinger/DisplayHardware/HWComposer.cpp

index c8b36ec..4e1b3ea 100644 (file)
@@ -305,13 +305,16 @@ void HWComposer::vsync(int disp, int64_t timestamp) {
 }
 
 void HWComposer::hotplug(int disp, int connected) {
-    if (disp == HWC_DISPLAY_PRIMARY || disp >= VIRTUAL_DISPLAY_ID_BASE) {
+    if (disp >= VIRTUAL_DISPLAY_ID_BASE) {
         ALOGE("hotplug event received for invalid display: disp=%d connected=%d",
                 disp, connected);
         return;
     }
     queryDisplayProperties(disp);
-    mEventHandler.onHotplugReceived(disp, bool(connected));
+    // Do not teardown or recreate the primary display
+    if (disp != HWC_DISPLAY_PRIMARY) {
+        mEventHandler.onHotplugReceived(disp, bool(connected));
+    }
 }
 
 static float getDefaultDensity(uint32_t width, uint32_t height) {