Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 43601a2d authored by Andy McFadden's avatar Andy McFadden
Browse files

Reduce failure uncertainty

This adds a trivial workaround for a one-shot boot time crash, plus
an explicit check and abort for a failure condition that currently
presents as a less obvious failure.

Bug: 7145521, 7147557
Change-Id: I548f6a9caa9f0bd5710aaecea0e1c6c7c8f2f281
parent b0d1dd36
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -111,6 +111,12 @@ HWComposer::HWComposer(
    loadFbHalModule();
    loadHwcModule();

    if (!hwcHasApiVersion(mHwc, HWC_DEVICE_API_VERSION_1_1) && !mFbDev) {
        ALOGE("ERROR: failed to open framebuffer, aborting");
        // FB mandatory on <= 1.0, give up
        abort();
    }

    if (mHwc) {
        ALOGI("Using %s version %u.%u", HWC_HARDWARE_COMPOSER,
              (hwcApiVersion(mHwc) >> 24) & 0xff,
+7 −0
Original line number Diff line number Diff line
@@ -618,6 +618,13 @@ bool SurfaceFlinger::threadLoop() {
}

void SurfaceFlinger::onVSyncReceived(int type, nsecs_t timestamp) {
    if (mEventThread == NULL) {
        // This is a temporary workaround for b/7145521.  A non-null pointer
        // does not mean EventThread has finished initializing, so this
        // is not a correct fix.
        ALOGW("WARNING: EventThread not started, ignoring vsync");
        return;
    }
    if (uint32_t(type) < DisplayDevice::NUM_DISPLAY_TYPES) {
        // we should only receive DisplayDevice::DisplayType from the vsync callback
        const wp<IBinder>& token(mDefaultDisplays[type]);