drm/xe: Introduce has_atomic_enable_pte_bit device info
authorNirmoy Das <nirmoy.das@intel.com>
Tue, 30 Apr 2024 16:25:25 +0000 (18:25 +0200)
committerNirmoy Das <nirmoy.das@intel.com>
Mon, 6 May 2024 16:14:10 +0000 (18:14 +0200)
Add has_atomic_enable_pte_bit to specify that a device
has PTE_AE bit in its PTE feild. Currently XE2 and PVC
supports this so set this for those two.

This will help consolidate setting atomic access bit in PTE
logic which is spread between multiple files.

Reviewed-by: Oak Zeng <oak.zeng@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240430162529.21588-2-nirmoy.das@intel.com
Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
drivers/gpu/drm/xe/xe_device_types.h
drivers/gpu/drm/xe/xe_pci.c
drivers/gpu/drm/xe/xe_pci_types.h

index 0f68c55..7cddb00 100644 (file)
@@ -281,6 +281,8 @@ struct xe_device {
                u8 has_heci_gscfi:1;
                /** @info.skip_guc_pc: Skip GuC based PM feature init */
                u8 skip_guc_pc:1;
+               /** @info.has_atomic_enable_pte_bit: Device has atomic enable PTE bit */
+               u8 has_atomic_enable_pte_bit:1;
 
 #if IS_ENABLED(CONFIG_DRM_XE_DISPLAY)
                struct {
index 27edf4f..c385f4d 100644 (file)
@@ -146,6 +146,7 @@ static const struct xe_graphics_desc graphics_xehpc = {
        .vram_flags = XE_VRAM_FLAGS_NEED64K,
 
        .has_asid = 1,
+       .has_atomic_enable_pte_bit = 1,
        .has_flat_ccs = 0,
        .has_usm = 1,
 };
@@ -163,6 +164,7 @@ static const struct xe_graphics_desc graphics_xelpg = {
 #define XE2_GFX_FEATURES \
        .dma_mask_size = 46, \
        .has_asid = 1, \
+       .has_atomic_enable_pte_bit = 1, \
        .has_flat_ccs = 1, \
        .has_range_tlb_invalidation = 1, \
        .has_usm = 1, \
@@ -629,6 +631,7 @@ static int xe_info_init(struct xe_device *xe,
        xe->info.va_bits = graphics_desc->va_bits;
        xe->info.vm_max_level = graphics_desc->vm_max_level;
        xe->info.has_asid = graphics_desc->has_asid;
+       xe->info.has_atomic_enable_pte_bit = graphics_desc->has_atomic_enable_pte_bit;
        xe->info.has_flat_ccs = graphics_desc->has_flat_ccs;
        xe->info.has_range_tlb_invalidation = graphics_desc->has_range_tlb_invalidation;
        xe->info.has_usm = graphics_desc->has_usm;
index b1ad12f..e1f2b48 100644 (file)
@@ -25,6 +25,7 @@ struct xe_graphics_desc {
        u8 max_remote_tiles:2;
 
        u8 has_asid:1;
+       u8 has_atomic_enable_pte_bit:1;
        u8 has_flat_ccs:1;
        u8 has_range_tlb_invalidation:1;
        u8 has_usm:1;