hwc: add exynos_output_get_hwc function 70/176370/1
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 19 Apr 2018 01:52:31 +0000 (10:52 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Thu, 19 Apr 2018 01:52:31 +0000 (10:52 +0900)
Change-Id: I76da1c0cb7ea16d38031d0057ac25d03dd3a7155

src/tdm_exynos_display.c

index 4c3d04d031ea35b1dbb471b129902d696e421fca..55706b5986e1ec922641d4eb0c7786d4ed6738c1 100644 (file)
@@ -1500,6 +1500,45 @@ exynos_output_create_capture(tdm_output *output, tdm_error *error)
        return tdm_exynos_capture_create_output(exynos_data, output, error);
 }
 
+tdm_hwc *
+exynos_output_get_hwc(tdm_output *output, tdm_error *error)
+{
+       tdm_exynos_hwc_data *hwc_data = NULL;
+       tdm_exynos_output_data *output_data = output;
+
+       if (!output_data) {
+               TDM_ERR("invalid params");
+               if (error)
+                       *error = TDM_ERROR_INVALID_PARAMETER;
+               return NULL;
+       }
+
+       if (output_data->hwc_data) {
+               TDM_INFO("hwc_data already exists");
+               if (error)
+                       *error = TDM_ERROR_NONE;
+               return output_data->hwc_data;
+       }
+
+       hwc_data = calloc(1, sizeof(tdm_exynos_hwc_data));
+       if (!hwc_data) {
+               TDM_ERR("alloc failed");
+               if (error)
+                       *error = TDM_ERROR_OUT_OF_MEMORY;
+               return NULL;
+       }
+       hwc_data->output_data = output_data;
+
+       LIST_INITHEAD(&hwc_data->hwc_window_list);
+
+       output_data->hwc_data = hwc_data;
+
+       if (error)
+               *error = TDM_ERROR_NONE;
+
+       return hwc_data;
+}
+
 tdm_error
 exynos_layer_get_capability(tdm_layer *layer, tdm_caps_layer *caps)
 {