Commit 866b2b17 authored by Koby Elbaz's avatar Koby Elbaz Committed by Rodrigo Vivi

drm/xe: add MMIO extension support flags

Besides the regular MMIO space that exists by default, MMIO
extension support & MMIO extension tile size should both be
defined per device, and updated from the device's descriptor.
Signed-off-by: default avatarKoby Elbaz <kelbaz@habana.ai>
Reviewed-by: default avatarOfir Bitton <obitton@habana.ai>
Reviewed-by: default avatarMoti Haimovski <mhaimovski@habana.ai>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent fdef72e0
...@@ -200,6 +200,8 @@ struct xe_device { ...@@ -200,6 +200,8 @@ struct xe_device {
const char *graphics_name; const char *graphics_name;
/** @media_name: media IP name */ /** @media_name: media IP name */
const char *media_name; const char *media_name;
/** @tile_mmio_ext_size: size of MMIO extension space, per-tile */
u32 tile_mmio_ext_size;
/** @graphics_verx100: graphics IP version */ /** @graphics_verx100: graphics IP version */
u32 graphics_verx100; u32 graphics_verx100;
/** @media_verx100: media IP version */ /** @media_verx100: media IP version */
...@@ -245,6 +247,8 @@ struct xe_device { ...@@ -245,6 +247,8 @@ struct xe_device {
u8 has_range_tlb_invalidation:1; u8 has_range_tlb_invalidation:1;
/** @bypass_mtcfg: Bypass Multi-Tile configuration from MTCFG register */ /** @bypass_mtcfg: Bypass Multi-Tile configuration from MTCFG register */
u8 bypass_mtcfg:1; u8 bypass_mtcfg:1;
/** @supports_mmio_ext: supports MMIO extension/s */
u8 supports_mmio_ext:1;
} info; } info;
/** @irq: device interrupt state */ /** @irq: device interrupt state */
......
...@@ -57,6 +57,7 @@ struct xe_device_desc { ...@@ -57,6 +57,7 @@ struct xe_device_desc {
u8 is_dgfx:1; u8 is_dgfx:1;
u8 has_llc:1; u8 has_llc:1;
u8 bypass_mtcfg:1; u8 bypass_mtcfg:1;
u8 supports_mmio_ext:1;
}; };
#define PLATFORM(x) \ #define PLATFORM(x) \
...@@ -555,6 +556,8 @@ static int xe_info_init(struct xe_device *xe, ...@@ -555,6 +556,8 @@ static int xe_info_init(struct xe_device *xe,
xe->info.media_name = media_desc ? media_desc->name : "none"; xe->info.media_name = media_desc ? media_desc->name : "none";
xe->info.has_llc = desc->has_llc; xe->info.has_llc = desc->has_llc;
xe->info.bypass_mtcfg = desc->bypass_mtcfg; xe->info.bypass_mtcfg = desc->bypass_mtcfg;
xe->info.supports_mmio_ext = desc->supports_mmio_ext;
xe->info.tile_mmio_ext_size = graphics_desc->tile_mmio_ext_size;
xe->info.dma_mask_size = graphics_desc->dma_mask_size; xe->info.dma_mask_size = graphics_desc->dma_mask_size;
xe->info.vram_flags = graphics_desc->vram_flags; xe->info.vram_flags = graphics_desc->vram_flags;
......
...@@ -20,6 +20,8 @@ struct xe_graphics_desc { ...@@ -20,6 +20,8 @@ struct xe_graphics_desc {
u64 hw_engine_mask; /* hardware engines provided by graphics IP */ u64 hw_engine_mask; /* hardware engines provided by graphics IP */
u32 tile_mmio_ext_size; /* size of MMIO extension space, per-tile */
u8 max_remote_tiles:2; u8 max_remote_tiles:2;
u8 has_asid:1; u8 has_asid:1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment