xdpi / ydpi were reported as 0
Bug: 6975723
Change-Id: Ia7fa37ec11e2308804f5034959a37e508d292d31
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index 49aba52..c9df7a4 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -179,7 +179,8 @@
HWComposer::HWComposer(
const sp<SurfaceFlinger>& flinger,
- EventHandler& handler)
+ EventHandler& handler,
+ framebuffer_device_t const* fbDev)
: mFlinger(flinger),
mModule(0), mHwc(0), mCapacity(0),
mNumOVLayers(0), mNumFBLayers(0),
@@ -238,19 +239,14 @@
}
}
- if (mRefreshPeriod == 0) {
- // for compatibility, we attempt to get the refresh rate from
- // the FB HAL if we couldn't get it from the HWC HAL.
- hw_module_t const* module;
- if (hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module) == 0) {
- framebuffer_device_t* fbDev;
- int err = framebuffer_open(module, &fbDev);
- if (!err && fbDev) {
- mRefreshPeriod = nsecs_t(1e9 / fbDev->fps);
- framebuffer_close(fbDev);
- }
+
+ if (fbDev) {
+ if (mRefreshPeriod == 0) {
+ mRefreshPeriod = nsecs_t(1e9 / fbDev->fps);
+ ALOGW("getting VSYNC period from fb HAL: %lld", mRefreshPeriod);
}
- ALOGW("getting VSYNC period from fb HAL: %lld", mRefreshPeriod);
+ mDpiX = fbDev->xdpi;
+ mDpiY = fbDev->ydpi;
}
if (mRefreshPeriod == 0) {
@@ -313,6 +309,14 @@
return now - ((now - mLastHwVSync) % mRefreshPeriod);
}
+float HWComposer::getDpiX() const {
+ return mDpiX;
+}
+
+float HWComposer::getDpiY() const {
+ return mDpiY;
+}
+
void HWComposer::eventControl(int event, int enabled) {
status_t err = NO_ERROR;
if (mHwc && mHwc->common.version >= HWC_DEVICE_API_VERSION_0_3) {