hal_tdm_error
vc4_hwc_get_capabilities(hal_tdm_hwc *hwc, hal_tdm_hwc_capability *capabilities)
{
+ tdm_vc4_hwc *hwc_data = hwc;
+ tdm_vc4_display *display_data = hwc_data->output_data->display_data;
+
TDM_BACKEND_RETURN_VAL_IF_FAIL(hwc != NULL, HAL_TDM_ERROR_INVALID_PARAMETER);
TDM_BACKEND_RETURN_VAL_IF_FAIL(capabilities != NULL, HAL_TDM_ERROR_INVALID_PARAMETER);
+ TDM_BACKEND_RETURN_VAL_IF_FAIL(hwc_data->output_data != NULL, HAL_TDM_ERROR_INVALID_PARAMETER);
- *capabilities |= HAL_TDM_HWC_CAPABILITY_VIDEO_SCALE;
+ display_data = hwc_data->output_data->display_data;
+ TDM_BACKEND_RETURN_VAL_IF_FAIL(display_data != NULL, HAL_TDM_ERROR_INVALID_PARAMETER);
- /* temporary enable/disable */
- char *env;
+ *capabilities |= HAL_TDM_HWC_CAPABILITY_VIDEO_SCALE;
- env = getenv("HAL_TDM_HWC_FENCE");
- if (env) {
- if (atoi(env))
- *capabilities |= HAL_TDM_HWC_CAPABILITY_FENCE;
- }
- /* temporary enable/disable */
+ if (display_data->has_atomic)
+ *capabilities |= HAL_TDM_HWC_CAPABILITY_FENCE;
return HAL_TDM_ERROR_NONE;
}
tdm_error
vc4_hwc_get_capabilities(tdm_hwc *hwc, tdm_hwc_capability *capabilities)
{
+ tdm_vc4_hwc_data *hwc_data = hwc;
+ tdm_vc4_data *vc4_data;
+
RETURN_VAL_IF_FAIL(hwc != NULL, TDM_ERROR_INVALID_PARAMETER);
RETURN_VAL_IF_FAIL(capabilities != NULL, TDM_ERROR_INVALID_PARAMETER);
+ RETURN_VAL_IF_FAIL(hwc_data->output_data != NULL, TDM_ERROR_INVALID_PARAMETER);
- *capabilities |= TDM_HWC_CAPABILITY_VIDEO_SCALE;
+ vc4_data = hwc_data->output_data->vc4_data;
+ RETURN_VAL_IF_FAIL(vc4_data != NULL, TDM_ERROR_INVALID_PARAMETER);
- /* temporary enable/disable */
- char *env;
+ *capabilities |= TDM_HWC_CAPABILITY_VIDEO_SCALE;
- env = getenv("TDM_HWC_FENCE");
- if (env) {
- if (atoi(env))
- *capabilities |= TDM_HWC_CAPABILITY_FENCE;
- }
- /* temporary enable/disable */
+ if (vc4_data->has_atomic)
+ *capabilities |= TDM_HWC_CAPABILITY_FENCE;
return TDM_ERROR_NONE;
}