if (vc4_data->has_atomic) {
ret = _vc4_output_get_atomic_prop_id(vc4_data->drm_fd, layer_data->plane_id,
DRM_MODE_OBJECT_PLANE, "FB_ID", &layer_data->atomic_props_ids.fb_id);
- if (ret != TDM_ERROR_NONE)
+ if (ret != TDM_ERROR_NONE) {
+ free(layer_data);
goto failed_atomic_prop_id;
+ }
+
ret = _vc4_output_get_atomic_prop_id(vc4_data->drm_fd, layer_data->plane_id,
DRM_MODE_OBJECT_PLANE, "CRTC_ID", &layer_data->atomic_props_ids.crtc_id);
- if (ret != TDM_ERROR_NONE)
+ if (ret != TDM_ERROR_NONE) {
+ free(layer_data);
goto failed_atomic_prop_id;
+ }
+
ret = _vc4_output_get_atomic_prop_id(vc4_data->drm_fd, layer_data->plane_id,
DRM_MODE_OBJECT_PLANE, "SRC_X", &layer_data->atomic_props_ids.src_x);
- if (ret != TDM_ERROR_NONE)
+ if (ret != TDM_ERROR_NONE) {
+ free(layer_data);
goto failed_atomic_prop_id;
+ }
+
ret = _vc4_output_get_atomic_prop_id(vc4_data->drm_fd, layer_data->plane_id,
DRM_MODE_OBJECT_PLANE, "SRC_Y", &layer_data->atomic_props_ids.src_y);
- if (ret != TDM_ERROR_NONE)
+ if (ret != TDM_ERROR_NONE) {
+ free(layer_data);
goto failed_atomic_prop_id;
+ }
+
ret = _vc4_output_get_atomic_prop_id(vc4_data->drm_fd, layer_data->plane_id,
DRM_MODE_OBJECT_PLANE, "SRC_W", &layer_data->atomic_props_ids.src_w);
- if (ret != TDM_ERROR_NONE)
+ if (ret != TDM_ERROR_NONE) {
+ free(layer_data);
goto failed_atomic_prop_id;
+ }
+
ret = _vc4_output_get_atomic_prop_id(vc4_data->drm_fd, layer_data->plane_id,
DRM_MODE_OBJECT_PLANE, "SRC_H", &layer_data->atomic_props_ids.src_h);
- if (ret != TDM_ERROR_NONE)
+ if (ret != TDM_ERROR_NONE) {
+ free(layer_data);
goto failed_atomic_prop_id;
+ }
+
ret = _vc4_output_get_atomic_prop_id(vc4_data->drm_fd, layer_data->plane_id,
DRM_MODE_OBJECT_PLANE, "CRTC_X", &layer_data->atomic_props_ids.crtc_x);
- if (ret != TDM_ERROR_NONE)
+ if (ret != TDM_ERROR_NONE) {
+ free(layer_data);
goto failed_atomic_prop_id;
+ }
+
ret = _vc4_output_get_atomic_prop_id(vc4_data->drm_fd, layer_data->plane_id,
DRM_MODE_OBJECT_PLANE, "CRTC_Y", &layer_data->atomic_props_ids.crtc_y);
- if (ret != TDM_ERROR_NONE)
+ if (ret != TDM_ERROR_NONE) {
+ free(layer_data);
goto failed_atomic_prop_id;
+ }
+
ret = _vc4_output_get_atomic_prop_id(vc4_data->drm_fd, layer_data->plane_id,
DRM_MODE_OBJECT_PLANE, "CRTC_W", &layer_data->atomic_props_ids.crtc_w);
- if (ret != TDM_ERROR_NONE)
+ if (ret != TDM_ERROR_NONE) {
+ free(layer_data);
goto failed_atomic_prop_id;
+ }
+
ret = _vc4_output_get_atomic_prop_id(vc4_data->drm_fd, layer_data->plane_id,
DRM_MODE_OBJECT_PLANE, "CRTC_H", &layer_data->atomic_props_ids.crtc_h);
- if (ret != TDM_ERROR_NONE)
+ if (ret != TDM_ERROR_NONE) {
+ free(layer_data);
goto failed_atomic_prop_id;
+ }
}
LIST_ADDTAIL(&layer_data->link, &output_data->layer_list);