}
EXTERN tdm_error
+tdm_backend_register_func_hwc_window(tdm_display *dpy, tdm_func_hwc_window *func_hwc_window)
+{
+ tdm_backend_module *module;
+
+ TDM_RETURN_VAL_IF_FAIL(TDM_MUTEX_IS_LOCKED(), TDM_ERROR_OPERATION_FAILED);
+
+ BACKEND_FUNC_ENTRY();
+
+ TDM_RETURN_VAL_IF_FAIL(func_hwc_window != NULL, TDM_ERROR_INVALID_PARAMETER);
+
+ module = private_display->module_data;
+ if (_check_abi_version(module, 2, 0) < 0)
+ return TDM_ERROR_BAD_MODULE;
+
+ private_display->func_hwc_window = *func_hwc_window;
+
+ return TDM_ERROR_NONE;
+}
+
+EXTERN tdm_error
tdm_backend_register_func_pp(tdm_display *dpy, tdm_func_pp *func_pp)
{
TDM_RETURN_VAL_IF_FAIL(TDM_MUTEX_IS_LOCKED(), TDM_ERROR_OPERATION_FAILED);
return TDM_ERROR_NONE;
}
+EXTERN tdm_error
+tdm_backend_trigger_need_validate_event(tdm_output *output)
+{
+ tdm_private_output *private_output;
+ uint64_t value;
+ int res;
+
+ TDM_RETURN_VAL_IF_FAIL(output != NULL, TDM_ERROR_INVALID_PARAMETER);
+
+ private_output = (tdm_private_output*)output;
+ value = 1;
+
+ /* do not lock the global display lock here */
+
+ res = write(private_output->need_validate.event_fd, &value, sizeof(value));
+ if (res < 0)
+ return TDM_ERROR_OPERATION_FAILED;
+
+ return TDM_ERROR_NONE;
+}