+ tdm_hwc *thwc = NULL;
+ const tdm_output_mode *mode = NULL;
+ tdm_output_dpms dpms = TDM_OUTPUT_DPMS_OFF;
+ tdm_region fb_damage;
+ uint32_t num = 0;
+
+ if (tc_tdm_output_is_hwc_enable(output)) {
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_mode(output, &mode) == TDM_ERROR_NONE);
+ if (mode == NULL)
+ return true;
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_dpms(output, &dpms) == TDM_ERROR_NONE);
+ if (dpms != TDM_OUTPUT_DPMS_ON)
+ return true;
+
+ thwc = tdm_output_get_hwc(output, &ret);
+ TDM_UT_RETURN_FALSE_IF_FAIL(thwc != NULL);
+
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_hwc_set_client_target_buffer(thwc, NULL, fb_damage) == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_hwc_validate(thwc, NULL, 0, &num) == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_hwc_accept_validation(thwc) == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_hwc_commit(thwc, 0, NULL, NULL) == TDM_ERROR_NONE);
+ } else {
+ TDM_UT_RETURN_FALSE_IF_FAIL(tdm_output_get_layer_count(output, &count) == TDM_ERROR_NONE);
+ TDM_UT_RETURN_FALSE_IF_FAIL(count > 0);