Bug 890541 - (gonk-jb) Call setInteractive() when display is enabled/disable r=mwu

This commit is contained in:
Tapas Kundu 2013-07-09 11:51:09 -07:00
parent 12785ceb9b
commit 1d6572690c
2 changed files with 16 additions and 2 deletions

View File

@ -18,6 +18,7 @@
#include <hardware/hardware.h> #include <hardware/hardware.h>
#include <hardware/hwcomposer.h> #include <hardware/hwcomposer.h>
#include <hardware/power.h>
#include <suspend/autosuspend.h> #include <suspend/autosuspend.h>
#include "GraphicBufferAlloc.h" #include "GraphicBufferAlloc.h"
@ -36,6 +37,7 @@ GonkDisplayJB::GonkDisplayJB()
, mHwc(nullptr) , mHwc(nullptr)
, mFBDevice(nullptr) , mFBDevice(nullptr)
, mEnabledCallback(nullptr) , mEnabledCallback(nullptr)
, mPowerModule(nullptr)
{ {
int err = hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &mFBModule); int err = hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &mFBModule);
ALOGW_IF(err, "%s module not found", GRALLOC_HARDWARE_MODULE_ID); ALOGW_IF(err, "%s module not found", GRALLOC_HARDWARE_MODULE_ID);
@ -82,6 +84,12 @@ GonkDisplayJB::GonkDisplayJB()
surfaceformat = HAL_PIXEL_FORMAT_RGBA_8888; surfaceformat = HAL_PIXEL_FORMAT_RGBA_8888;
} }
err = hw_get_module(POWER_HARDWARE_MODULE_ID,
(hw_module_t const**)&mPowerModule);
if (!err)
mPowerModule->init(mPowerModule);
ALOGW_IF(err, "Couldn't load %s module (%s)", POWER_HARDWARE_MODULE_ID, strerror(-err));
mAlloc = new GraphicBufferAlloc(); mAlloc = new GraphicBufferAlloc();
mFBSurface = new FramebufferSurface(0, mWidth, mHeight, surfaceformat, mAlloc); mFBSurface = new FramebufferSurface(0, mWidth, mHeight, surfaceformat, mAlloc);
@ -115,8 +123,10 @@ GonkDisplayJB::GetNativeWindow()
void void
GonkDisplayJB::SetEnabled(bool enabled) GonkDisplayJB::SetEnabled(bool enabled)
{ {
if (enabled) if (enabled) {
autosuspend_disable(); autosuspend_disable();
mPowerModule->setInteractive(mPowerModule, true);
}
if (mHwc) if (mHwc)
mHwc->blank(mHwc, HWC_DISPLAY_PRIMARY, !enabled); mHwc->blank(mHwc, HWC_DISPLAY_PRIMARY, !enabled);
@ -126,8 +136,10 @@ GonkDisplayJB::SetEnabled(bool enabled)
if (mEnabledCallback) if (mEnabledCallback)
mEnabledCallback(enabled); mEnabledCallback(enabled);
if (!enabled) if (!enabled) {
autosuspend_enable(); autosuspend_enable();
mPowerModule->setInteractive(mPowerModule, false);
}
} }
void void

View File

@ -19,6 +19,7 @@
#include "GonkDisplay.h" #include "GonkDisplay.h"
#include "FramebufferSurface.h" #include "FramebufferSurface.h"
#include "hardware/hwcomposer.h" #include "hardware/hwcomposer.h"
#include "hardware/power.h"
#include "utils/RefBase.h" #include "utils/RefBase.h"
namespace mozilla { namespace mozilla {
@ -49,6 +50,7 @@ private:
hw_module_t const* mFBModule; hw_module_t const* mFBModule;
hwc_composer_device_1_t* mHwc; hwc_composer_device_1_t* mHwc;
framebuffer_device_t* mFBDevice; framebuffer_device_t* mFBDevice;
power_module_t* mPowerModule;
android::sp<android::FramebufferSurface> mFBSurface; android::sp<android::FramebufferSurface> mFBSurface;
android::sp<ANativeWindow> mSTClient; android::sp<ANativeWindow> mSTClient;
android::sp<android::IGraphicBufferAlloc> mAlloc; android::sp<android::IGraphicBufferAlloc> mAlloc;