e_output: support tdm async dpms set 64/206864/2
authorJunkyeong Kim <jk0430.kim@samsung.com>
Tue, 28 May 2019 08:40:40 +0000 (17:40 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Thu, 30 May 2019 01:37:45 +0000 (01:37 +0000)
if tdm support async dpms set, use tdm_output_set_dpms_async function.(TDM_OUTPUT_CAPABILITY_ASYNC_DPMS)

Change-Id: I0749c718c389dc1d2927b5b7d875faf6687c3011
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/bin/e_output.c
src/bin/e_output.h

index d438682..3225cf2 100644 (file)
@@ -2293,6 +2293,9 @@ e_output_new(E_Comp_Screen *e_comp_screen, int index)
      if (!_e_output_planes_init(output))
        goto fail;
 
+   if (output_caps & TDM_OUTPUT_CAPABILITY_ASYNC_DPMS)
+     output->dpms_async = EINA_TRUE;
+
    return output;
 
 fail:
@@ -2833,7 +2836,6 @@ e_output_dpms_set(E_Output *output, E_OUTPUT_DPMS val)
 
    EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE);
 
-
    output_primary = e_comp_screen_primary_output_get(e_comp->e_comp_screen);
    if (output_primary == output)
      {
@@ -2869,7 +2871,10 @@ e_output_dpms_set(E_Output *output, E_OUTPUT_DPMS val)
    else if (val == E_OUTPUT_DPMS_SUSPEND) tval = TDM_OUTPUT_DPMS_SUSPEND;
    else tval = TDM_OUTPUT_DPMS_OFF;
 
-   error = tdm_output_set_dpms(output->toutput, tval);
+   if (output->dpms_async)
+     error = tdm_output_set_dpms_async(output->toutput, tval);
+   else
+     error = tdm_output_set_dpms(output->toutput, tval);
    if (error != TDM_ERROR_NONE)
      {
         ERR("fail to set the dpms(value:%d).", tval);
index 9d4cb23..53e7275 100644 (file)
@@ -81,6 +81,7 @@ struct _E_Output
 
    E_Comp_Screen        *e_comp_screen;
    E_OUTPUT_DPMS        dpms;
+   Eina_Bool            dpms_async;
 
    struct {
        int min_w, min_h;