unsigned int connector_type_id;
struct list_head layer_list;
tdm_drm_layer *primary_layer;
+ tdm_drm_layer *cursor_layer;
/* not fixed data below */
hal_tdm_output_vblank_handler vblank_func;
layer_data->capabilities = TDM_DRM_LAYER_CAPABILITY_CURSOR |
TDM_DRM_LAYER_CAPABILITY_GRAPHIC;
layer_data->zpos = cpos_next++;
+ output_data->cursor_layer = layer_data;
} else if (types[i] == DRM_PLANE_TYPE_OVERLAY) {
layer_data->capabilities = TDM_DRM_LAYER_CAPABILITY_OVERLAY |
TDM_DRM_LAYER_CAPABILITY_GRAPHIC;
#define NUM_UI_LAYERS 1
#define ZPOS_MAX 1
-#define ZPOS_CURSOR 2
#define ZPOS_1 1
#define ZPOS_0 0
#define ZPOS_VIDEO1 0
{
tdm_drm_hwc_window_data *hwc_window_data = NULL;
tdm_drm_hwc_window_data **composited_list = NULL;
+ tdm_drm_output *output_data = hwc_data->output_data;
int client_count = 0;
int device_count = 0;
int video_count = 0;
case HAL_TDM_HWC_WIN_COMPOSITION_CURSOR:
if (set_clients_below) break;
if (cursor_count > 0) break;
+ if (!output_data->cursor_layer) break;
composited_list[i]->validated_type = HAL_TDM_HWC_WIN_COMPOSITION_CURSOR;
cursor_count++;
composited_list[i]->lzpos = ZPOS_VIDEO1;
continue;
case HAL_TDM_HWC_WIN_COMPOSITION_CURSOR:
- composited_list[i]->lzpos = ZPOS_CURSOR;
+ composited_list[i]->lzpos = output_data->cursor_layer->zpos;
continue;
case HAL_TDM_HWC_WIN_COMPOSITION_DEVICE:
if (num_ui_layers <= 0) break;