unsigned int connector_type_id;
struct list_head layer_list;
tdm_vc4_layer *primary_layer;
+ tdm_vc4_layer *overlay_layer;
+ tdm_vc4_layer *cursor_layer;
/* not fixed data below */
hal_tdm_output_vblank_handler vblank_func;
LIST_FOR_EACH_ENTRY(output_data, &display_data->output_list, link) {
if (plane->possible_crtcs & (1 << output_data->pipe)) {
+ if (type == DRM_PLANE_TYPE_CURSOR) {
+ if (output_data->cursor_layer)
+ continue;
+ } else if (type == DRM_PLANE_TYPE_OVERLAY) {
+ if (output_data->overlay_layer)
+ continue;
+ } else if (type == DRM_PLANE_TYPE_PRIMARY) {
+ if (output_data->primary_layer)
+ continue;
+ }
+
output_find = 1;
break;
}
layer_data->capabilities = TDM_VC4_LAYER_CAPABILITY_CURSOR |
TDM_VC4_LAYER_CAPABILITY_GRAPHIC;
layer_data->zpos = 2;
+ output_data->cursor_layer = layer_data;
} else if (type == DRM_PLANE_TYPE_OVERLAY) {
layer_data->capabilities = TDM_VC4_LAYER_CAPABILITY_OVERLAY |
TDM_VC4_LAYER_CAPABILITY_GRAPHIC;
layer_data->zpos = 1;
+ output_data->overlay_layer = layer_data;
} else if (type == DRM_PLANE_TYPE_PRIMARY) {
layer_data->capabilities = TDM_VC4_LAYER_CAPABILITY_PRIMARY |
TDM_VC4_LAYER_CAPABILITY_GRAPHIC;