Added support of DPMS events 99/58899/3
authorAndrii Sokolenko <a.sokolenko@samsung.com>
Thu, 4 Feb 2016 15:31:33 +0000 (17:31 +0200)
committerAndrii Sokolenko <a.sokolenko@samsung.com>
Thu, 4 Feb 2016 15:35:32 +0000 (17:35 +0200)
Change-Id: I7a1adec4196b3de0c5a058dd1bd97c28c157c940
Signed-off-by: Andrii Sokolenko <a.sokolenko@samsung.com>
src/tdm_sprd_display.c

index 440f326..6af789a 100644 (file)
@@ -273,8 +273,8 @@ _localdrmWaitVBlank(int fd, drmVBlank *vbl)
     ret = clock_gettime(CLOCK_MONOTONIC, &timeout);
     if (ret < 0)
     {
-       TDM_ERR("clock_gettime failed: %s", strerror(errno));
-       goto out;
+        TDM_ERR("clock_gettime failed: %s", strerror(errno));
+    goto out;
     }
     timeout.tv_sec++;
 
@@ -284,16 +284,16 @@ _localdrmWaitVBlank(int fd, drmVBlank *vbl)
        vbl->request.type &= ~DRM_VBLANK_RELATIVE;
        if (ret && errno == EINTR)
        {
-              clock_gettime(CLOCK_MONOTONIC, &cur);
-              /* Timeout after 1s */
-              if (cur.tv_sec > timeout.tv_sec + 1 ||
-                  (cur.tv_sec == timeout.tv_sec && cur.tv_nsec >=
-                   timeout.tv_nsec))
+           clock_gettime(CLOCK_MONOTONIC, &cur);
+           /* Timeout after 1s */
+           if (cur.tv_sec > timeout.tv_sec + 1 ||
+           (cur.tv_sec == timeout.tv_sec && cur.tv_nsec >=
+            timeout.tv_nsec))
            {
-                      errno = EBUSY;
-                      ret = -1;
-                      break;
-              }
+               errno = EBUSY;
+               ret = -1;
+               break;
+           }
        }
     } while (ret && errno == EINTR);
 
@@ -368,6 +368,11 @@ static tdm_error
 _tdm_sprd_display_output_enable(tdm_sprd_output_data *output_data)
 {
     TDM_DBG ("FB_BLANK_UNBLANK\n");
+    tdm_sprd_layer_data *layer_data = NULL;
+    LIST_FOR_EACH_ENTRY(layer_data, &output_data->layer_list, link)
+    {
+        memset(&layer_data->ovi, 0, sizeof(overlay_info));
+    }
     if (ioctl (output_data->fb_fd, FBIOBLANK, FB_BLANK_UNBLANK) < 0)
     {
         TDM_ERR ("FB_BLANK_UNBLANK is failed: %s\n", strerror (errno));
@@ -457,13 +462,13 @@ _tdm_sprd_display_do_commit(tdm_sprd_output_data *output_data)
     int layer_index = 0;
 
     RETURN_VAL_IF_FAIL(output_data, TDM_ERROR_OPERATION_FAILED);
-
-    if (output_data->dpms_value == TDM_OUTPUT_DPMS_OFF)
+#if 0
+    if (output_data->dpms_value != TDM_OUTPUT_DPMS_ON)
     {
         output_data->dpms_value = TDM_OUTPUT_DPMS_ON;
         _tdm_sprd_display_output_enable(output_data);
     }
-
+#endif
     LIST_FOR_EACH_ENTRY(layer_data, &output_data->layer_list, link)
     {
         if(!layer_data->display_buffer_changed && !layer_data->info_changed)
@@ -1248,7 +1253,7 @@ sprd_output_set_dpms(tdm_output *output, tdm_output_dpms dpms_value)
 
     output_data->dpms_value = dpms_value;
 
-    if (dpms_value == TDM_OUTPUT_DPMS_OFF)
+    if (dpms_value != TDM_OUTPUT_DPMS_ON)
     {
         ret = _tdm_sprd_display_output_disable(output_data);
     }