diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.cpp b/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.cpp index 09f190629928f..69f1aca3d944c 100644 --- a/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.cpp +++ b/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.cpp @@ -43,14 +43,6 @@ DisplayHardwareBase::DisplayEventThread::DisplayEventThread( DisplayHardwareBase::DisplayEventThread::~DisplayEventThread() { } -void DisplayHardwareBase::DisplayEventThread::onFirstRef() { - if (initCheck() == NO_ERROR) { - run("DisplayEventThread", PRIORITY_URGENT_DISPLAY); - } else { - ALOGW("/sys/power/wait_for_fb_{wake|sleep} don't exist"); - } -} - status_t DisplayHardwareBase::DisplayEventThread::initCheck() const { return ((access(kSleepFileName, R_OK) == 0 && access(kWakeFileName, R_OK) == 0)) ? NO_ERROR : NO_INIT; @@ -120,6 +112,14 @@ DisplayHardwareBase::DisplayHardwareBase(const sp& flinger, mDisplayEventThread = new DisplayEventThread(flinger); } +void DisplayHardwareBase::startSleepManagement() const { + if (mDisplayEventThread->initCheck() == NO_ERROR) { + mDisplayEventThread->run("DisplayEventThread", PRIORITY_URGENT_DISPLAY); + } else { + ALOGW("/sys/power/wait_for_fb_{wake|sleep} don't exist"); + } +} + DisplayHardwareBase::~DisplayHardwareBase() { // request exit mDisplayEventThread->requestExitAndWait(); diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h b/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h index 91ea60298033e..fba211beeb7cd 100644 --- a/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h +++ b/services/surfaceflinger/DisplayHardware/DisplayHardwareBase.h @@ -35,6 +35,8 @@ public: ~DisplayHardwareBase(); + void startSleepManagement() const; + // console management void releaseScreen() const; void acquireScreen() const; @@ -52,7 +54,6 @@ private: public: DisplayEventThread(const sp& flinger); virtual ~DisplayEventThread(); - virtual void onFirstRef(); virtual bool threadLoop(); status_t releaseScreen() const; status_t initCheck() const; diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 88666ea04f6c0..ab09bfafc73cc 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -300,6 +300,7 @@ status_t SurfaceFlinger::readyToRun() // start the EventThread mEventThread = new EventThread(this); mEventQueue.setEventThread(mEventThread); + hw.startSleepManagement(); /* * We're now ready to accept clients...