Lines Matching refs:hwrt

43 			   struct pvr_hwrt_dataset *hwrt)
49 hwrt->pvr_dev = pvr_dev;
50 hwrt->max_rts = args->layers;
53 for (i = 0; i < ARRAY_SIZE(hwrt->free_lists); i++) {
54 hwrt->free_lists[i] = pvr_free_list_lookup(pvr_file, args->free_list_handles[i]);
55 if (!hwrt->free_lists[i]) {
61 if (hwrt->free_lists[ROGUE_FW_LOCAL_FREELIST]->current_pages <
70 for (i = 0; i < ARRAY_SIZE(hwrt->free_lists); i++) {
71 pvr_free_list_put(hwrt->free_lists[i]);
72 hwrt->free_lists[i] = NULL;
79 hwrt_fini_kernel_structure(struct pvr_hwrt_dataset *hwrt)
83 for (i = 0; i < ARRAY_SIZE(hwrt->free_lists); i++) {
84 pvr_free_list_put(hwrt->free_lists[i]);
85 hwrt->free_lists[i] = NULL;
90 hwrt_fini_common_fw_structure(struct pvr_hwrt_dataset *hwrt)
92 pvr_fw_object_destroy(hwrt->common_fw_obj);
226 struct pvr_hwrt_dataset *hwrt = priv;
228 memcpy(cpu_ptr, &hwrt->common, sizeof(hwrt->common));
234 struct pvr_hwrt_dataset *hwrt)
286 hwrt->common.geom_caches_need_zeroing = false;
288 hwrt->common.isp_merge_lower_x = args->isp_merge_lower_x;
289 hwrt->common.isp_merge_lower_y = args->isp_merge_lower_y;
290 hwrt->common.isp_merge_upper_x = args->isp_merge_upper_x;
291 hwrt->common.isp_merge_upper_y = args->isp_merge_upper_y;
292 hwrt->common.isp_merge_scale_x = args->isp_merge_scale_x;
293 hwrt->common.isp_merge_scale_y = args->isp_merge_scale_y;
296 &hwrt->common.multi_sample_ctl);
301 &hwrt->common.flipped_multi_sample_ctl);
305 hwrt->common.mtile_stride = info.mtile_x[0] * info.mtile_y[0];
307 err = get_cr_te_aa_val(pvr_dev, args->samples, &hwrt->common.teaa);
311 hwrt->common.screen_pixel_max =
317 hwrt->common.te_screen =
322 hwrt->common.te_mtile1 =
326 hwrt->common.te_mtile2 =
332 &hwrt->common.isp_mtile_size);
336 hwrt->common.tpc_stride = geom_data_args->tpc_stride;
337 hwrt->common.tpc_size = geom_data_args->tpc_size;
339 hwrt->common.rgn_header_size = args->region_header_size;
342 PVR_BO_FW_FLAGS_DEVICE_UNCACHED, hwrtdata_common_init, hwrt,
343 &hwrt->common_fw_obj);
358 struct pvr_hwrt_dataset *hwrt,
369 pvr_fw_object_get_fw_addr(hwrt->common_fw_obj,
372 for (free_list_i = 0; free_list_i < ARRAY_SIZE(hwrt->free_lists); free_list_i++) {
373 pvr_fw_object_get_fw_addr(hwrt->free_lists[free_list_i]->fw_obj,
417 pvr_free_list_add_hwrt(hwrt->free_lists[0], hwrt_data);
433 hwrt_data_fini_fw_structure(struct pvr_hwrt_dataset *hwrt, int hwrt_nr)
435 struct pvr_hwrt_data *hwrt_data = &hwrt->data[hwrt_nr];
437 pvr_free_list_remove_hwrt(hwrt->free_lists[0], hwrt_data);
439 if (hwrt->max_rts > 1) {
460 struct pvr_hwrt_dataset *hwrt;
464 hwrt = kzalloc(sizeof(*hwrt), GFP_KERNEL);
466 if (!hwrt)
469 err = hwrt_init_kernel_structure(pvr_file, args, hwrt);
473 err = hwrt_init_common_fw_structure(pvr_file, args, hwrt);
477 for (; i < ARRAY_SIZE(hwrt->data); i++) {
478 err = hwrt_data_init_fw_structure(pvr_file, hwrt, args,
480 &hwrt->data[i]);
484 hwrt->data[i].hwrt_dataset = hwrt;
487 kref_init(&hwrt->ref_count);
488 return hwrt;
492 hwrt_data_fini_fw_structure(hwrt, i);
495 hwrt_fini_kernel_structure(hwrt);
498 kfree(hwrt);
506 struct pvr_hwrt_dataset *hwrt =
509 for (int i = ARRAY_SIZE(hwrt->data) - 1; i >= 0; i--) {
510 WARN_ON(pvr_fw_structure_cleanup(hwrt->pvr_dev, ROGUE_FWIF_CLEANUP_HWRTDATA,
511 hwrt->data[i].fw_obj, 0));
512 hwrt_data_fini_fw_structure(hwrt, i);
515 hwrt_fini_common_fw_structure(hwrt);
516 hwrt_fini_kernel_structure(hwrt);
518 kfree(hwrt);
532 struct pvr_hwrt_dataset *hwrt;
535 xa_for_each(&pvr_file->hwrt_handles, handle, hwrt) {
536 (void)hwrt;
543 * @hwrt: Pointer to HWRT dataset to release reference on
546 pvr_hwrt_dataset_put(struct pvr_hwrt_dataset *hwrt)
548 if (hwrt)
549 kref_put(&hwrt->ref_count, pvr_hwrt_dataset_release);