TDM_INFO("handler(%p)", output_commit_handler);
}
- if (private_display->commit_type == TDM_COMMIT_TYPE_OUTPUT) {
+ if (private_output->commit_type == TDM_COMMIT_TYPE_OUTPUT) {
/* In case of layer commit, the below will be handled in the layer commit callback */
LIST_FOR_EACH_ENTRY(private_layer, &private_output->layer_list, link) {
if (private_layer->committed_buffer)
/* TODO: this is ugly. But before using tdm_output_get_dpms_internal, we have
* to check if all backends's DPMS operation has no problem.
*/
- if (private_display->commit_per_vblank)
+ if (private_output->commit_per_vblank)
tdm_output_get_dpms_internal(output, &dpms_value);
else
dpms_value = private_output->current_dpms_value;
_pthread_mutex_lock(&private_display->lock);
- if (private_display->commit_type == TDM_COMMIT_TYPE_NONE)
- private_display->commit_type = TDM_COMMIT_TYPE_OUTPUT;
- else if (private_display->commit_type == TDM_COMMIT_TYPE_LAYER) {
+ if (private_output->commit_type == TDM_COMMIT_TYPE_NONE)
+ private_output->commit_type = TDM_COMMIT_TYPE_OUTPUT;
+ else if (private_output->commit_type == TDM_COMMIT_TYPE_LAYER) {
TDM_ERR("Can't supported. Use tdm_layer_commit");
_pthread_mutex_unlock(&private_display->lock);
return TDM_ERROR_BAD_REQUEST;
}
- if (private_display->commit_per_vblank) {
+ if (private_output->commit_per_vblank) {
TDM_ERR("Use tdm_layer_commit");
_pthread_mutex_unlock(&private_display->lock);
return TDM_ERROR_BAD_REQUEST;
}
/* TODO: this is ugly. But we have to check if all backends's DPMS operation has no problem. */
- if (private_display->commit_per_vblank)
+ if (private_output->commit_per_vblank)
if (*dpms_value != private_output->current_dpms_value) {
private_output->current_dpms_value = *dpms_value;
TDM_ERR("output(%d) dpms changed suddenly: %s",
return ret;
}
+
+INTERN tdm_error
+tdm_output_choose_commit_per_vblank_mode(tdm_private_output *private_output, int mode)
+{
+ if (!private_output)
+ return TDM_ERROR_INVALID_PARAMETER;
+
+ if (mode < 0 || mode > 2)
+ return TDM_ERROR_INVALID_PARAMETER;
+
+ private_output->commit_per_vblank = mode;
+
+ if (private_output->commit_per_vblank == 0)
+ TDM_INFO("commit per vblank: disable");
+ else if (private_output->commit_per_vblank == 1)
+ TDM_INFO("commit per vblank: enable (1 layer)");
+ else if (private_output->commit_per_vblank == 2)
+ TDM_INFO("commit per vblank: enable (previous commit)");
+
+ return TDM_ERROR_NONE;
+}