Lines Matching defs:driver_data

126 #define INIT_DRIVER_DATA    psb_driver_data_p driver_data = (psb_driver_data_p) ctx->pDriverData;
129 #define INIT_FORMAT_VTABLE format_vtable_p format_vtable = ((profile < PSB_MAX_PROFILES) && (entrypoint < PSB_MAX_ENTRYPOINTS)) ? (profile == VAProfileNone? driver_data->vpp_profile : driver_data->profile2Format[profile][entrypoint]) : NULL;
132 #define INIT_FORMAT_VTABLE format_vtable_p format_vtable = ((profile < PSB_MAX_PROFILES) && (entrypoint < PSB_MAX_ENTRYPOINTS)) ? (profile == VAProfileNone? driver_data->vpp_profile : driver_data->profile2Format[profile][entrypoint]) : NULL;
135 #define CONFIG(id) ((object_config_p) object_heap_lookup( &driver_data->config_heap, id ))
136 #define CONTEXT(id) ((object_context_p) object_heap_lookup( &driver_data->context_heap, id ))
137 #define SURFACE(id) ((object_surface_p) object_heap_lookup( &driver_data->surface_heap, id ))
138 #define BUFFER(id) ((object_buffer_p) object_heap_lookup( &driver_data->buffer_heap, id ))
150 void psb_init_surface_pvr2dbuf(psb_driver_data_p driver_data);
151 void psb_free_surface_pvr2dbuf(psb_driver_data_p driver_data);
184 if (IS_MRFL(driver_data) || IS_BAYTRAIL(driver_data)) {
188 } else if (IS_MFLD(driver_data)) {
220 if (profile == VAProfileNone && driver_data->vpp_profile &&
227 if (profile != VAProfileNone && driver_data->profile2Format[profile][i]) {
249 static VAStatus psb__error_unsupported_profile_entrypoint(psb_driver_data_p driver_data, VAProfile profile, VAEntrypoint __maybe_unused entrypoint)
260 if (driver_data->profile2Format[profile][i]) {
281 format_vtable_p format_vtable = driver_data->profile2Format[profile][entrypoint];
285 format_vtable_p format_vtable = driver_data->profile2Format[profile][entrypoint];
290 return psb__error_unsupported_profile_entrypoint(driver_data, profile, entrypoint);
384 ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
407 format_vtable_p format_vtable = driver_data->profile2Format[profile][entrypoint];
411 format_vtable_p format_vtable = driver_data->profile2Format[profile][entrypoint];
441 vaStatus = psb__error_unsupported_profile_entrypoint(driver_data, profile, entrypoint);
446 if ((IS_MFLD(driver_data)) &&
469 configID = object_heap_allocate(&driver_data->config_heap);
502 object_heap_free(&driver_data->config_heap, (object_base_p) obj_config);
511 driver_data->ec_enabled = 1;
513 driver_data->ec_enabled = 0;
521 driver_data->ec_enabled = 1;
523 if (!IS_MRFL(driver_data)) {
527 driver_data->ec_enabled = 1;
531 driver_data->ec_enabled = 0;
551 object_heap_free(&driver_data->config_heap, (object_base_p) obj_config);
590 void psb__destroy_surface(psb_driver_data_p driver_data, object_surface_p obj_surface)
594 psb_SurfaceDeassociateSubpict(driver_data, obj_surface);
610 object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
614 VAStatus psb__checkSurfaceDimensions(psb_driver_data_p driver_data, int width, int height)
616 if (driver_data->video_sd_disabled) {
622 if (driver_data->video_hd_disabled) {
738 driver_data->protected = (VA_RT_FORMAT_PROTECTED & format);
854 vaStatus = psb__checkSurfaceDimensions(driver_data, width, height);
867 surfaceID = object_heap_allocate(&driver_data->surface_heap);
888 object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
908 flags |= driver_data->protected ? IS_PROTECTED : 0;
909 vaStatus = psb_surface_create(driver_data, width, height, fourcc,
914 object_heap_free(&driver_data->surface_heap, (object_base_p) obj_surface);
931 psb__destroy_surface(driver_data, obj_surface);
960 psb_free_surface_pvr2dbuf(driver_data);
980 if (driver_data->cur_displaying_surface == surface_list[i]) {
999 psb__destroy_surface(driver_data, obj_surface);
1007 int psb_new_context(psb_driver_data_p driver_data, uint64_t ctx_type)
1014 ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
1023 int psb_update_context(psb_driver_data_p driver_data, unsigned long ctx_type)
1030 ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
1039 int psb_rm_context(psb_driver_data_p driver_data)
1047 ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
1080 vaStatus = psb__checkSurfaceDimensions(driver_data, picture_width, picture_height);
1086 int contextID = object_heap_allocate(&driver_data->context_heap);
1094 obj_context->driver_data = driver_data;
1098 obj_context->is_oold = driver_data->is_oold;
1124 object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
1139 object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
1182 if (!driver_data->protected && obj_surface->share_info)
1239 object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
1270 if (IS_MRFL(obj_context->driver_data))
1274 if (IS_MFLD(obj_context->driver_data))
1279 if (driver_data->ved_vpp)
1282 else if (IS_MRFL(obj_context->driver_data))
1299 if (IS_MRFL(obj_context->driver_data))
1300 vaStatus = tng_cmdbuf_create(obj_context, driver_data, (tng_cmdbuf_p)cmdbuf);
1303 if (IS_MFLD(obj_context->driver_data))
1304 vaStatus = pnw_cmdbuf_create(obj_context, driver_data, (pnw_cmdbuf_p)cmdbuf);
1307 if (driver_data->ved_vpp)
1308 vaStatus = psb_cmdbuf_create(obj_context, driver_data, (psb_cmdbuf_p)cmdbuf);
1310 else if (IS_MRFL(obj_context->driver_data))
1311 vaStatus = vsp_cmdbuf_create(obj_context, driver_data, (vsp_cmdbuf_p)cmdbuf);
1315 vaStatus = psb_cmdbuf_create(obj_context, driver_data, (psb_cmdbuf_p)cmdbuf);
1332 if (IS_MRFL(obj_context->driver_data))
1336 if (IS_MFLD(obj_context->driver_data))
1340 if (driver_data->ved_vpp)
1343 else if (IS_MRFL(obj_context->driver_data))
1360 obj_context->msvdx_context = ((driver_data->msvdx_context_base & 0xff0000) >> 16) |
1363 obj_context->msvdx_context = ((driver_data->drm_fd & 0xf) << 4) |
1418 object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
1421 obj_config->entrypoint | driver_data->protected) & 0xffff);
1424 if (driver_data->ved_vpp)
1426 VAEntrypointVLD | driver_data->protected) & 0xffff);
1447 uint64_t width_in_mb = ((driver_data->render_rect.x + driver_data->render_rect.width + 15) / 16);
1452 int ret = psb_new_context(driver_data, obj_context->ctp_type | driver_data->protected);
1472 static VAStatus psb__allocate_BO_buffer(psb_driver_data_p driver_data, object_context_p __maybe_unused obj_context, object_buffer_p obj_buffer, int size, unsigned char *data, VABufferType type)
1520 vaStatus = psb_buffer_create(driver_data, size, psb_bt_cpu_vpu_shared, obj_buffer->psb_buffer);
1523 vaStatus = psb_buffer_reference_imr(driver_data, (uint32_t)data, obj_buffer->psb_buffer);
1527 vaStatus = psb_buffer_create(driver_data, size, psb_bt_cpu_vpu, obj_buffer->psb_buffer);
1529 vaStatus = psb_buffer_create(driver_data, size, psb_bt_cpu_vpu, obj_buffer->psb_buffer);
1560 static void psb__destroy_buffer(psb_driver_data_p driver_data, object_buffer_p obj_buffer)
1577 object_heap_free(&driver_data->buffer_heap, (object_base_p) obj_buffer);
1580 void psb__suspend_buffer(psb_driver_data_p driver_data, object_buffer_p obj_buffer)
1619 psb__destroy_buffer(driver_data, obj_buffer);
1622 static void psb__destroy_context(psb_driver_data_p driver_data, object_context_p obj_context)
1638 psb__destroy_buffer(driver_data, obj_buffer);
1643 psb__destroy_buffer(driver_data, obj_buffer);
1704 object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
1706 psb_rm_context(driver_data);
1720 psb__destroy_context(driver_data, obj_context);
1727 psb_driver_data_p driver_data,
1813 bufferID = object_heap_allocate(&driver_data->buffer_heap);
1849 vaStatus = psb__allocate_BO_buffer(driver_data, obj_context,obj_buffer, size * num_elements, data, obj_buffer->type);
1899 psb__destroy_buffer(driver_data, obj_buffer);
1961 vaStatus = psb__CreateBuffer(driver_data, obj_context, type, size, num_elements, data, buf_desc);
2076 psb__suspend_buffer(driver_data, obj_buffer);
2145 psb_update_context(driver_data, obj_context->ctp_type | driver_data->protected);
2153 (driver_data->cur_displaying_surface == render_target))
2170 if (driver_data->vpp_on && GET_SURFACE_INFO_tiling(obj_surface->psb_surface))
2171 driver_data->disable_msvdx_rotate = 0;
2173 if (obj_context->interlaced_stream || driver_data->disable_msvdx_rotate) {
2187 obj_context->msvdx_rotate = driver_data->msvdx_rotate_want;
2205 if (driver_data->vpp_on && GET_SURFACE_INFO_tiling(obj_surface->psb_surface)) {
2221 obj_surface->share_info->metadata_rotate = VAROTATION2HAL(driver_data->va_rotate);
2228 obj_surface->share_info->crop_width = driver_data->render_rect.width;
2229 obj_surface->share_info->crop_height = driver_data->render_rect.height;
2232 if (driver_data->is_oold && !obj_surface->psb_surface->in_loop_buf) {
2239 vaStatus = psb_buffer_create(obj_context->driver_data,
2243 } else if (!driver_data->is_oold && obj_surface->psb_surface->in_loop_buf) {
2250 obj_context->is_oold = driver_data->is_oold;
2316 psb__suspend_buffer(driver_data, buffer_list[i]);
2357 psb_driver_data_p driver_data,
2437 if (render_target == driver_data->cur_displaying_surface)
2439 else if ((VA_INVALID_SURFACE != driver_data->cur_displaying_surface) /* use overlay */
2440 && (render_target == driver_data->last_displaying_surface)) { /* It's the last displaying surface*/
2441 object_surface_p cur_obj_surface = SURFACE(driver_data->cur_displaying_surface);
2470 psb__surface_usage(driver_data, obj_surface, &decode, &encode, &rc_enable, &proc);
2472 if (decode && IS_MRST(driver_data)) {
2479 ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
2488 } else if (proc && IS_MRFL(driver_data)) {
2492 if (proc && IS_MRFL(driver_data)) {
2525 psb__surface_usage(driver_data, obj_surface, &decode, &encode, &rc_enable, &proc);
2544 pthread_mutex_lock(&driver_data->output_mutex);
2545 if (render_target == driver_data->cur_displaying_surface)
2547 else if ((VA_INVALID_SURFACE != driver_data->cur_displaying_surface) /* use overlay */
2548 && (render_target == driver_data->last_displaying_surface)) { /* It's the last displaying surface*/
2549 object_surface_p cur_obj_surface = SURFACE(driver_data->cur_displaying_surface);
2560 pthread_mutex_unlock(&driver_data->output_mutex);
2568 if (IS_MRFL(driver_data))
2569 tng_surface_get_frameskip(driver_data, obj_surface->psb_surface, &frame_skip);
2572 pnw_surface_get_frameskip(driver_data, obj_surface->psb_surface, &frame_skip);
2631 if (driver_data->ec_enabled == 0) {
2641 drm_psb_msvdx_decode_status_t *decode_status = driver_data->msvdx_decode_status;
2649 ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
2662 driver_data->surface_mb_error[i].status = 1;
2663 driver_data->surface_mb_error[i].start_mb = decode_status->mb_regions[i].start;
2664 driver_data->surface_mb_error[i].end_mb = decode_status->mb_regions[i].end;
2665 //driver_data->surface_mb_error[i].start_mb = decode_status->start_error_mb_list[i];
2666 //driver_data->surface_mb_error[i].end_mb = decode_status->end_error_mb_list[i];
2667 //driver_data->surface_mb_error[i].decode_error_type = decode_status->slice_missing_or_error[i];
2670 driver_data->surface_mb_error[i].status = -1;
2671 *error_info = driver_data->surface_mb_error;
2744 if (IS_MFLD(driver_data)) {}
2747 if (IS_MRFL(driver_data)) {}
2750 if (IS_BAYTRAIL(driver_data)) {}
2924 int LOCK_HARDWARE(psb_driver_data_p driver_data)
2928 if (driver_data->dri2 || driver_data->dri_dummy)
2931 pthread_mutex_lock(&driver_data->drm_mutex);
2932 DRM_CAS(driver_data->drm_lock, driver_data->drm_context,
2933 (DRM_LOCK_HELD | driver_data->drm_context), ret);
2935 ret = drmGetLock(driver_data->drm_fd, driver_data->drm_context, 0);
2936 /* driver_data->contended_lock=1; */
2942 int UNLOCK_HARDWARE(psb_driver_data_p driver_data)
2944 /* driver_data->contended_lock=0; */
2945 if (driver_data->dri2 || driver_data->dri_dummy)
2948 DRM_UNLOCK(driver_data->drm_fd, driver_data->drm_lock, driver_data->drm_context);
2949 pthread_mutex_unlock(&driver_data->drm_mutex);
2959 if (driver_data->main_pool) {
2960 driver_data->main_pool->takeDown(driver_data->main_pool);
2961 driver_data->main_pool = NULL;
2963 if (driver_data->fence_mgr) {
2964 wsbmFenceMgrTTMTakedown(driver_data->fence_mgr);
2965 driver_data->fence_mgr = NULL;
2971 driver_data->drm_fd = -1;
2992 driver_data->drm_fd = drm_state->fd;
2993 driver_data->dri_dummy = 1;
2994 driver_data->dri2 = 0;
2995 driver_data->ws_priv = NULL;
2996 driver_data->bus_id = NULL;
3028 ret = drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_EXTENSION,
3032 drm_ext, driver_data->drm_fd);
3036 driver_data->main_pool = NULL;
3039 pool = wsbmTTMPoolInit(driver_data->drm_fd,
3045 driver_data->main_pool = pool;
3049 ret = drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_EXTENSION, &exec_arg,
3056 driver_data->execIoctlOffset = exec_arg.rep.driver_ioctl_offset;
3059 ret = drmCommandWriteRead(driver_data->drm_fd, DRM_PSB_EXTENSION, &lncvideo_getparam_arg,
3066 driver_data->getParamIoctlOffset = lncvideo_getparam_arg.rep.driver_ioctl_offset;
3097 obj_context = (object_context_p) object_heap_first(&driver_data->context_heap, &iter);
3100 psb__destroy_context(driver_data, obj_context);
3101 obj_context = (object_context_p) object_heap_next(&driver_data->context_heap, &iter);
3103 object_heap_destroy(&driver_data->context_heap);
3106 obj_subpic = (object_subpic_p) object_heap_first(&driver_data->subpic_heap, &iter);
3109 psb__destroy_subpicture(driver_data, obj_subpic);
3110 obj_subpic = (object_subpic_p) object_heap_next(&driver_data->subpic_heap, &iter);
3112 object_heap_destroy(&driver_data->subpic_heap);
3115 obj_image = (object_image_p) object_heap_first(&driver_data->image_heap, &iter);
3118 psb__destroy_image(driver_data, obj_image);
3119 obj_image = (object_image_p) object_heap_next(&driver_data->image_heap, &iter);
3121 object_heap_destroy(&driver_data->image_heap);
3124 obj_buffer = (object_buffer_p) object_heap_first(&driver_data->buffer_heap, &iter);
3127 psb__destroy_buffer(driver_data, obj_buffer);
3128 obj_buffer = (object_buffer_p) object_heap_next(&driver_data->buffer_heap, &iter);
3130 object_heap_destroy(&driver_data->buffer_heap);
3136 psb_free_surface_pvr2dbuf(driver_data);
3138 obj_surface = (object_surface_p) object_heap_first(&driver_data->surface_heap, &iter);
3141 psb__destroy_surface(driver_data, obj_surface);
3142 obj_surface = (object_surface_p) object_heap_next(&driver_data->surface_heap, &iter);
3144 object_heap_destroy(&driver_data->surface_heap);
3147 obj_config = (object_config_p) object_heap_first(&driver_data->config_heap, &iter);
3149 object_heap_free(&driver_data->config_heap, (object_base_p) obj_config);
3150 obj_config = (object_config_p) object_heap_next(&driver_data->config_heap, &iter);
3152 object_heap_destroy(&driver_data->config_heap);
3154 if (driver_data->camera_bo) {
3157 psb_buffer_destroy((psb_buffer_p)driver_data->camera_bo);
3158 free(driver_data->camera_bo);
3159 driver_data->camera_bo = NULL;
3162 if (driver_data->rar_bo) {
3165 psb_buffer_destroy((psb_buffer_p)driver_data->rar_bo);
3166 free(driver_data->rar_bo);
3167 driver_data->rar_bo = NULL;
3170 if (driver_data->ws_priv) {
3174 driver_data->ws_priv = NULL;
3181 if (driver_data->msvdx_decode_status)
3182 free(driver_data->msvdx_decode_status);
3184 if (driver_data->surface_mb_error)
3185 free(driver_data->surface_mb_error);
3187 pthread_mutex_destroy(&driver_data->drm_mutex);
3202 psb_driver_data_p driver_data;
3303 driver_data = (psb_driver_data_p) calloc(1, sizeof(*driver_data));
3304 ctx->pDriverData = (unsigned char *) driver_data;
3305 if (NULL == driver_data) {
3319 pthread_mutex_init(&driver_data->drm_mutex, NULL);
3330 result = drmCommandRead(driver_data->drm_fd, DRM_PSB_HW_INFO, &hw_info, sizeof(hw_info));
3340 driver_data->video_sd_disabled = !!(hw_info.caps & PCI_PORT5_REG80_VIDEO_SD_DISABLE);
3341 driver_data->video_hd_disabled = !!(hw_info.caps & PCI_PORT5_REG80_VIDEO_HD_DISABLE);
3344 driver_data->video_sd_disabled, driver_data->video_hd_disabled);
3345 if (driver_data->video_sd_disabled != 0) {
3347 driver_data->video_sd_disabled = 0;
3349 if (driver_data->video_hd_disabled != 0) {
3351 driver_data->video_hd_disabled = 0;
3357 driver_data->encode_supported = 1;
3358 driver_data->decode_supported = 1;
3359 driver_data->hd_encode_supported = 1;
3360 driver_data->hd_decode_supported = 1;
3364 psb_init_surface_pvr2dbuf(driver_data);
3368 pthread_mutex_destroy(&driver_data->drm_mutex);
3375 driver_data->msvdx_context_base = (((unsigned int) getpid()) & 0xffff) << 16;
3377 if (IS_MRFL(driver_data)) {
3379 driver_data->profile2Format[VAProfileH264Baseline][VAEntrypointEncSlice] = &tng_H264ES_vtable;
3380 driver_data->profile2Format[VAProfileH264Main][VAEntrypointEncSlice] = &tng_H264ES_vtable;
3381 driver_data->profile2Format[VAProfileH264High][VAEntrypointEncSlice] = &tng_H264ES_vtable;
3382 driver_data->profile2Format[VAProfileH264StereoHigh][VAEntrypointEncSlice] = &tng_H264ES_vtable;
3383 driver_data->profile2Format[VAProfileH263Baseline][VAEntrypointEncSlice] = &tng_H263ES_vtable;
3384 driver_data->profile2Format[VAProfileJPEGBaseline][VAEntrypointEncPicture] = &tng_JPEGES_vtable;
3385 driver_data->profile2Format[VAProfileMPEG4Simple][VAEntrypointEncSlice] = &tng_MPEG4ES_vtable;
3386 driver_data->profile2Format[VAProfileMPEG4AdvancedSimple][VAEntrypointEncSlice] = &tng_MPEG4ES_vtable;
3387 driver_data->profile2Format[VAProfileH264ConstrainedBaseline][VAEntrypointEncSlice] = &tng_H264ES_vtable;
3391 if (IS_MRFL(driver_data)) {
3393 driver_data->vpp_profile = &vsp_VPP_vtable;
3394 driver_data->profile2Format[VAProfileVP8Version0_3][VAEntrypointEncSlice] = &vsp_VP8_vtable;
3399 if (IS_MRFL(driver_data) || IS_BAYTRAIL(driver_data)) {
3401 driver_data->profile2Format[VAProfileVP8Version0_3][VAEntrypointVLD] = &tng_VP8_vtable;
3402 driver_data->profile2Format[VAProfileJPEGBaseline][VAEntrypointVLD] = &tng_JPEG_vtable;
3404 driver_data->profile2Format[VAProfileMPEG4Simple][VAEntrypointVLD] = &pnw_MPEG4_vtable;
3405 driver_data->profile2Format[VAProfileMPEG4AdvancedSimple][VAEntrypointVLD] = &pnw_MPEG4_vtable;
3407 driver_data->profile2Format[VAProfileMPEG2Simple][VAEntrypointVLD] = &pnw_MPEG2_vtable;
3408 driver_data->profile2Format[VAProfileMPEG2Main][VAEntrypointVLD] = &pnw_MPEG2_vtable;
3410 driver_data->profile2Format[VAProfileH263Baseline][VAEntrypointVLD] = &pnw_MPEG4_vtable;
3412 driver_data->profile2Format[VAProfileH264Baseline][VAEntrypointVLD] = &pnw_H264_vtable;
3413 driver_data->profile2Format[VAProfileH264Main][VAEntrypointVLD] = &pnw_H264_vtable;
3414 driver_data->profile2Format[VAProfileH264High][VAEntrypointVLD] = &pnw_H264_vtable;
3416 driver_data->profile2Format[VAProfileVC1Simple][VAEntrypointVLD] = &pnw_VC1_vtable;
3417 driver_data->profile2Format[VAProfileVC1Main][VAEntrypointVLD] = &pnw_VC1_vtable;
3418 driver_data->profile2Format[VAProfileVC1Advanced][VAEntrypointVLD] = &pnw_VC1_vtable;
3419 driver_data->profile2Format[VAProfileH264ConstrainedBaseline][VAEntrypointVLD] = &pnw_H264_vtable;
3424 if (IS_MRFL(driver_data)) {
3428 driver_data->vpp_profile = &tng_yuv_processor_vtable;
3432 driver_data->ved_vpp = 1;
3438 if (IS_MFLD(driver_data)) {
3439 driver_data->profile2Format[VAProfileH263Baseline][VAEntrypointEncSlice] = &pnw_H263ES_vtable;
3440 driver_data->profile2Format[VAProfileH264Baseline][VAEntrypointEncSlice] = &pnw_H264ES_vtable;
3441 driver_data->profile2Format[VAProfileH264Main][VAEntrypointEncSlice] = &pnw_H264ES_vtable;
3442 driver_data->profile2Format[VAProfileMPEG4Simple][VAEntrypointEncSlice] = &pnw_MPEG4ES_vtable;
3443 driver_data->profile2Format[VAProfileMPEG4AdvancedSimple][VAEntrypointEncSlice] = &pnw_MPEG4ES_vtable;
3444 driver_data->profile2Format[VAProfileJPEGBaseline][VAEntrypointEncPicture] = &pnw_JPEG_vtable;
3446 driver_data->profile2Format[VAProfileMPEG2Main][VAEntrypointVLD] = &pnw_MPEG2_vtable;
3448 driver_data->profile2Format[VAProfileMPEG4Simple][VAEntrypointVLD] = &pnw_MPEG4_vtable;
3449 driver_data->profile2Format[VAProfileMPEG4AdvancedSimple][VAEntrypointVLD] = &pnw_MPEG4_vtable;
3451 driver_data->profile2Format[VAProfileMPEG2Simple][VAEntrypointVLD] = &pnw_MPEG2_vtable;
3452 driver_data->profile2Format[VAProfileMPEG2Main][VAEntrypointVLD] = &pnw_MPEG2_vtable;
3454 driver_data->profile2Format[VAProfileH263Baseline][VAEntrypointVLD] = &pnw_MPEG4_vtable;
3456 driver_data->profile2Format[VAProfileH264Baseline][VAEntrypointVLD] = &pnw_H264_vtable;
3457 driver_data->profile2Format[VAProfileH264Main][VAEntrypointVLD] = &pnw_H264_vtable;
3458 driver_data->profile2Format[VAProfileH264High][VAEntrypointVLD] = &pnw_H264_vtable;
3460 driver_data->profile2Format[VAProfileVC1Simple][VAEntrypointVLD] = &pnw_VC1_vtable;
3461 driver_data->profile2Format[VAProfileVC1Main][VAEntrypointVLD] = &pnw_VC1_vtable;
3462 driver_data->profile2Format[VAProfileVC1Advanced][VAEntrypointVLD] = &pnw_VC1_vtable;
3463 driver_data->profile2Format[VAProfileH264ConstrainedBaseline][VAEntrypointVLD] = &pnw_H264_vtable;
3465 driver_data->vpp_profile = &tng_yuv_processor_vtable;
3466 driver_data->ved_vpp = 1;
3470 result = object_heap_init(&driver_data->config_heap, sizeof(struct object_config_s), CONFIG_ID_OFFSET);
3473 result = object_heap_init(&driver_data->context_heap, sizeof(struct object_context_s), CONTEXT_ID_OFFSET);
3476 result = object_heap_init(&driver_data->surface_heap, sizeof(struct object_surface_s), SURFACE_ID_OFFSET);
3479 result = object_heap_init(&driver_data->buffer_heap, sizeof(struct object_buffer_s), BUFFER_ID_OFFSET);
3482 result = object_heap_init(&driver_data->image_heap, sizeof(struct object_image_s), IMAGE_ID_OFFSET);
3485 result = object_heap_init(&driver_data->subpic_heap, sizeof(struct object_subpic_s), SUBPIC_ID_OFFSET);
3488 driver_data->cur_displaying_surface = VA_INVALID_SURFACE;
3489 driver_data->last_displaying_surface = VA_INVALID_SURFACE;
3491 driver_data->clear_color = 0;
3492 driver_data->blend_color = 0;
3493 driver_data->blend_mode = 0;
3494 driver_data->overlay_auto_paint_color_key = 0;
3496 if (IS_BAYTRAIL(driver_data))
3498 if (IS_MRFL(driver_data))
3500 else if (IS_MFLD(driver_data))
3502 if (IS_LEXINGTON(driver_data))
3510 driver_data->msvdx_decode_status = calloc(1, sizeof(drm_psb_msvdx_decode_status_t));
3511 if (NULL == driver_data->msvdx_decode_status) {
3512 pthread_mutex_destroy(&driver_data->drm_mutex);
3515 driver_data->surface_mb_error = calloc(MAX_MB_ERRORS, sizeof(VASurfaceDecodeMBErrors));
3516 if (NULL == driver_data->surface_mb_error) {
3517 pthread_mutex_destroy(&driver_data->drm_mutex);
3549 driver_data->dev_id = 0x4100; /* by default MRST */
3553 ret = drmCommandWriteRead(driver_data->drm_fd, driver_data->getParamIoctlOffset,
3563 driver_data->dev_id = pci_device;
3564 drv_debug_msg(VIDEO_DEBUG_INIT, "Retrieve Device ID 0x%08x\n", driver_data->dev_id);
3566 if (IS_MFLD(driver_data) || IS_MRFL(driver_data))
3567 driver_data->encode_supported = 1;
3569 driver_data->encode_supported = 0;
3571 driver_data->decode_supported = 1;
3572 driver_data->hd_decode_supported = 1;
3573 driver_data->hd_encode_supported = 1;