| /linux/drivers/gpu/drm/xe/tests/ |
| H A D | xe_sriov_pf_service_kunit.c | 19 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 …]
|
| H A D | xe_kunit_helpers.c | 36 struct xe_device *xe; in xe_kunit_helper_alloc_xe_device() local 38 xe = drm_kunit_helper_alloc_drm_device(test, dev, in xe_kunit_helper_alloc_xe_device() 41 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xe); in xe_kunit_helper_alloc_xe_device() 42 return xe; in xe_kunit_helper_alloc_xe_device() 69 * Return: Always 0. 73 struct xe_device *xe; in xe_kunit_helper_xe_device_test_init() local 80 xe = xe_kunit_helper_alloc_xe_device(test, dev); in xe_kunit_helper_xe_device_test_init() 81 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xe); in xe_kunit_helper_xe_device_test_init() 83 err = xe_pci_fake_device_init(xe); in xe_kunit_helper_xe_device_test_init() 84 KUNIT_ASSERT_EQ(test, err, 0); in xe_kunit_helper_xe_device_test_init() [all …]
|
| H A D | xe_bo.c | 54 if (dma_fence_wait_timeout(fence, false, 5 * HZ) <= 0) { in ccs_test_migrate() 75 if (timeout <= 0) { in ccs_test_migrate() 101 if (cpu_map[0] != get_val) { in ccs_test_migrate() 103 "Expected CCS readout 0x%016llx, got 0x%016llx.\n", in ccs_test_migrate() 105 (unsigned long long)cpu_map[0]); in ccs_test_migrate() 114 "Expected CCS readout 0x%016llx, got 0x%016llx.\n", in ccs_test_migrate() 120 cpu_map[0] = assign_val; in ccs_test_migrate() 127 static void ccs_test_run_tile(struct xe_device *xe, struct xe_tile *tile, in ccs_test_run_tile() argument 138 if (IS_DGFX(xe)) in ccs_test_run_tile() 143 bo = xe_bo_create_user(xe, NULL, SZ_1M, DRM_XE_GEM_CPU_CACHING_WC, in ccs_test_run_tile() [all …]
|
| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_sriov_pf_migration.c | 19 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 D | xe_sriov_packet.c | 15 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 D | xe_bo_evict.c | 15 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 D | xe_sriov_pf_service.c | 18 * @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 D | xe_heci_gsc.c | 19 #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 D | xe_late_bind_fw.c | 58 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 D | xe_vm_madvise.c | 55 madvise_range->num_vmas = 0; in get_vmas() 60 vm_dbg(&vm->xe->drm, "VMA's in range: start=0x%016llx, end=0x%016llx", addr, addr + range); in get_vmas() 89 vm_dbg(&vm->xe->drm, "madvise_range-num_vmas = %d\n", madvise_range->num_vmas); in get_vmas() 91 return 0; in get_vmas() 94 static void madvise_preferred_mem_loc(struct xe_device *xe, struct xe_vm *vm, in madvise_preferred_mem_loc() argument 101 xe_assert(vm->xe, op->type == DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC); in madvise_preferred_mem_loc() 103 for (i = 0; i < num_vmas; i++) { in madvise_preferred_mem_loc() 127 static void madvise_atomic(struct xe_device *xe, struct xe_vm *vm, in madvise_atomic() argument 135 xe_assert(vm->xe, op->type == DRM_XE_MEM_RANGE_ATTR_ATOMIC); in madvise_atomic() 136 xe_assert(vm->xe, op->atomic.val <= DRM_XE_ATOMIC_CPU); in madvise_atomic() [all …]
|
| H A D | xe_pmu.c | 20 * 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 D | xe_sriov_vf_ccs.c | 121 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() 145 struct xe_device *xe = tile_to_xe(tile); in alloc_bb_pool() local 150 bb_pool_size = get_ccs_bb_pool_size(xe); in alloc_bb_pool() 151 xe_sriov_info(xe, "Allocating %s CCS BB pool size = %lldMB\n", in alloc_bb_pool() 157 xe_sriov_err(xe, "xe_mem_pool_init failed with error: %pe\n", in alloc_bb_pool() 164 memset(pool_cpu_addr, 0, bb_pool_size); in alloc_bb_pool() 179 return 0; in alloc_bb_pool() 186 u32 dw[10], i = 0; in ccs_rw_update_ring() 194 lrc->ring.tail = 0; in ccs_rw_update_ring() [all …]
|
| H A D | xe_shrinker.c | 19 * @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 D | xe_pagefault.c | 24 * DOC: Xe page faults 26 * Xe page faults are handled in two layers. The producer layer interacts with 60 return 0; in xe_pagefault_begin() 72 return 0; in xe_pagefault_begin() 91 needs_vram = xe_vma_need_vram_for_atomic(vm->xe, vma, atomic); in xe_pagefault_handle_vma() 92 if (needs_vram < 0 || (needs_vram && xe_vma_is_userptr(vma))) in xe_pagefault_handle_vma() 93 return needs_vram < 0 ? needs_vram : -EACCES; in xe_pagefault_handle_vma() 104 return 0; in xe_pagefault_handle_vma() 117 xe_validation_ctx_init(&ctx, &vm->xe->val, &exec, (struct xe_val_flags) {}); in xe_pagefault_handle_vma() 155 static struct xe_vm *xe_pagefault_asid_to_vm(struct xe_device *xe, u32 asid) in xe_pagefault_asid_to_vm() argument [all …]
|
| H A D | xe_gsc_proxy.c | 38 * 1 - Xe submits a request to GSC asking for the message to CSME 40 * 3 - Xe sends the reply from GSC as-is to CSME via the mei proxy component 42 * 5 - Xe submits a request to GSC with the reply from CSME 99 __gsc_proxy_irq_rmw(gsc, 0, HECI_H_CSR_IS); in gsc_proxy_irq_clear() 104 u32 set = enabled ? HECI_H_CSR_IE : 0; in gsc_proxy_irq_toggle() 105 u32 clr = enabled ? 0 : HECI_H_CSR_IE; in gsc_proxy_irq_toggle() 117 if (ret < 0) { in proxy_send_to_csme() 123 if (ret < 0) { in proxy_send_to_csme() 151 return 0; in proxy_send_to_gsc() 160 int ret = 0; in validate_proxy_header() [all …]
|
| H A D | xe_gt_ccs_mode.c | 23 struct xe_device *xe = gt_to_xe(gt); in __xe_gt_apply_ccs_mode() local 24 int width, cslice = 0; in __xe_gt_apply_ccs_mode() 25 u32 config = 0; in __xe_gt_apply_ccs_mode() 27 xe_assert(xe, xe_gt_ccs_mode_enabled(gt)); in __xe_gt_apply_ccs_mode() 29 xe_assert(xe, num_engines && num_engines <= num_slices); in __xe_gt_apply_ccs_mode() 30 xe_assert(xe, !(num_slices % num_engines)); in __xe_gt_apply_ccs_mode() 38 * slice 0, 1, 2, 3: ccs0 in __xe_gt_apply_ccs_mode() 41 * slice 0, 2: ccs0 in __xe_gt_apply_ccs_mode() 45 * slice 0: ccs0 in __xe_gt_apply_ccs_mode() 64 while ((CCS_INSTANCES(gt) & BIT(cslice)) == 0) in __xe_gt_apply_ccs_mode() [all …]
|
| H A D | xe_ttm_sys_mgr.c | 49 node->base.mm_nodes[0].start = 0; in xe_ttm_sys_mgr_new() 50 node->base.mm_nodes[0].size = PFN_UP(node->base.base.size); in xe_ttm_sys_mgr_new() 55 return 0; in xe_ttm_sys_mgr_new() 89 struct xe_device *xe = (struct xe_device *)arg; in xe_ttm_sys_mgr_fini() local 90 struct ttm_resource_manager *man = &xe->mem.sys_mgr; in xe_ttm_sys_mgr_fini() 95 err = ttm_resource_manager_evict_all(&xe->ttm, man); in xe_ttm_sys_mgr_fini() 100 ttm_set_driver_manager(&xe->ttm, XE_PL_TT, NULL); in xe_ttm_sys_mgr_fini() 103 int xe_ttm_sys_mgr_init(struct xe_device *xe) in xe_ttm_sys_mgr_init() argument 105 struct ttm_resource_manager *man = &xe->mem.sys_mgr; in xe_ttm_sys_mgr_init() 115 ttm_resource_manager_init(man, &xe->ttm, gtt_size >> PAGE_SHIFT); in xe_ttm_sys_mgr_init() [all …]
|
| /linux/drivers/gpu/drm/xe/display/ |
| H A D | xe_hdcp_gsc.c | 27 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() 51 drm_dbg_kms(&xe->drm, in intel_hdcp_gsc_check_status() 56 guard(xe_pm_runtime)(xe); in intel_hdcp_gsc_check_status() 59 drm_dbg_kms(&xe->drm, in intel_hdcp_gsc_check_status() 68 static int intel_hdcp_gsc_initialize_message(struct xe_device *xe, in intel_hdcp_gsc_initialize_message() argument 73 int ret = 0; in intel_hdcp_gsc_initialize_message() 76 bo = xe_bo_create_pin_map_novm(xe, xe_device_get_root_tile(xe), PAGE_SIZE * 2, in intel_hdcp_gsc_initialize_message() [all …]
|
| H A D | xe_stolen.c | 12 struct xe_device *xe; member 19 struct xe_device *xe = node->xe; in xe_stolen_insert_node_in_range() local 22 int err = 0; in xe_stolen_insert_node_in_range() 33 bo = xe_bo_create_pin_range_novm(xe, xe_device_get_root_tile(xe), in xe_stolen_insert_node_in_range() 54 struct xe_device *xe = to_xe_device(drm); in xe_stolen_initialized() local 56 return ttm_manager_type(&xe->ttm, XE_PL_STOLEN); in xe_stolen_initialized() 68 xe_res_first(node->bo->ttm.resource, 0, 4096, &res); in xe_stolen_node_offset() 74 struct xe_device *xe = node->xe; in xe_stolen_node_address() local 76 return xe_ttm_stolen_gpu_offset(xe) + xe_stolen_node_offset(node); in xe_stolen_node_address() 86 struct xe_device *xe = to_xe_device(drm); in xe_stolen_node_alloc() local [all …]
|
| /linux/drivers/gpu/drm/amd/include/asic_reg/umc/ |
| H A D | umc_6_7_0_sh_mask.h | 29 …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 …]
|
| /linux/arch/mips/math-emu/ |
| H A D | ieee754dp.c | 65 xm += 0x3 + ((xm >> 3) & 1); in ieee754dp_get_rounding() 66 /* xm += (xm&0x8)?0x4:0x3 */ in ieee754dp_get_rounding() 70 xm += 0x8; in ieee754dp_get_rounding() 74 xm += 0x8; in ieee754dp_get_rounding() 84 * xe is an unbiased exponent 87 union ieee754dp ieee754dp_format(int sn, int xe, u64 xm) in ieee754dp_format() argument 91 assert((xm >> (DP_FBITS + 1 + 3)) == 0); /* no excess */ in ieee754dp_format() 94 if (xe < DP_EMIN) { in ieee754dp_format() 96 int es = DP_EMIN - xe; in ieee754dp_format() 107 if (sn == 0) in ieee754dp_format() [all …]
|
| H A D | ieee754sp.c | 65 xm += 0x3 + ((xm >> 3) & 1); in ieee754sp_get_rounding() 66 /* xm += (xm&0x8)?0x4:0x3 */ in ieee754sp_get_rounding() 70 xm += 0x8; in ieee754sp_get_rounding() 74 xm += 0x8; in ieee754sp_get_rounding() 84 * xe is an unbiased exponent 87 union ieee754sp ieee754sp_format(int sn, int xe, unsigned int xm) in ieee754sp_format() argument 91 assert((xm >> (SP_FBITS + 1 + 3)) == 0); /* no excess */ in ieee754sp_format() 94 if (xe < SP_EMIN) { in ieee754sp_format() 96 int es = SP_EMIN - xe; in ieee754sp_format() 107 if (sn == 0) in ieee754sp_format() [all …]
|
| H A D | dp_tlong.c | 37 return 0; in ieee754dp_tlong() 43 if (xe >= 63) { in ieee754dp_tlong() 45 if (xe == 63 && xs && xm == DP_HIDDEN_BIT) in ieee754dp_tlong() 46 return -0x8000000000000000LL; in ieee754dp_tlong() 53 if (xe > DP_FBITS) { in ieee754dp_tlong() 54 xm <<= xe - DP_FBITS; in ieee754dp_tlong() 55 } else if (xe < DP_FBITS) { in ieee754dp_tlong() 56 if (xe < -1) { in ieee754dp_tlong() 58 round = 0; in ieee754dp_tlong() 59 sticky = residue != 0; in ieee754dp_tlong() [all …]
|
| H A D | sp_tint.c | 37 return 0; in ieee754sp_tint() 43 if (xe >= 31) { in ieee754sp_tint() 45 if (xe == 31 && xs && xm == SP_HIDDEN_BIT) in ieee754sp_tint() 46 return -0x80000000; in ieee754sp_tint() 53 if (xe > SP_FBITS) { in ieee754sp_tint() 54 xm <<= xe - SP_FBITS; in ieee754sp_tint() 56 if (xe < -1) { in ieee754sp_tint() 58 round = 0; in ieee754sp_tint() 59 sticky = residue != 0; in ieee754sp_tint() 60 xm = 0; in ieee754sp_tint() [all …]
|
| H A D | sp_tlong.c | 37 return 0; in ieee754sp_tlong() 43 if (xe >= 63) { in ieee754sp_tlong() 45 if (xe == 63 && xs && xm == SP_HIDDEN_BIT) in ieee754sp_tlong() 46 return -0x8000000000000000LL; in ieee754sp_tlong() 53 if (xe > SP_FBITS) { in ieee754sp_tlong() 54 xm <<= xe - SP_FBITS; in ieee754sp_tlong() 55 } else if (xe < SP_FBITS) { in ieee754sp_tlong() 56 if (xe < -1) { in ieee754sp_tlong() 58 round = 0; in ieee754sp_tlong() 59 sticky = residue != 0; in ieee754sp_tlong() [all …]
|