Driver Changes:
- Fix kunit link failure with built-in xe - Fix one more 32-bit build failure with ARM compiler - Fix initialization order of topology struct - Cleanup unused fields in struct xe_vm - Fix xe_vm leak when handling page fault on a VM not in fault mode - Drop use of "grouped target" feature in Makefile since that's only available in make >= 4.3 -----BEGIN PGP SIGNATURE----- iQJNBAABCAA3FiEE6rM8lpABPHM5FqyDm6KlpjDL6lMFAmXl7zsZHGx1Y2FzLmRl bWFyY2hpQGludGVsLmNvbQAKCRCboqWmMMvqU9ZDD/9zNsw9pRwDsxZraKJJuQJy Vnn+mTcGwxqxrym/x85eERkETYQ13ChPxMwOjwjVOp6A9OqidusdCD2BL0MReXSI NpugpJUzPVgXIGdm3lPlr+UHbQar1IvK5NAES8WAQzGgOpp4IY0RCko+HjKOD9jC sCn5PGKwCOGb98Bsgw23sNtJq0Tjgl3cNslkKPfYwgMOTDu+OPsIdRE7Sk1gWTW4 v+siH9A2PaaGghWZB2sYw12+Ur2RDoHIfQctc9vvu0OrKNJjAkHp8va9SGaFtI1D NhkE2iHAiLjMc216GSOAimTCQmQ7081Kjx3JtN7uNg7vKhUI2gVWND+zWDUV+umm 8+lzF/SBBrkUYh5WBOF49b2j4WndyPsEVMTmDm40YPNfDNUcl4WRdNASiva7yj10 HV7GkIImjsIkWlSK9NGO8N3JzHtDvraTOTLHqjdRU5xA9mB+DdnWRCjTyJlMhPel nmjKWpKeRE+WW/5BEqnkXg4HuhykJOF2fsxoarhE+F/omNKnjmk5d/g0bOJMCgwy 3MSDeSaclQggiIh4mU/NAI/LeruETHzcVw6cArwQRJmvEiE9gEsOT/2uxOVodHvt C+GZ4Br3eOXw/prwNTk15CZkzEV6zqKgrn70//Fu1siNWkEUvkiKXBwMOajZdckB jXy7E6MxNsoQ5qvq4oowEw== =Cbn5 -----END PGP SIGNATURE----- Merge tag 'drm-xe-next-fixes-2024-03-04' of ssh://gitlab.freedesktop.org/drm/xe/kernel into drm-next Driver Changes: - Fix kunit link failure with built-in xe - Fix one more 32-bit build failure with ARM compiler - Fix initialization order of topology struct - Cleanup unused fields in struct xe_vm - Fix xe_vm leak when handling page fault on a VM not in fault mode - Drop use of "grouped target" feature in Makefile since that's only available in make >= 4.3 Signed-off-by: Dave Airlie <airlied@redhat.com> From: Lucas De Marchi <lucas.demarchi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/kaypobelrl7u7rtnu6hg5czs3vptbhs4rp24vnwuo2ajoxysto@l5u7377hz4es
This commit is contained in:
commit
5794d2f7eb
@ -10,6 +10,7 @@ config DRM_XE
|
||||
select DRM_BUDDY
|
||||
select DRM_EXEC
|
||||
select DRM_KMS_HELPER
|
||||
select DRM_KUNIT_TEST_HELPERS if DRM_XE_KUNIT_TEST != n
|
||||
select DRM_PANEL
|
||||
select DRM_SUBALLOC_HELPER
|
||||
select DRM_DISPLAY_DP_HELPER
|
||||
|
@ -76,7 +76,6 @@ config DRM_XE_KUNIT_TEST
|
||||
depends on DRM_XE && KUNIT && DEBUG_FS
|
||||
default KUNIT_ALL_TESTS
|
||||
select DRM_EXPORT_FOR_TESTS if m
|
||||
select DRM_KUNIT_TEST_HELPERS
|
||||
help
|
||||
Choose this option to allow the driver to perform selftests under
|
||||
the kunit framework
|
||||
|
@ -42,7 +42,8 @@ generated_oob := $(obj)/generated/xe_wa_oob.c $(obj)/generated/xe_wa_oob.h
|
||||
quiet_cmd_wa_oob = GEN $(notdir $(generated_oob))
|
||||
cmd_wa_oob = mkdir -p $(@D); $^ $(generated_oob)
|
||||
|
||||
$(generated_oob) &: $(obj)/xe_gen_wa_oob $(srctree)/$(src)/xe_wa_oob.rules
|
||||
$(obj)/generated/%_wa_oob.c $(obj)/generated/%_wa_oob.h: $(obj)/xe_gen_wa_oob \
|
||||
$(srctree)/$(src)/xe_wa_oob.rules
|
||||
$(call cmd,wa_oob)
|
||||
|
||||
uses_generated_oob := \
|
||||
@ -158,8 +159,10 @@ xe-$(CONFIG_PCI_IOV) += \
|
||||
xe_lmtt_2l.o \
|
||||
xe_lmtt_ml.o
|
||||
|
||||
xe-$(CONFIG_DRM_XE_KUNIT_TEST) += \
|
||||
tests/xe_kunit_helpers.o
|
||||
# include helpers for tests even when XE is built-in
|
||||
ifdef CONFIG_DRM_XE_KUNIT_TEST
|
||||
xe-y += tests/xe_kunit_helpers.o
|
||||
endif
|
||||
|
||||
# i915 Display compat #defines and #includes
|
||||
subdir-ccflags-$(CONFIG_DRM_XE_DISPLAY) += \
|
||||
|
@ -314,8 +314,6 @@ int xe_gt_init_early(struct xe_gt *gt)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
xe_gt_topology_init(gt);
|
||||
|
||||
err = xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
|
||||
if (err)
|
||||
return err;
|
||||
@ -502,6 +500,7 @@ int xe_gt_init_hwconfig(struct xe_gt *gt)
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
xe_gt_topology_init(gt);
|
||||
xe_gt_mcr_init(gt);
|
||||
xe_pat_init(gt);
|
||||
|
||||
|
@ -146,10 +146,12 @@ static int handle_pagefault(struct xe_gt *gt, struct pagefault *pf)
|
||||
/* ASID to VM */
|
||||
mutex_lock(&xe->usm.lock);
|
||||
vm = xa_load(&xe->usm.asid_to_vm, pf->asid);
|
||||
if (vm)
|
||||
if (vm && xe_vm_in_fault_mode(vm))
|
||||
xe_vm_get(vm);
|
||||
else
|
||||
vm = NULL;
|
||||
mutex_unlock(&xe->usm.lock);
|
||||
if (!vm || !xe_vm_in_fault_mode(vm))
|
||||
if (!vm)
|
||||
return -EINVAL;
|
||||
|
||||
retry_userptr:
|
||||
|
@ -462,7 +462,7 @@ static u32 pte_update_size(struct xe_migrate *m,
|
||||
} else {
|
||||
/* Clip L0 to available size */
|
||||
u64 size = min(*L0, (u64)avail_pts * SZ_2M);
|
||||
u64 num_4k_pages = DIV_ROUND_UP(size, XE_PAGE_SIZE);
|
||||
u32 num_4k_pages = (size + XE_PAGE_SIZE - 1) >> XE_PTE_SHIFT;
|
||||
|
||||
*L0 = size;
|
||||
*L0_ofs = xe_migrate_vm_addr(pt_ofs, 0);
|
||||
|
@ -189,30 +189,6 @@ struct xe_vm {
|
||||
*/
|
||||
struct xe_range_fence_tree rftree[XE_MAX_TILES_PER_DEVICE];
|
||||
|
||||
/** @async_ops: async VM operations (bind / unbinds) */
|
||||
struct {
|
||||
/** @list: list of pending async VM ops */
|
||||
struct list_head pending;
|
||||
/** @work: worker to execute async VM ops */
|
||||
struct work_struct work;
|
||||
/** @lock: protects list of pending async VM ops and fences */
|
||||
spinlock_t lock;
|
||||
/** @fence: fence state */
|
||||
struct {
|
||||
/** @context: context of async fence */
|
||||
u64 context;
|
||||
/** @seqno: seqno of async fence */
|
||||
u32 seqno;
|
||||
} fence;
|
||||
/** @error: error state for async VM ops */
|
||||
int error;
|
||||
/**
|
||||
* @munmap_rebind_inflight: an munmap style VM bind is in the
|
||||
* middle of a set of ops which requires a rebind at the end.
|
||||
*/
|
||||
bool munmap_rebind_inflight;
|
||||
} async_ops;
|
||||
|
||||
const struct xe_pt_ops *pt_ops;
|
||||
|
||||
/** @userptr: user pointer state */
|
||||
|
Loading…
x
Reference in New Issue
Block a user