hwc: Pull in updates from exynos3 hwc

Change-Id: I61e1556da3e2d1e9a8b9c22163f4f11982bda7dc
tirimbino
Andrew Dodd 12 years ago committed by Espen Fjellvær Olsen
parent 6ab6c16999
commit e6a23d7713
  1. 32
      exynos4/hal/libhwcomposer/SecHWC.cpp

@ -527,12 +527,17 @@ static void get_hwc_ui_lay_skipdraw_decision(struct hwc_context_t* ctx,
static int hwc_prepare(hwc_composer_device_1_t *dev, size_t numDisplays, hwc_display_contents_1_t** displays)
{
for (uint32_t i = 0; i < numDisplays; i++) {
hwc_display_contents_1_t *list = displays[i];
struct hwc_context_t* ctx = (struct hwc_context_t*)dev;
int overlay_win_cnt = 0;
int compositionType = 0;
int ret;
// Compat
hwc_display_contents_1_t* list = NULL;
if (numDisplays > 0) {
list = displays[0];
}
#if defined(BOARD_USES_HDMI)
android::SecHdmiClient *mHdmiClient = android::SecHdmiClient::getInstance();
int hdmi_cable_status = (int)mHdmiClient->getHdmiCableStatus();
@ -656,7 +661,7 @@ static int hwc_prepare(hwc_composer_device_1_t *dev, size_t numDisplays, hwc_dis
reset_win_rect_info(&ctx->win[i]);
}
}
}
return 0;
}
@ -675,8 +680,6 @@ static int hwc_set(hwc_composer_device_1_t *dev,
struct sec_rect src_work_rect;
struct sec_rect dst_work_rect;
bool need_swap_buffers = ctx->num_of_fb_layer > 0;
for (uint32_t i = 0; i < numDisplays; i++) {
hwc_display_contents_1_t* list = displays[i];
memset(&src_img, 0, sizeof(src_img));
memset(&dst_img, 0, sizeof(dst_img));
@ -688,6 +691,9 @@ static int hwc_set(hwc_composer_device_1_t *dev,
int rotVal = 0;
#endif
// Only support one display
hwc_display_contents_1_t* list = displays[0];
if (!list) {
//turn off the all windows
for (int i = 0; i < NUM_OF_WIN; i++) {
@ -887,7 +893,7 @@ static int hwc_set(hwc_composer_device_1_t *dev,
}
}
#endif
}
return 0;
}
@ -1036,12 +1042,22 @@ static int hwc_device_close(struct hw_device_t *dev)
}
return ret;
}
static int hwc_blank(struct hwc_composer_device_1 *dev, int dpy, int blank)
{
// We're using an older method of screen blanking based on
// early_suspend in the kernel. No need to do anything here.
struct hwc_context_t* ctx = (struct hwc_context_t*)dev;
if (blank) {
// release our resources, the screen is turning off
// in our case, there is nothing to do.
ctx->num_of_fb_layer_prev = 0;
return 0;
}
else {
// No need to unblank, will unblank on set()
return 0;
}
}
static int hwc_device_open(const struct hw_module_t* module, const char* name,
struct hw_device_t** device)
{

Loading…
Cancel
Save