layer: add tdm_layer_commit_internal 91/169891/3
authorSooChan Lim <sc1.lim@samsung.com>
Mon, 12 Feb 2018 01:47:51 +0000 (10:47 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 12 Feb 2018 07:29:02 +0000 (07:29 +0000)
Change-Id: I9ceeba70ea836953a145dc6f5a049a9311d453b5

src/tdm_layer.c
src/tdm_private.h

index b942b8f..ed86c37 100644 (file)
@@ -943,12 +943,11 @@ commit_failed:
        return ret;
 }
 
-EXTERN tdm_error
-tdm_layer_commit(tdm_layer *layer, tdm_layer_commit_handler func, void *user_data)
+INTERN tdm_error
+tdm_layer_commit_internal(tdm_private_layer *private_layer, tdm_layer_commit_handler func, void *user_data)
 {
-       LAYER_FUNC_ENTRY();
-
-       _pthread_mutex_lock(&private_display->lock);
+       tdm_private_output *private_output = private_layer->private_output;
+       tdm_error ret = TDM_ERROR_NONE; /* default TDM_ERROR_NONE */
 
        if (private_output->commit_type == TDM_COMMIT_TYPE_NONE) {
                if (!private_output->commit_per_vblank)
@@ -958,22 +957,32 @@ tdm_layer_commit(tdm_layer *layer, tdm_layer_commit_handler func, void *user_dat
        }
 
        if (TDM_OUTPUT_DPMS_VSYNC_IS_OFF(private_output->current_dpms_value)) {
-               TDM_ERR("layer(%p)'s output(%d) dpms: %s", layer, private_output->pipe,
+               TDM_ERR("layer(%p)'s output(%d) dpms: %s", private_layer, private_output->pipe,
                                tdm_dpms_str(private_output->current_dpms_value));
-               _pthread_mutex_unlock(&private_display->lock);
                return TDM_ERROR_DPMS_OFF;
        }
 
        /* don't call this inside of _tdm_layer_commit */
        ret = tdm_layer_commit_pending_data(private_layer);
        if (ret != TDM_ERROR_NONE) {
-               TDM_ERR("layer(%p) committing pending data failed", layer);
-               _pthread_mutex_unlock(&private_display->lock);
+               TDM_ERR("layer(%p) committing pending data failed", private_layer);
                return ret;
        }
 
        ret = _tdm_layer_commit(private_layer, func, user_data);
 
+       return ret;
+}
+
+EXTERN tdm_error
+tdm_layer_commit(tdm_layer *layer, tdm_layer_commit_handler func, void *user_data)
+{
+       LAYER_FUNC_ENTRY();
+
+       _pthread_mutex_lock(&private_display->lock);
+
+       ret = tdm_layer_commit_internal(private_layer, func, user_data);
+
        _pthread_mutex_unlock(&private_display->lock);
 
        return ret;
index d2565ae..c771bb0 100644 (file)
@@ -136,6 +136,8 @@ void
 tdm_layer_remove_commit_handler_internal(tdm_layer *layer, tdm_layer_commit_handler func, void *user_data);
 
 tdm_error
+tdm_layer_commit_internal(tdm_private_layer *private_layer, tdm_layer_commit_handler func, void *user_data);
+tdm_error
 tdm_layer_commit_pending_data(tdm_private_layer *private_layer);
 void
 tdm_layer_committed(tdm_private_layer *private_layer, tdm_private_layer_buffer **committed_buffer);