Home
last modified time | relevance | path

Searched +full:0 +full:xe (Results 1 – 25 of 1031) sorted by relevance

12345678910>>...42

/linux/drivers/gpu/drm/xe/
H A Dxe_pm.c34 * DOC: Xe Power Management
36 * Xe PM implements the main routines for both system level suspend states and
56 * to perform the transition from D3hot to D3cold. Xe may disallow this
64 * (PC-states), and/or other low level power states. Xe PM component provides
68 * Also, Xe PM provides get and put functions that Xe driver will use to
95 lock_acquire_shared_recursive(&xe_pm_block_lockdep_map, 0, 1, NULL, _RET_IP_); in xe_pm_block_begin_signalling()
117 * @xe: The xe device about to be suspended.
129 * Return: %0 on success, %-ERESTARTSYS on signal pending or
132 int xe_pm_block_on_suspend(struct xe_device *xe) in xe_pm_block_on_suspend() argument
136 return wait_for_completion_interruptible(&xe->pm_block); in xe_pm_block_on_suspend()
[all …]
H A Dxe_device.c83 struct xe_device *xe = to_xe_device(dev); in xe_file_open() local
101 xef->xe = xe; in xe_file_open()
119 return 0; in xe_file_open()
137 * xe_file_get() - Take a reference to the xe file object
138 * @xef: Pointer to the xe file
140 * Anyone with a pointer to xef must take a reference to the xe file
143 * Return: xe file pointer
152 * xe_file_put() - Drop a reference to the xe file object
153 * @xef: Pointer to the xe file
164 struct xe_device *xe = to_xe_device(dev); in xe_file_close() local
[all …]
H A Dxe_debugfs.c42 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()
[all …]
H A Dxe_sriov_pf_migration.c19 static struct xe_sriov_migration_state *pf_pick_migration(struct xe_device *xe, unsigned int vfid) in pf_pick_migration() argument
21 xe_assert(xe, IS_SRIOV_PF(xe)); in pf_pick_migration()
22 xe_assert(xe, vfid <= xe_sriov_pf_get_totalvfs(xe)); in pf_pick_migration()
24 return &xe->sriov.pf.vfs[vfid].migration; in pf_pick_migration()
29 * @xe: the &xe_device
34 wait_queue_head_t *xe_sriov_pf_migration_waitqueue(struct xe_device *xe, unsigned int vfid) in xe_sriov_pf_migration_waitqueue() argument
36 return &pf_pick_migration(xe, vfid)->wq; in xe_sriov_pf_migration_waitqueue()
41 * @xe: the &xe_device
45 bool xe_sriov_pf_migration_supported(struct xe_device *xe) in xe_sriov_pf_migration_supported() argument
47 xe_assert(xe, IS_SRIOV_PF(xe)); in xe_sriov_pf_migration_supported()
[all …]
H A Dxe_sriov_packet.c15 static struct mutex *pf_migration_mutex(struct xe_device *xe, unsigned int vfid) in pf_migration_mutex() argument
17 xe_assert(xe, IS_SRIOV_PF(xe)); in pf_migration_mutex()
18 xe_assert(xe, vfid <= xe_sriov_pf_get_totalvfs(xe)); in pf_migration_mutex()
20 return &xe->sriov.pf.vfs[vfid].migration.lock; in pf_migration_mutex()
23 static struct xe_sriov_packet **pf_pick_pending(struct xe_device *xe, unsigned int vfid) in pf_pick_pending() argument
25 xe_assert(xe, IS_SRIOV_PF(xe)); in pf_pick_pending()
26 xe_assert(xe, vfid <= xe_sriov_pf_get_totalvfs(xe)); in pf_pick_pending()
27 lockdep_assert_held(pf_migration_mutex(xe, vfid)); in pf_pick_pending()
29 return &xe->sriov.pf.vfs[vfid].migration.pending; in pf_pick_pending()
33 pf_pick_descriptor(struct xe_device *xe, unsigned int vfid) in pf_pick_descriptor() argument
[all …]
H A Dxe_bo_evict.c15 static int xe_bo_apply_to_pinned(struct xe_device *xe, in xe_bo_apply_to_pinned() argument
22 int ret = 0; in xe_bo_apply_to_pinned()
24 spin_lock(&xe->pinned.lock); in xe_bo_apply_to_pinned()
32 spin_unlock(&xe->pinned.lock); in xe_bo_apply_to_pinned()
36 spin_lock(&xe->pinned.lock); in xe_bo_apply_to_pinned()
44 spin_unlock(&xe->pinned.lock); in xe_bo_apply_to_pinned()
47 spin_lock(&xe->pinned.lock); in xe_bo_apply_to_pinned()
50 spin_unlock(&xe->pinned.lock); in xe_bo_apply_to_pinned()
58 * @xe: xe device
62 * Return: 0 on success, negative error code on error.
[all …]
H A Dxe_sriov_pf_sysfs.c24 int pos = 0; in emit_choice()
27 for (n = 0; n < size; n++) { in emit_choice()
40 * /sys/bus/pci/drivers/xe/BDF/
70 struct xe_device *xe; member
77 ssize_t (*show)(struct xe_device *xe, char *buf);
78 ssize_t (*store)(struct xe_device *xe, const char *buf, size_t count);
96 ssize_t (*show)(struct xe_device *xe, unsigned int vfid, char *buf);
97 ssize_t (*store)(struct xe_device *xe, unsigned int vfid, const char *buf, size_t count);
117 static ssize_t xe_sriov_dev_attr_##NAME##_store(struct xe_device *xe, \
123 err = kstrto##TYPE(buf, 0, &value); \
[all …]
H A Dxe_pci.c196 static const u16 adls_rpls_ids[] = { INTEL_RPLS_IDS(NOP), 0 };
217 static const u16 adlp_rplu_ids[] = { INTEL_RPLU_IDS(NOP), 0 };
271 static const u16 dg2_g10_ids[] = { INTEL_DG2_G10_IDS(NOP), INTEL_ATS_M150_IDS(NOP), 0 };
272 static const u16 dg2_g11_ids[] = { INTEL_DG2_G11_IDS(NOP), INTEL_ATS_M75_IDS(NOP), 0 };
273 static const u16 dg2_g12_ids[] = { INTEL_DG2_G12_IDS(NOP), 0 };
357 static const u16 bmg_g21_ids[] = { INTEL_BMG_G21_IDS(NOP), 0 };
476 if (negative && strcmp(devices, "!*") == 0) in device_id_in_list()
478 if (!negative && strcmp(devices, "*") == 0) in device_id_in_list()
488 if (negative && tok[0] == '!') in device_id_in_list()
490 else if ((negative && tok[0] != '!') || in device_id_in_list()
[all …]
H A Dxe_sriov_pf_service.c18 * @xe: the &xe_device to initialize
24 void xe_sriov_pf_service_init(struct xe_device *xe) in xe_sriov_pf_service_init() argument
29 xe_assert(xe, IS_SRIOV_PF(xe)); in xe_sriov_pf_service_init()
32 xe->sriov.pf.service.version.base.major = GUC_RELAY_VERSION_BASE_MAJOR; in xe_sriov_pf_service_init()
33 xe->sriov.pf.service.version.base.minor = GUC_RELAY_VERSION_BASE_MINOR; in xe_sriov_pf_service_init()
36 xe->sriov.pf.service.version.latest.major = GUC_RELAY_VERSION_LATEST_MAJOR; in xe_sriov_pf_service_init()
37 xe->sriov.pf.service.version.latest.minor = GUC_RELAY_VERSION_LATEST_MINOR; in xe_sriov_pf_service_init()
40 /* Return: 0 on success or a negative error code on failure. */
41 static int pf_negotiate_version(struct xe_device *xe, in pf_negotiate_version() argument
45 struct xe_sriov_pf_service_version base = xe->sriov.pf.service.version.base; in pf_negotiate_version()
[all …]
H A Dxe_bo.c53 .fpfn = 0,
54 .lpfn = 0,
56 .flags = 0,
68 .fpfn = 0,
69 .lpfn = 0,
74 .fpfn = 0,
75 .lpfn = 0,
87 for (unsigned int __bit_tmp = BIT(0); __bit_tmp <= XE_BO_FLAG_VRAM_MASK; __bit_tmp <<= 1) \
95 static bool resource_is_stolen_vram(struct xe_device *xe, struct ttm_resource *res) in resource_is_stolen_vram() argument
97 return res->mem_type == XE_PL_STOLEN && IS_DGFX(xe); in resource_is_stolen_vram()
[all …]
H A Dxe_nvm.c16 #define GEN12_GUNIT_NVM_BASE 0x00102040
17 #define GEN12_DEBUG_NVM_BASE 0x00101018
19 #define GEN12_CNTL_PROTECTED_NVM_REG 0x0010100C
21 #define GEN12_GUNIT_NVM_SIZE 0x80
22 #define GEN12_DEBUG_NVM_SIZE 0x4
29 [0] = { .name = "DESCRIPTOR", },
44 static bool xe_nvm_non_posted_erase(struct xe_device *xe) in xe_nvm_non_posted_erase() argument
46 struct xe_mmio *mmio = xe_root_tile_mmio(xe); in xe_nvm_non_posted_erase()
48 switch (xe->info.platform) { in xe_nvm_non_posted_erase()
58 static bool xe_nvm_writable_override(struct xe_device *xe) in xe_nvm_writable_override() argument
[all …]
H A Dxe_heci_gsc.c19 #define GSC_BAR_LENGTH 0x00000FFC
102 if (heci_gsc->irq >= 0) in xe_heci_gsc_fini()
108 static int heci_gsc_irq_setup(struct xe_device *xe) in heci_gsc_irq_setup() argument
110 struct xe_heci_gsc *heci_gsc = &xe->heci_gsc; in heci_gsc_irq_setup()
113 heci_gsc->irq = irq_alloc_desc(0); in heci_gsc_irq_setup()
114 if (heci_gsc->irq < 0) { in heci_gsc_irq_setup()
115 drm_err(&xe->drm, "gsc irq error %d\n", heci_gsc->irq); in heci_gsc_irq_setup()
120 if (ret < 0) in heci_gsc_irq_setup()
121 drm_err(&xe->drm, "gsc irq init failed %d\n", ret); in heci_gsc_irq_setup()
126 static int heci_gsc_add_device(struct xe_device *xe, const struct heci_gsc_def *def) in heci_gsc_add_device() argument
[all …]
H A Dxe_query.c50 static size_t calc_hw_engine_info_size(struct xe_device *xe) in calc_hw_engine_info_size() argument
56 int i = 0; in calc_hw_engine_info_size()
58 for_each_gt(gt, xe, gt_id) in calc_hw_engine_info_size()
97 u32 upper, lower, old_upper, loop = 0; in hwe_read_timestamp()
115 query_engine_cycles(struct xe_device *xe, in query_engine_cycles() argument
126 if (IS_SRIOV_VF(xe)) in query_engine_cycles()
129 if (query->size == 0) { in query_engine_cycles()
131 return 0; in query_engine_cycles()
132 } else if (XE_IOCTL_DBG(xe, query->size != size)) { in query_engine_cycles()
145 if (eci->gt_id >= xe->info.max_gt_per_tile) in query_engine_cycles()
[all …]
H A Dxe_late_bind_fw.c58 struct xe_device *xe = late_bind_fw_to_xe(lb_fw); in parse_cpd_header() local
63 u32 offset = 0; in parse_cpd_header()
67 xe_assert(xe, manifest_entry); in parse_cpd_header()
73 drm_err(&xe->drm, "%s late binding fw: Invalid CPD header length %u!\n", in parse_cpd_header()
80 drm_err(&xe->drm, "%s late binding fw: too small! %zu < %zu\n", in parse_cpd_header()
87 for (i = 0; i < header->num_of_entries; i++, entry++) in parse_cpd_header()
88 if (strcmp(entry->name, manifest_entry) == 0) in parse_cpd_header()
92 drm_err(&xe->drm, "%s late binding fw: Failed to find manifest_entry\n", in parse_cpd_header()
99 drm_err(&xe->drm, "%s late binding fw: too small! %zu < %zu\n", in parse_cpd_header()
108 return 0; in parse_cpd_header()
[all …]
H A Dxe_exec_queue.c104 XE_EXEC_QUEUE_JOB_TIMEOUT = 0,
110 static int exec_queue_user_extensions(struct xe_device *xe, struct xe_exec_queue *q,
145 for (i = 0; i < XE_EXEC_QUEUE_TLB_INVAL_COUNT; ++i) in __xe_exec_queue_free()
165 static int alloc_dep_schedulers(struct xe_device *xe, struct xe_exec_queue *q) in alloc_dep_schedulers() argument
170 for (i = 0; i < XE_EXEC_QUEUE_TLB_INVAL_COUNT; ++i) { in alloc_dep_schedulers()
186 dep_scheduler = xe_dep_scheduler_create(xe, wq, q->name, in alloc_dep_schedulers()
195 return 0; in alloc_dep_schedulers()
198 static struct xe_exec_queue *__xe_exec_queue_alloc(struct xe_device *xe, in __xe_exec_queue_alloc() argument
244 err = alloc_dep_schedulers(xe, q); in __xe_exec_queue_alloc()
259 err = exec_queue_user_extensions(xe, q, extensions); in __xe_exec_queue_alloc()
[all …]
H A Dxe_pmu.c20 * DOC: Xe PMU (Performance Monitoring Unit)
28 * $ ls /sys/bus/event_source/devices/xe_0000_00_02.0/events/
29 * $ ls /sys/bus/event_source/devices/xe_0000_00_02.0/format/
42 * For gt specific events (gt-*) gt parameter must be passed. All other parameters will be 0.
58 #define XE_PMU_EVENT_ID_MASK GENMASK_ULL(11, 0)
85 #define XE_PMU_EVENT_GT_C6_RESIDENCY 0x01
86 #define XE_PMU_EVENT_ENGINE_ACTIVE_TICKS 0x02
87 #define XE_PMU_EVENT_ENGINE_TOTAL_TICKS 0x03
88 #define XE_PMU_EVENT_GT_ACTUAL_FREQUENCY 0x04
89 #define XE_PMU_EVENT_GT_REQUESTED_FREQUENCY 0x05
[all …]
H A Dxe_sriov_vf_ccs.c121 static u64 get_ccs_bb_pool_size(struct xe_device *xe) in get_ccs_bb_pool_size() argument
128 ccs_mem_size = div64_u64(sys_mem_size, NUM_BYTES_PER_CCS_BYTE(xe)); in get_ccs_bb_pool_size()
144 struct xe_device *xe = tile_to_xe(tile); in alloc_bb_pool() local
149 bb_pool_size = get_ccs_bb_pool_size(xe); in alloc_bb_pool()
150 xe_sriov_info(xe, "Allocating %s CCS BB pool size = %lldMB\n", in alloc_bb_pool()
157 xe_sriov_err(xe, "Suballocator init failed with error: %pe\n", in alloc_bb_pool()
163 offset = 0; in alloc_bb_pool()
164 xe_map_memset(xe, &sa_manager->bo->vmap, offset, MI_NOOP, in alloc_bb_pool()
166 xe_map_memset(xe, &sa_manager->shadow->vmap, offset, MI_NOOP, in alloc_bb_pool()
170 xe_map_wr(xe, &sa_manager->bo->vmap, offset, u32, MI_BATCH_BUFFER_END); in alloc_bb_pool()
[all …]
H A Dxe_vm_madvise.c49 madvise_range->num_vmas = 0; in get_vmas()
54 vm_dbg(&vm->xe->drm, "VMA's in range: start=0x%016llx, end=0x%016llx", addr, addr + range); in get_vmas()
83 vm_dbg(&vm->xe->drm, "madvise_range-num_vmas = %d\n", madvise_range->num_vmas); in get_vmas()
85 return 0; in get_vmas()
88 static void madvise_preferred_mem_loc(struct xe_device *xe, struct xe_vm *vm, in madvise_preferred_mem_loc() argument
95 xe_assert(vm->xe, op->type == DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC); in madvise_preferred_mem_loc()
97 for (i = 0; i < num_vmas; i++) { in madvise_preferred_mem_loc()
121 static void madvise_atomic(struct xe_device *xe, struct xe_vm *vm, in madvise_atomic() argument
129 xe_assert(vm->xe, op->type == DRM_XE_MEM_RANGE_ATTR_ATOMIC); in madvise_atomic()
130 xe_assert(vm->xe, op->atomic.val <= DRM_XE_ATOMIC_CPU); in madvise_atomic()
[all …]
H A Dxe_shrinker.c19 * @xe: Back pointer to the device.
27 struct xe_device *xe; member
57 static s64 __xe_shrinker_walk(struct xe_device *xe, in __xe_shrinker_walk() argument
63 s64 freed = 0, lret; in __xe_shrinker_walk()
66 struct ttm_resource_manager *man = ttm_manager_type(&xe->ttm, mem_type); in __xe_shrinker_walk()
82 if (lret < 0) in __xe_shrinker_walk()
90 xe_assert(xe, !IS_ERR(ttm_bo)); in __xe_shrinker_walk()
102 static s64 xe_shrinker_walk(struct xe_device *xe, in xe_shrinker_walk() argument
113 lret = __xe_shrinker_walk(xe, ctx, save_flags, to_scan, scanned); in xe_shrinker_walk()
115 if (lret < 0 || *scanned >= to_scan) in xe_shrinker_walk()
[all …]
H A Dxe_hwmon.c83 #define PWR_UNIT 0x3
84 #define ENERGY_UNIT 0xe
85 #define TIME_UNIT 0xa
154 * struct xe_hwmon - xe hwmon data structure
157 /** @hwmon_dev: hwmon device for xe */
159 /** @xe: Xe device */
160 struct xe_device *xe; member
186 struct xe_tile *root_tile = xe_device_get_root_tile(hwmon->xe); in xe_hwmon_pcode_read_power_limit()
187 u32 val0 = 0, val1 = 0; in xe_hwmon_pcode_read_power_limit()
188 int ret = 0; in xe_hwmon_pcode_read_power_limit()
[all …]
H A Dxe_vm.c56 * Return: %0 on success. See drm_exec_lock_obj() for error codes.
96 return 0; in alloc_preempt_fences()
107 return 0; in alloc_preempt_fences()
113 bool vf_migration = IS_SRIOV_VF(vm->xe) && in wait_for_existing_preempt_fences()
114 xe_sriov_vf_migration_supported(vm->xe); in wait_for_existing_preempt_fences()
126 xe_assert(vm->xe, vf_migration); in wait_for_existing_preempt_fences()
131 if (timeout < 0 || q->lr.pfence->error == -ETIME) in wait_for_existing_preempt_fences()
139 return 0; in wait_for_existing_preempt_fences()
164 xe_assert(vm->xe, link != list); in arm_preempt_fences()
182 return 0; in add_preempt_fences()
[all …]
/linux/drivers/gpu/drm/xe/tests/
H A Dxe_sriov_pf_service_kunit.c19 struct xe_device *xe; in pf_service_test_init() local
24 xe = test->priv; in pf_service_test_init()
25 KUNIT_ASSERT_EQ(test, xe_sriov_init(xe), 0); in pf_service_test_init()
27 xe_sriov_pf_service_init(xe); in pf_service_test_init()
33 KUNIT_ASSERT_NE(test, 0, xe->sriov.pf.service.version.base.major); in pf_service_test_init()
34 KUNIT_ASSERT_NE(test, 0, xe->sriov.pf.service.version.latest.major); in pf_service_test_init()
35 KUNIT_ASSERT_LE(test, xe->sriov.pf.service.version.base.major, in pf_service_test_init()
36 xe->sriov.pf.service.version.latest.major); in pf_service_test_init()
37 if (xe->sriov.pf.service.version.base.major == xe->sriov.pf.service.version.latest.major) in pf_service_test_init()
38 KUNIT_ASSERT_LE(test, xe->sriov.pf.service.version.base.minor, in pf_service_test_init()
[all …]
/linux/include/drm/intel/
H A Dxe_sriov_vfio.h24 * @xe: the PF &xe_device obtained by calling xe_sriov_vfio_get_pf()
28 bool xe_sriov_vfio_migration_supported(struct xe_device *xe);
32 * @xe: the PF &xe_device obtained by calling xe_sriov_vfio_get_pf()
33 * @vfid: the VF identifier (can't be 0)
38 * Return: 0 on success or a negative error code on failure.
40 int xe_sriov_vfio_wait_flr_done(struct xe_device *xe, unsigned int vfid);
44 * @xe: the PF &xe_device obtained by calling xe_sriov_vfio_get_pf()
45 * @vfid: the VF identifier (can't be 0)
49 * Return: 0 on success or a negative error code on failure.
51 int xe_sriov_vfio_suspend_device(struct xe_device *xe, unsigned int vfid);
[all …]
/linux/drivers/gpu/drm/xe/display/
H A Dxe_hdcp_gsc.c27 struct xe_device *xe; member
37 struct xe_device *xe = to_xe_device(drm); in intel_hdcp_gsc_check_status() local
38 struct xe_tile *tile = xe_device_get_root_tile(xe); in intel_hdcp_gsc_check_status()
43 drm_dbg_kms(&xe->drm, in intel_hdcp_gsc_check_status()
48 guard(xe_pm_runtime)(xe); in intel_hdcp_gsc_check_status()
51 drm_dbg_kms(&xe->drm, in intel_hdcp_gsc_check_status()
60 static int intel_hdcp_gsc_initialize_message(struct xe_device *xe, in intel_hdcp_gsc_initialize_message() argument
65 int ret = 0; in intel_hdcp_gsc_initialize_message()
68 bo = xe_bo_create_pin_map_novm(xe, xe_device_get_root_tile(xe), PAGE_SIZE * 2, in intel_hdcp_gsc_initialize_message()
74 drm_err(&xe->drm, "Failed to allocate bo for HDCP streaming command!\n"); in intel_hdcp_gsc_initialize_message()
[all …]
/linux/drivers/gpu/drm/amd/include/asic_reg/umc/
H A Dumc_6_7_0_sh_mask.h29 …C_UMC0_MCUMC_STATUST0__ErrorCode__SHIFT 0x0
30 …_UMC0_MCUMC_STATUST0__ErrorCodeExt__SHIFT 0x10
31 …_UMC0_MCUMC_STATUST0__RESERV22__SHIFT 0x16
32 …_UMC0_MCUMC_STATUST0__AddrLsb__SHIFT 0x18
33 …_UMC0_MCUMC_STATUST0__RESERV30__SHIFT 0x1e
34 …_UMC0_MCUMC_STATUST0__ErrCoreId__SHIFT 0x20
35 …_UMC0_MCUMC_STATUST0__RESERV38__SHIFT 0x26
36 …_UMC0_MCUMC_STATUST0__Scrub__SHIFT 0x28
37 …_UMC0_MCUMC_STATUST0__RESERV41__SHIFT 0x29
38 …_UMC0_MCUMC_STATUST0__Poison__SHIFT 0x2b
[all …]

12345678910>>...42