summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/DisplayHardware
diff options
context:
space:
mode:
authorMichael Lentine <mlentine@google.com>2015-05-12 18:04:26 -0700
committerMichael Lentine <mlentine@google.com>2015-05-22 13:14:57 -0700
commit10613dc3b565e95d3d5f459ec70fd2f6a77f807a (patch)
treeec63fd84f2dccf01467ef3e1ab35d2c4dd4a1e7e /services/surfaceflinger/DisplayHardware
parent5a16a62950de06d48769e29f0c68a154ed7a7a89 (diff)
downloadframeworks_native-10613dc3b565e95d3d5f459ec70fd2f6a77f807a.zip
frameworks_native-10613dc3b565e95d3d5f459ec70fd2f6a77f807a.tar.gz
frameworks_native-10613dc3b565e95d3d5f459ec70fd2f6a77f807a.tar.bz2
Add hotplug support for primary display.
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
Diffstat (limited to 'services/surfaceflinger/DisplayHardware')
-rw-r--r--services/surfaceflinger/DisplayHardware/HWComposer.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index 579b39e..02c31ff 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -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) {