Lines Matching +full:0 +full:xe
42 static void read_residency_counter(struct xe_device *xe, struct xe_mmio *mmio, in read_residency_counter() argument
45 u64 residency = 0; in read_residency_counter()
48 ret = xe_pmt_telem_read(to_pci_dev(xe->drm.dev), in read_residency_counter()
52 drm_warn(&xe->drm, "%s counter failed to read, ret %d\n", name, ret); in read_residency_counter()
66 struct xe_device *xe = node_to_xe(m->private); in info() local
71 guard(xe_pm_runtime)(xe); in info()
73 drm_printf(&p, "graphics_verx100 %d\n", xe->info.graphics_verx100); in info()
74 drm_printf(&p, "media_verx100 %d\n", xe->info.media_verx100); in info()
76 xe_step_name(xe->info.step.graphics), in info()
77 xe_step_name(xe->info.step.media), in info()
78 xe_step_name(xe->info.step.basedie)); in info()
79 drm_printf(&p, "is_dgfx %s\n", str_yes_no(xe->info.is_dgfx)); in info()
80 drm_printf(&p, "platform %d\n", xe->info.platform); in info()
82 xe->info.subplatform > XE_SUBPLATFORM_NONE ? xe->info.subplatform : 0); in info()
83 drm_printf(&p, "devid 0x%x\n", xe->info.devid); in info()
84 drm_printf(&p, "revid %d\n", xe->info.revid); in info()
85 drm_printf(&p, "tile_count %d\n", xe->info.tile_count); in info()
86 drm_printf(&p, "vm_max_level %d\n", xe->info.vm_max_level); in info()
87 drm_printf(&p, "force_execlist %s\n", str_yes_no(xe->info.force_execlist)); in info()
88 drm_printf(&p, "has_flat_ccs %s\n", str_yes_no(xe->info.has_flat_ccs)); in info()
89 drm_printf(&p, "has_usm %s\n", str_yes_no(xe->info.has_usm)); in info()
90 drm_printf(&p, "skip_guc_pc %s\n", str_yes_no(xe->info.skip_guc_pc)); in info()
91 for_each_gt(gt, xe, id) { in info()
94 drm_printf(&p, "gt%d engine_mask 0x%llx\n", id, in info()
96 drm_printf(&p, "gt%d multi_queue_engine_class_mask 0x%x\n", id, in info()
100 return 0; in info()
105 struct xe_device *xe = node_to_xe(m->private); in sriov_info() local
108 xe_sriov_print_info(xe, &p); in sriov_info()
109 return 0; in sriov_info()
112 static int workarounds(struct xe_device *xe, struct drm_printer *p) in workarounds() argument
114 guard(xe_pm_runtime)(xe); in workarounds()
115 xe_wa_device_dump(xe, p); in workarounds()
117 return 0; in workarounds()
122 struct xe_device *xe = node_to_xe(m->private); in workaround_info() local
125 workarounds(xe, &p); in workaround_info()
126 return 0; in workaround_info()
131 struct xe_device *xe; in dgfx_pkg_residencies_show() local
135 xe = node_to_xe(m->private); in dgfx_pkg_residencies_show()
137 guard(xe_pm_runtime)(xe); in dgfx_pkg_residencies_show()
138 mmio = xe_root_tile_mmio(xe); in dgfx_pkg_residencies_show()
151 for (int i = 0; i < ARRAY_SIZE(residencies); i++) in dgfx_pkg_residencies_show()
152 read_residency_counter(xe, mmio, residencies[i].offset, residencies[i].name, &p); in dgfx_pkg_residencies_show()
154 return 0; in dgfx_pkg_residencies_show()
159 struct xe_device *xe; in dgfx_pcie_link_residencies_show() local
163 xe = node_to_xe(m->private); in dgfx_pcie_link_residencies_show()
165 guard(xe_pm_runtime)(xe); in dgfx_pcie_link_residencies_show()
166 mmio = xe_root_tile_mmio(xe); in dgfx_pcie_link_residencies_show()
177 for (int i = 0; i < ARRAY_SIZE(residencies); i++) in dgfx_pcie_link_residencies_show()
178 read_residency_counter(xe, mmio, residencies[i].offset, residencies[i].name, &p); in dgfx_pcie_link_residencies_show()
180 return 0; in dgfx_pcie_link_residencies_show()
184 {"info", info, 0},
196 struct xe_device *xe = inode->i_private; in forcewake_open() local
201 xe_pm_runtime_get(xe); in forcewake_open()
202 for_each_gt(gt, xe, id) { in forcewake_open()
210 return 0; in forcewake_open()
213 for_each_gt(gt, xe, id) { in forcewake_open()
222 xe_pm_runtime_put(xe); in forcewake_open()
228 struct xe_device *xe = inode->i_private; in forcewake_release() local
232 for_each_gt(gt, xe, id) in forcewake_release()
234 xe_pm_runtime_put(xe); in forcewake_release()
236 return 0; in forcewake_release()
248 struct xe_device *xe = file_inode(f)->i_private; in wedged_mode_show() local
250 int len = 0; in wedged_mode_show()
252 len = scnprintf(buf, sizeof(buf), "%d\n", xe->wedged.mode); in wedged_mode_show()
271 static int wedged_mode_set_reset_policy(struct xe_device *xe, enum xe_wedged_mode mode) in wedged_mode_set_reset_policy() argument
277 guard(xe_pm_runtime)(xe); in wedged_mode_set_reset_policy()
278 for_each_gt(gt, xe, id) { in wedged_mode_set_reset_policy()
281 if (id > 0) { in wedged_mode_set_reset_policy()
282 xe->wedged.inconsistent_reset = true; in wedged_mode_set_reset_policy()
283 drm_err(&xe->drm, "Inconsistent reset policy state between GTs\n"); in wedged_mode_set_reset_policy()
289 xe->wedged.inconsistent_reset = false; in wedged_mode_set_reset_policy()
291 return 0; in wedged_mode_set_reset_policy()
294 static bool wedged_mode_needs_policy_update(struct xe_device *xe, enum xe_wedged_mode mode) in wedged_mode_needs_policy_update() argument
296 if (xe->wedged.inconsistent_reset) in wedged_mode_needs_policy_update()
299 if (xe->wedged.mode == mode) in wedged_mode_needs_policy_update()
302 if (xe->wedged.mode == XE_WEDGED_MODE_UPON_ANY_HANG_NO_RESET || in wedged_mode_needs_policy_update()
312 struct xe_device *xe = file_inode(f)->i_private; in wedged_mode_set() local
316 ret = kstrtouint_from_user(ubuf, size, 0, &wedged_mode); in wedged_mode_set()
320 ret = xe_device_validate_wedged_mode(xe, wedged_mode); in wedged_mode_set()
324 if (wedged_mode_needs_policy_update(xe, wedged_mode)) { in wedged_mode_set()
325 ret = wedged_mode_set_reset_policy(xe, wedged_mode); in wedged_mode_set()
330 xe->wedged.mode = wedged_mode; in wedged_mode_set()
344 struct xe_device *xe = file_inode(f)->i_private; in page_reclaim_hw_assist_show() local
348 len = scnprintf(buf, sizeof(buf), "%d\n", xe->info.has_page_reclaim_hw_assist); in page_reclaim_hw_assist_show()
355 struct xe_device *xe = file_inode(f)->i_private; in page_reclaim_hw_assist_set() local
363 xe->info.has_page_reclaim_hw_assist = val; in page_reclaim_hw_assist_set()
377 struct xe_device *xe = file_inode(f)->i_private; in atomic_svm_timeslice_ms_show() local
379 int len = 0; in atomic_svm_timeslice_ms_show()
381 len = scnprintf(buf, sizeof(buf), "%d\n", xe->atomic_svm_timeslice_ms); in atomic_svm_timeslice_ms_show()
390 struct xe_device *xe = file_inode(f)->i_private; in atomic_svm_timeslice_ms_set() local
394 ret = kstrtouint_from_user(ubuf, size, 0, &atomic_svm_timeslice_ms); in atomic_svm_timeslice_ms_set()
398 xe->atomic_svm_timeslice_ms = atomic_svm_timeslice_ms; in atomic_svm_timeslice_ms_set()
412 struct xe_device *xe = file_inode(f)->i_private; in min_run_period_lr_ms_show() local
414 int len = 0; in min_run_period_lr_ms_show()
416 len = scnprintf(buf, sizeof(buf), "%d\n", xe->min_run_period_lr_ms); in min_run_period_lr_ms_show()
424 struct xe_device *xe = file_inode(f)->i_private; in min_run_period_lr_ms_set() local
428 ret = kstrtouint_from_user(ubuf, size, 0, &min_run_period_lr_ms); in min_run_period_lr_ms_set()
432 xe->min_run_period_lr_ms = min_run_period_lr_ms; in min_run_period_lr_ms_set()
446 struct xe_device *xe = file_inode(f)->i_private; in min_run_period_pf_ms_show() local
448 int len = 0; in min_run_period_pf_ms_show()
450 len = scnprintf(buf, sizeof(buf), "%d\n", xe->min_run_period_pf_ms); in min_run_period_pf_ms_show()
458 struct xe_device *xe = file_inode(f)->i_private; in min_run_period_pf_ms_set() local
462 ret = kstrtouint_from_user(ubuf, size, 0, &min_run_period_pf_ms); in min_run_period_pf_ms_set()
466 xe->min_run_period_pf_ms = min_run_period_pf_ms; in min_run_period_pf_ms_set()
480 struct xe_device *xe = file_inode(f)->i_private; in disable_late_binding_show() local
481 struct xe_late_bind *late_bind = &xe->late_bind; in disable_late_binding_show()
493 struct xe_device *xe = file_inode(f)->i_private; in disable_late_binding_set() local
494 struct xe_late_bind *late_bind = &xe->late_bind; in disable_late_binding_set()
512 void xe_debugfs_register(struct xe_device *xe) in xe_debugfs_register() argument
514 struct ttm_device *bdev = &xe->ttm; in xe_debugfs_register()
515 struct drm_minor *minor = xe->drm.primary; in xe_debugfs_register()
527 if (xe->info.platform == XE_BATTLEMAGE && !IS_SRIOV_VF(xe)) { in xe_debugfs_register()
535 debugfs_create_file("forcewake_all", 0400, root, xe, in xe_debugfs_register()
538 debugfs_create_file("wedged_mode", 0600, root, xe, in xe_debugfs_register()
541 debugfs_create_file("atomic_svm_timeslice_ms", 0600, root, xe, in xe_debugfs_register()
544 debugfs_create_file("min_run_period_lr_ms", 0600, root, xe, in xe_debugfs_register()
547 debugfs_create_file("min_run_period_pf_ms", 0600, root, xe, in xe_debugfs_register()
550 debugfs_create_file("disable_late_binding", 0600, root, xe, in xe_debugfs_register()
557 if (xe->info.has_page_reclaim_hw_assist) in xe_debugfs_register()
558 debugfs_create_file("page_reclaim_hw_assist", 0600, root, xe, in xe_debugfs_register()
568 for_each_tile(tile, xe, tile_id) in xe_debugfs_register()
571 for_each_gt(gt, xe, id) in xe_debugfs_register()
574 xe_pxp_debugfs_register(xe->pxp); in xe_debugfs_register()
576 xe_psmi_debugfs_register(xe); in xe_debugfs_register()
580 if (IS_SRIOV_PF(xe)) in xe_debugfs_register()
581 xe_sriov_pf_debugfs_register(xe, root); in xe_debugfs_register()
582 else if (IS_SRIOV_VF(xe)) in xe_debugfs_register()
583 xe_sriov_vf_debugfs_register(xe, root); in xe_debugfs_register()