mirror of
https://github.com/torvalds/linux.git
synced 2024-09-20 06:53:04 +00:00
drm/xe: Add NEEDS_2M BO flag
In addition of NEEDS_64K BO flag, add similar one to force 2 MiB alignment of the buffer objects. Explicitly use this flag during VF LMEM provisioning as LMTT uses 2 MiB pages and one day we may drop requirement of allocating pinned objects as contiguous. Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240715180538.1418-3-michal.wajdeczko@intel.com
This commit is contained in:
parent
9790bbe3ba
commit
25ec7e809c
|
@ -1264,13 +1264,14 @@ struct xe_bo *___xe_bo_create_locked(struct xe_device *xe, struct xe_bo *bo,
|
|||
if (flags & (XE_BO_FLAG_VRAM_MASK | XE_BO_FLAG_STOLEN) &&
|
||||
!(flags & XE_BO_FLAG_IGNORE_MIN_PAGE_SIZE) &&
|
||||
((xe->info.vram_flags & XE_VRAM_FLAGS_NEED64K) ||
|
||||
(flags & XE_BO_FLAG_NEEDS_64K))) {
|
||||
aligned_size = ALIGN(size, SZ_64K);
|
||||
if (type != ttm_bo_type_device)
|
||||
size = ALIGN(size, SZ_64K);
|
||||
flags |= XE_BO_FLAG_INTERNAL_64K;
|
||||
alignment = SZ_64K >> PAGE_SHIFT;
|
||||
(flags & (XE_BO_FLAG_NEEDS_64K | XE_BO_FLAG_NEEDS_2M)))) {
|
||||
size_t align = flags & XE_BO_FLAG_NEEDS_2M ? SZ_2M : SZ_64K;
|
||||
|
||||
aligned_size = ALIGN(size, align);
|
||||
if (type != ttm_bo_type_device)
|
||||
size = ALIGN(size, align);
|
||||
flags |= XE_BO_FLAG_INTERNAL_64K;
|
||||
alignment = align >> PAGE_SHIFT;
|
||||
} else {
|
||||
aligned_size = ALIGN(size, SZ_4K);
|
||||
flags &= ~XE_BO_FLAG_INTERNAL_64K;
|
||||
|
|
|
@ -37,7 +37,8 @@
|
|||
#define XE_BO_FLAG_NEEDS_CPU_ACCESS BIT(13)
|
||||
#define XE_BO_FLAG_NEEDS_UC BIT(14)
|
||||
#define XE_BO_FLAG_NEEDS_64K BIT(15)
|
||||
#define XE_BO_FLAG_GGTT_INVALIDATE BIT(16)
|
||||
#define XE_BO_FLAG_NEEDS_2M BIT(16)
|
||||
#define XE_BO_FLAG_GGTT_INVALIDATE BIT(17)
|
||||
/* this one is trigger internally only */
|
||||
#define XE_BO_FLAG_INTERNAL_TEST BIT(30)
|
||||
#define XE_BO_FLAG_INTERNAL_64K BIT(31)
|
||||
|
|
|
@ -1401,6 +1401,7 @@ static int pf_provision_vf_lmem(struct xe_gt *gt, unsigned int vfid, u64 size)
|
|||
ALIGN(size, PAGE_SIZE),
|
||||
ttm_bo_type_kernel,
|
||||
XE_BO_FLAG_VRAM_IF_DGFX(tile) |
|
||||
XE_BO_FLAG_NEEDS_2M |
|
||||
XE_BO_FLAG_PINNED);
|
||||
if (IS_ERR(bo))
|
||||
return PTR_ERR(bo);
|
||||
|
|
Loading…
Reference in New Issue
Block a user