| /linux-6.15/drivers/gpu/drm/xe/ |
| H A D | xe_pm.c | 130 for_each_gt(gt, xe, id) in xe_pm_suspend() 146 xe_irq_suspend(xe); in xe_pm_suspend() 195 xe_irq_resume(xe); in xe_pm_resume() 197 for_each_gt(gt, xe, id) in xe_pm_resume() 251 if (IS_DGFX(xe)) in xe_pm_runtime_init() 268 err = drmm_mutex_init(&xe->drm, &xe->mem_access.vram_userfault.lock); in xe_pm_init_early() 272 err = drmm_mutex_init(&xe->drm, &xe->d3cold.lock); in xe_pm_init_early() 306 xe->d3cold.capable = xe_pm_pci_d3cold_capable(xe); in xe_pm_init() 441 xe_irq_suspend(xe); in xe_pm_runtime_suspend() 492 xe_irq_resume(xe); in xe_pm_runtime_resume() [all …]
|
| H A D | xe_device.c | 89 xef->xe = xe; in xe_file_open() 426 return xe; in xe_device_create() 428 err = ttm_device_init(&xe->ttm, &xe_ttm_funcs, xe->drm.dev, in xe_device_create() 439 xe->mem.shrinker = xe_shrinker_create(xe); in xe_device_create() 480 if (!xe->ordered_wq || !xe->unordered_wq || in xe_device_create() 481 !xe->preempt_fence_wq || !xe->destroy_wq) { in xe_device_create() 491 err = drmm_mutex_init(&xe->drm, &xe->pmt.lock); in xe_device_create() 499 return xe; in xe_device_create() 740 if (GRAPHICS_VER(xe) < 20 || !xe->info.has_flat_ccs || IS_SRIOV_VF(xe)) in probe_has_flat_ccs() 999 if (!IS_DGFX(xe) || GRAPHICS_VER(xe) < 20) in xe_device_td_flush() [all …]
|
| H A D | xe_irq.c | 576 xe_assert(xe, IS_SRIOV_VF(xe)); in vf_irq_reset() 581 xe_assert(xe, xe_device_has_memirq(xe)); in vf_irq_reset() 638 xe_assert(xe, xe_device_has_memirq(xe)); in vf_irq_postinstall() 654 xe_display_irq_postinstall(xe, xe_root_mmio_gt(xe)); in xe_irq_postinstall() 687 if (IS_SRIOV_VF(xe) && xe_device_has_memirq(xe)) in xe_irq_handler() 734 xe_irq_reset(xe); in irq_uninstall() 756 xe_irq_reset(xe); in xe_irq_install() 769 err = xe_device_has_msix(xe) ? xe_irq_msix_request_irqs(xe) : in xe_irq_install() 778 return devm_add_action_or_reset(xe->drm.dev, irq_uninstall, xe); in xe_irq_install() 809 xe_irq_reset(xe); in xe_irq_resume() [all …]
|
| H A D | xe_sriov_vf.c | 152 for_each_gt(gt, xe, id) { in vf_post_migration_requery_guc() 181 for_each_gt(gt, xe, id) { in vf_post_migration_notify_resfix_done() 197 xe_pm_runtime_get(xe); in vf_post_migration_recovery() 206 xe_pm_runtime_put(xe); in vf_post_migration_recovery() 210 xe_pm_runtime_put(xe); in vf_post_migration_recovery() 214 xe_pm_runtime_put(xe); in vf_post_migration_recovery() 216 xe_device_declare_wedged(xe); in vf_post_migration_recovery() 224 vf_post_migration_recovery(xe); in migration_worker_func() 232 for_each_gt(gt, xe, id) { in vf_ready_to_recovery_on_all_gts() 251 xe_assert(xe, IS_SRIOV_VF(xe)); in xe_sriov_vf_start_migration_recovery() [all …]
|
| H A D | xe_sriov.c | 64 if (test_is_vf(xe)) in xe_sriov_probe_early() 80 xe_assert(xe, !xe->sriov.__mode); in xe_sriov_probe_early() 82 xe_assert(xe, xe->sriov.__mode); in xe_sriov_probe_early() 84 if (IS_SRIOV(xe)) in xe_sriov_probe_early() 94 xe->sriov.wq = NULL; in fini_sriov() 108 if (!IS_SRIOV(xe)) in xe_sriov_init() 111 if (IS_SRIOV_PF(xe)) { in xe_sriov_init() 118 if (IS_SRIOV_VF(xe)) in xe_sriov_init() 121 xe_assert(xe, !xe->sriov.wq); in xe_sriov_init() 123 if (!xe->sriov.wq) in xe_sriov_init() [all …]
|
| H A D | xe_pci_sriov.c | 33 for_each_gt(gt, xe, id) { in pf_provision_vfs() 49 for_each_gt(gt, xe, id) in pf_unprovision_vfs() 60 for_each_gt(gt, xe, id) in pf_reset_vfs() 69 xe_assert(xe, IS_SRIOV_PF(xe)); in xe_pci_pf_get_vf_dev() 120 xe_assert(xe, IS_SRIOV_PF(xe)); in pf_enable_vfs() 152 xe_pm_runtime_put(xe); in pf_enable_vfs() 165 xe_assert(xe, IS_SRIOV_PF(xe)); in pf_disable_vfs() 178 xe_pm_runtime_put(xe); in pf_disable_vfs() 201 if (!IS_SRIOV_PF(xe)) in xe_pci_sriov_configure() 213 xe_pm_runtime_get(xe); in xe_pci_sriov_configure() [all …]
|
| H A D | xe_device.h | 36 return (struct xe_device *)xe; in xe_device_const_cast() 60 return &xe->tiles[0]; in xe_device_get_root_tile() 85 if (MEDIA_VER(xe) >= 13) { in xe_device_get_gt() 91 gt = xe->tiles[gt_id].primary_gt; in xe_device_get_gt() 122 return !xe->info.force_execlist; in xe_device_uc_enabled() 150 return xe->info.has_flat_ccs; in xe_device_has_flat_ccs() 155 return xe->info.has_sriov; in xe_device_has_sriov() 160 return xe->irq.msix.nvec > 0; in xe_device_has_msix() 165 return GRAPHICS_VERx100(xe) >= 1250; in xe_device_has_memirq() 170 return xe_device_has_memirq(xe) && (IS_SRIOV_VF(xe) || xe_device_has_msix(xe)); in xe_device_uses_memirq() [all …]
|
| H A D | xe_sriov_pf.c | 22 struct device *dev = xe->drm.dev; in pf_reduce_totalvfs() 36 pf_reduce_totalvfs(xe, 0); in pf_continue_as_native() 51 struct device *dev = xe->drm.dev; in xe_sriov_pf_readiness() 56 xe_assert(xe, totalvfs <= U16_MAX); in xe_sriov_pf_readiness() 61 if (!xe_device_uc_enabled(xe)) in xe_sriov_pf_readiness() 67 pf_reduce_totalvfs(xe, newlimit); in xe_sriov_pf_readiness() 69 xe->sriov.pf.device_total_vfs = totalvfs; in xe_sriov_pf_readiness() 70 xe->sriov.pf.driver_max_vfs = newlimit; in xe_sriov_pf_readiness() 83 xe_assert(xe, IS_SRIOV_PF(xe)); in xe_sriov_pf_init_early() 85 return drmm_mutex_init(&xe->drm, &xe->sriov.pf.master_lock); in xe_sriov_pf_init_early() [all …]
|
| H A D | xe_bo_evict.c | 50 if (mem_type == XE_PL_TT && (IS_DGFX(xe) || !xe_device_has_flat_ccs(xe))) in xe_bo_evict_all() 62 spin_lock(&xe->pinned.lock); in xe_bo_evict_all() 77 spin_lock(&xe->pinned.lock); in xe_bo_evict_all() 84 spin_lock(&xe->pinned.lock); in xe_bo_evict_all() 93 for_each_tile(tile, xe, id) in xe_bo_evict_all() 96 spin_lock(&xe->pinned.lock); in xe_bo_evict_all() 113 spin_lock(&xe->pinned.lock); in xe_bo_evict_all() 136 spin_lock(&xe->pinned.lock); in xe_bo_restore_kernel() 201 if (!IS_DGFX(xe)) in xe_bo_restore_user() 206 spin_lock(&xe->pinned.lock); in xe_bo_restore_user() [all …]
|
| H A D | xe_pat.c | 385 if (GRAPHICS_VER(xe) == 30 || GRAPHICS_VER(xe) == 20) { in xe_pat_init_early() 425 WARN_ON_ONCE(!IS_DGFX(xe) && !xe->info.has_llc); in xe_pat_init_early() 442 GRAPHICS_VER(xe), GRAPHICS_VERx100(xe) % 100); in xe_pat_init_early() 446 if (IS_SRIOV_VF(xe)) in xe_pat_init_early() 449 xe_assert(xe, !xe->pat.ops || xe->pat.ops->dump); in xe_pat_init_early() 450 xe_assert(xe, !xe->pat.ops || xe->pat.ops->program_graphics); in xe_pat_init_early() 451 xe_assert(xe, !xe->pat.ops || MEDIA_VER(xe) < 13 || xe->pat.ops->program_media); in xe_pat_init_early() 458 if (!xe->pat.ops) in xe_pat_init() 462 xe->pat.ops->program_media(gt, xe->pat.table, xe->pat.n_entries); in xe_pat_init() 464 xe->pat.ops->program_graphics(gt, xe->pat.table, xe->pat.n_entries); in xe_pat_init() [all …]
|
| H A D | xe_debugfs.c | 45 xe_pm_runtime_get(xe); in info() 56 xe->info.subplatform > XE_SUBPLATFORM_NONE ? xe->info.subplatform : 0); in info() 65 for_each_gt(gt, xe, id) { in info() 72 xe_pm_runtime_put(xe); in info() 97 xe_pm_runtime_get(xe); in forcewake_open() 118 xe_pm_runtime_put(xe); in forcewake_open() 128 for_each_gt(gt, xe, id) in forcewake_release() 130 xe_pm_runtime_put(xe); in forcewake_release() 174 xe_pm_runtime_get(xe); in wedged_mode_set() 183 xe_pm_runtime_put(xe); in wedged_mode_set() [all …]
|
| H A D | xe_ttm_stolen_mgr.c | 57 return GRAPHICS_VERx100(xe) < 1270 && !IS_DGFX(xe); in xe_ttm_stolen_cpu_access_needs_ggtt() 101 wopcm_size = get_wopcm_size(xe); in detect_bar2_dgfx() 102 if (drm_WARN_ON(&xe->drm, !wopcm_size)) in detect_bar2_dgfx() 161 wopcm_size = get_wopcm_size(xe); in detect_bar2_integrated() 162 if (drm_WARN_ON(&xe->drm, !wopcm_size)) in detect_bar2_integrated() 221 if (IS_SRIOV_VF(xe)) in xe_ttm_stolen_mgr_init() 223 else if (IS_DGFX(xe)) in xe_ttm_stolen_mgr_init() 225 else if (GRAPHICS_VERx100(xe) >= 1270) in xe_ttm_stolen_mgr_init() 228 stolen_size = detect_stolen(xe, mgr); in xe_ttm_stolen_mgr_init() 307 XE_WARN_ON(IS_DGFX(xe)); in __xe_ttm_stolen_io_mem_reserve_stolen() [all …]
|
| H A D | xe_pci.c | 593 err = xe_tile_init_early(xe_device_get_root_tile(xe), xe, 0); in xe_info_init_early() 628 xe->info.step = xe_step_pre_gmdid_get(xe); in xe_info_init() 633 xe->info.step = xe_step_gmdid_get(xe, in xe_info_init() 731 if (IS_SRIOV_PF(xe)) in xe_pci_remove() 737 xe_device_remove(xe); in xe_pci_remove() 793 if (IS_ERR(xe)) in xe_pci_probe() 794 return PTR_ERR(xe); in xe_pci_probe() 832 xe->info.devid, xe->info.revid, in xe_pci_probe() 833 xe->info.is_dgfx, in xe_pci_probe() 841 xe->info.dma_mask_size, xe->info.tile_count, in xe_pci_probe() [all …]
|
| H A D | xe_sriov_printk.h | 14 #define xe_sriov_printk_prefix(xe) \ argument 18 #define xe_sriov_printk(xe, _level, fmt, ...) \ argument 19 drm_##_level(&(xe)->drm, "%s" fmt, xe_sriov_printk_prefix(xe), ##__VA_ARGS__) 21 #define xe_sriov_err(xe, fmt, ...) \ argument 22 xe_sriov_printk((xe), err, fmt, ##__VA_ARGS__) 27 #define xe_sriov_warn(xe, fmt, ...) \ argument 30 #define xe_sriov_notice(xe, fmt, ...) \ argument 33 #define xe_sriov_info(xe, fmt, ...) \ argument 36 #define xe_sriov_dbg(xe, fmt, ...) \ argument 41 #define xe_sriov_dbg_verbose(xe, fmt, ...) xe_sriov_dbg(xe, fmt, ##__VA_ARGS__) argument [all …]
|
| H A D | xe_vram.c | 78 drm_info(&xe->drm, in resize_vram_bar() 145 resize_vram_bar(xe); in determine_lmem_bar_size() 149 if (!xe->mem.vram.io_size) in determine_lmem_bar_size() 156 xe->mem.vram.mapping = ioremap_wc(xe->mem.vram.io_start, xe->mem.vram.io_size); in determine_lmem_bar_size() 227 if (IS_SRIOV_VF(xe)) { in tile_vram_size() 232 for_each_tile(t, xe, id) in tile_vram_size() 307 if (!IS_DGFX(xe)) in xe_vram_probe() 320 drm_info(&xe->drm, "VISIBLE VRAM: %pa, %pa\n", &xe->mem.vram.io_start, in xe_vram_probe() 366 drm_info(&xe->drm, "Total VRAM: %pa, %pa\n", &xe->mem.vram.io_start, in xe_vram_probe() 368 drm_info(&xe->drm, "Available VRAM: %pa, %pa\n", &xe->mem.vram.io_start, in xe_vram_probe() [all …]
|
| H A D | xe_sriov.h | 18 void xe_sriov_probe_early(struct xe_device *xe); 20 int xe_sriov_init(struct xe_device *xe); 24 xe_assert(xe, xe->sriov.__mode); in xe_device_sriov_mode() 25 return xe->sriov.__mode; in xe_device_sriov_mode() 28 static inline bool xe_device_is_sriov_pf(const struct xe_device *xe) in xe_device_is_sriov_pf() argument 30 return xe_device_sriov_mode(xe) == XE_SRIOV_MODE_PF; in xe_device_is_sriov_pf() 35 return xe_device_sriov_mode(xe) == XE_SRIOV_MODE_VF; in xe_device_is_sriov_vf() 39 #define IS_SRIOV_PF(xe) xe_device_is_sriov_pf(xe) argument 41 #define IS_SRIOV_PF(xe) (typecheck(struct xe_device *, (xe)) && false) argument 43 #define IS_SRIOV_VF(xe) xe_device_is_sriov_vf(xe) argument [all …]
|
| H A D | xe_pm.h | 15 int xe_pm_suspend(struct xe_device *xe); 16 int xe_pm_resume(struct xe_device *xe); 18 int xe_pm_init_early(struct xe_device *xe); 19 int xe_pm_init(struct xe_device *xe); 20 void xe_pm_runtime_fini(struct xe_device *xe); 21 bool xe_pm_runtime_suspended(struct xe_device *xe); 22 int xe_pm_runtime_suspend(struct xe_device *xe); 23 int xe_pm_runtime_resume(struct xe_device *xe); 24 void xe_pm_runtime_get(struct xe_device *xe); 25 int xe_pm_runtime_get_ioctl(struct xe_device *xe); [all …]
|
| H A D | xe_rtp.c | 93 match = !xe->info.is_dgfx; in rule_matches() 96 match = xe->info.is_dgfx; in rule_matches() 99 if (drm_WARN_ON(&xe->drm, !hwe)) in rule_matches() 105 if (drm_WARN_ON(&xe->drm, !hwe)) in rule_matches() 186 struct xe_device **xe) in rtp_get_context() argument 192 *xe = gt_to_xe(*gt); in rtp_get_context() 197 *xe = gt_to_xe(*gt); in rtp_get_context() 257 struct xe_device *xe = NULL; in xe_rtp_process_to_sr() local 261 if (IS_SRIOV_VF(xe)) in xe_rtp_process_to_sr() 264 xe_assert(xe, entries); in xe_rtp_process_to_sr() [all …]
|
| H A D | xe_pxp_submit.c | 37 struct xe_device *xe = pxp->xe; in allocate_vcs_execution_resources() local 101 xe_assert(xe, hwe); in allocate_gsc_client_resources() 223 emit_cmd(xe, batch, offset++, 0); in pxp_emit_wait() 235 emit_cmd(xe, batch, offset++, 0); in pxp_emit_session_selection() 236 emit_cmd(xe, batch, offset++, 0); in pxp_emit_session_selection() 403 struct xe_device *xe = gsc_res->vm->xe; in gsccs_send_message() local 438 xe_device_wmb(xe); in gsccs_send_message() 505 struct xe_device *xe = gsc_res->vm->xe; in xe_pxp_submit_session_init() local 528 drm_info_once(&xe->drm, in xe_pxp_submit_session_init() 552 struct xe_device *xe = gsc_res->vm->xe; in xe_pxp_submit_session_invalidation() local [all …]
|
| H A D | xe_heci_gsc.c | 173 int xe_heci_gsc_init(struct xe_device *xe) in xe_heci_gsc_init() argument 179 if (!xe->info.has_heci_gscfi && !xe->info.has_heci_cscfi) in xe_heci_gsc_init() 184 if (xe->info.platform == XE_BATTLEMAGE) { in xe_heci_gsc_init() 186 } else if (xe->info.platform == XE_PVC) { in xe_heci_gsc_init() 188 } else if (xe->info.platform == XE_DG2) { in xe_heci_gsc_init() 204 ret = heci_gsc_irq_setup(xe); in xe_heci_gsc_init() 209 return heci_gsc_add_device(xe, def); in xe_heci_gsc_init() 219 if (!xe->info.has_heci_gscfi) { in xe_heci_gsc_irq_handler() 224 if (xe->heci_gsc.irq < 0) in xe_heci_gsc_irq_handler() 239 if (!xe->info.has_heci_cscfi) { in xe_heci_csc_irq_handler() [all …]
|
| H A D | xe_bo.c | 324 struct xe_device *xe; member 423 xe_tt->xe = xe; in xe_ttm_tt_create() 436 if (!IS_DGFX(xe)) { in xe_ttm_tt_create() 662 xe_assert(xe, attach); in xe_bo_move_dmabuf() 974 xe_pm_runtime_put(xe); in xe_bo_move() 1052 struct xe_device *xe = xe_tt->xe; in xe_bo_shrink() local 1264 xe_assert(xe, locked); in xe_ttm_bo_lock_in_destructor() 2054 xe_assert(xe, IS_DGFX(xe)); in xe_managed_bo_reinit_in_vram() 2477 if (XE_IOCTL_DBG(xe, (args->placement & ~xe->info.mem_region_mask) || in xe_gem_create_ioctl() 2604 if (XE_IOCTL_DBG(xe, !IS_DGFX(xe))) in xe_gem_mmap_offset_ioctl() [all …]
|
| /linux-6.15/drivers/gpu/drm/xe/display/ |
| H A D | xe_display.c | 137 intel_detect_pch(xe); in xe_display_init_early() 150 intel_bw_init_hw(xe); in xe_display_init_early() 162 return devm_add_action_or_reset(xe->drm.dev, xe_display_fini_early, xe); in xe_display_init_early() 194 return devm_add_action_or_reset(xe->drm.dev, xe_display_fini, xe); in xe_display_init() 307 if (has_display(xe)) in xe_display_enable_d3cold() 320 if (has_display(xe)) in xe_display_disable_d3cold() 325 intel_hpd_init(xe); in xe_display_disable_d3cold() 327 if (has_display(xe)) in xe_display_disable_d3cold() 390 if (has_display(xe)) in xe_display_pm_shutdown() 485 intel_hpd_init(xe); in xe_display_pm_resume() [all …]
|
| H A D | xe_display.h | 18 int xe_display_create(struct xe_device *xe); 20 int xe_display_probe(struct xe_device *xe); 22 int xe_display_init_early(struct xe_device *xe); 23 int xe_display_init(struct xe_device *xe); 25 void xe_display_register(struct xe_device *xe); 26 void xe_display_unregister(struct xe_device *xe); 30 void xe_display_irq_reset(struct xe_device *xe); 33 void xe_display_pm_suspend(struct xe_device *xe); 34 void xe_display_pm_shutdown(struct xe_device *xe); 35 void xe_display_pm_suspend_late(struct xe_device *xe); [all …]
|
| /linux-6.15/drivers/gpu/drm/xe/compat-i915-headers/ |
| H A D | i915_drv.h | 76 #define IS_MOBILE(xe) (xe && 0) argument 78 #define IS_TIGERLAKE_UY(xe) (xe && 0) argument 79 #define IS_COMETLAKE_ULX(xe) (xe && 0) argument 80 #define IS_COFFEELAKE_ULX(xe) (xe && 0) argument 81 #define IS_KABYLAKE_ULX(xe) (xe && 0) argument 82 #define IS_SKYLAKE_ULX(xe) (xe && 0) argument 83 #define IS_HASWELL_ULX(xe) (xe && 0) argument 84 #define IS_COMETLAKE_ULT(xe) (xe && 0) argument 85 #define IS_COFFEELAKE_ULT(xe) (xe && 0) argument 86 #define IS_KABYLAKE_ULT(xe) (xe && 0) argument [all …]
|
| /linux-6.15/drivers/gpu/drm/xe/tests/ |
| H A D | xe_migrate.c | 271 IS_DGFX(xe)); in xe_migrate_sanity_test() 297 if (xe->info.tile_count > 1) { in xe_migrate_sanity_test() 319 if (xe->info.tile_count > 1) { in xe_migrate_sanity_test() 345 xe_pm_runtime_get(xe); in migrate_test_run_device() 347 for_each_tile(tile, xe, id) { in migrate_test_run_device() 356 xe_pm_runtime_put(xe); in migrate_test_run_device() 365 migrate_test_run_device(xe); in xe_migrate_sanity_kunit() 752 if (!(GRAPHICS_VER(xe) >= 20 && IS_DGFX(xe))) { in validate_ccs_test_run_device() 757 xe_pm_runtime_get(xe); in validate_ccs_test_run_device() 759 for_each_tile(tile, xe, id) in validate_ccs_test_run_device() [all …]
|