vblank: avoid mutex lock error. 33/182433/2
authorJunkyeong Kim <jk0430.kim@samsung.com>
Mon, 25 Jun 2018 06:23:06 +0000 (15:23 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 25 Jun 2018 11:34:48 +0000 (11:34 +0000)
Change-Id: I4c47966a7b6bb2afab62ed51ed2f06fa097b58c7
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/tdm_vblank.c

index b461a5b..568605a 100644 (file)
@@ -450,6 +450,45 @@ _tdm_vblank_cb_output_change(tdm_output *output, tdm_output_change_type type,
 }
 /* LCOV_EXCL_STOP */
 
+static tdm_error
+_tdm_vblank_set_fps(tdm_vblank *vblank, unsigned int fps)
+{
+       tdm_private_vblank *private_vblank = vblank;
+
+       if (private_vblank->fps_fixed) {
+               VIN("fps(%u) can't be changed", private_vblank->fps);
+               return TDM_ERROR_NONE;
+       }
+
+       private_vblank->fps_changeable = 0;
+
+       if (private_vblank->fps == fps)
+               return TDM_ERROR_NONE;
+
+       private_vblank->fps = fps;
+       private_vblank->check_HW_or_SW = 1;
+
+       VIN("fps(%u) changed", fps);
+
+       return TDM_ERROR_NONE;
+}
+
+static tdm_error
+_tdm_vblank_ignore_global_fps(tdm_vblank *vblank, unsigned int ignore)
+{
+       tdm_private_vblank *private_vblank = vblank;
+
+       if (private_vblank->ignore_global_fps == ignore)
+               return TDM_ERROR_NONE;
+
+       private_vblank->ignore_global_fps = ignore;
+       private_vblank->check_HW_or_SW = 1;
+
+       VIN("ignore_global_fps(%u)", private_vblank->ignore_global_fps);
+
+       return TDM_ERROR_NONE;
+}
+
 EXTERN tdm_error
 tdm_vblank_set_client_vblank_fps(unsigned int pid, const char *name, unsigned int fps)
 {
@@ -483,7 +522,7 @@ tdm_vblank_set_client_vblank_fps(unsigned int pid, const char *name, unsigned in
                                continue;
                }
 
-               ret = tdm_vblank_set_fps(v, fps);
+               ret = _tdm_vblank_set_fps(v, fps);
                if (ret == TDM_ERROR_NONE)
                        TDM_INFO("(pid:%u) '%s' fps changed: %d", pid, v->name, fps);
                else
@@ -526,7 +565,7 @@ tdm_vblank_set_client_ignore_global_fps(unsigned int pid, const char *name, unsi
                                continue;
                }
 
-               ret = tdm_vblank_ignore_global_fps(v, ignore);
+               ret = _tdm_vblank_ignore_global_fps(v, ignore);
                if (ret == TDM_ERROR_NONE)
                        TDM_INFO("(pid:%u) '%s' ignore changed: %u", pid, v->name, ignore);
                else
@@ -909,27 +948,10 @@ tdm_vblank_get_name(tdm_vblank *vblank, const char **name)
 EXTERN tdm_error
 tdm_vblank_set_fps(tdm_vblank *vblank, unsigned int fps)
 {
-       tdm_private_vblank *private_vblank = vblank;
-
        TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valid(vblank), TDM_ERROR_INVALID_PARAMETER);
        TDM_RETURN_VAL_IF_FAIL(fps > 0, TDM_ERROR_INVALID_PARAMETER);
 
-       if (private_vblank->fps_fixed) {
-               VIN("fps(%u) can't be changed", private_vblank->fps);
-               return TDM_ERROR_NONE;
-       }
-
-       private_vblank->fps_changeable = 0;
-
-       if (private_vblank->fps == fps)
-               return TDM_ERROR_NONE;
-
-       private_vblank->fps = fps;
-       private_vblank->check_HW_or_SW = 1;
-
-       VIN("fps(%u) changed", fps);
-
-       return TDM_ERROR_NONE;
+       return _tdm_vblank_set_fps(vblank, fps);
 }
 
 EXTERN tdm_error
@@ -970,19 +992,9 @@ tdm_vblank_set_fixed_fps(tdm_vblank *vblank, unsigned int fps)
 EXTERN tdm_error
 tdm_vblank_ignore_global_fps(tdm_vblank *vblank, unsigned int ignore)
 {
-       tdm_private_vblank *private_vblank = vblank;
-
        TDM_RETURN_VAL_IF_FAIL(tdm_vblank_is_valid(vblank), TDM_ERROR_INVALID_PARAMETER);
 
-       if (private_vblank->ignore_global_fps == ignore)
-               return TDM_ERROR_NONE;
-
-       private_vblank->ignore_global_fps = ignore;
-       private_vblank->check_HW_or_SW = 1;
-
-       VIN("ignore_global_fps(%u)", private_vblank->ignore_global_fps);
-
-       return TDM_ERROR_NONE;
+       return _tdm_vblank_ignore_global_fps(vblank, ignore);
 }
 
 EXTERN tdm_error