diff options
author | Koby Elbaz <[email protected]> | 2023-10-05 11:06:17 -0400 |
---|---|---|
committer | Rodrigo Vivi <[email protected]> | 2023-12-21 11:42:59 -0500 |
commit | 866b2b1764341ada0611f54c6b19285c32d20efa (patch) | |
tree | fb4e47c2e7c7d4a17841067cba4e768cd787b758 | |
parent | fdef72e02e20d7bc3c4b25607a2f8afa99d509eb (diff) |
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: Koby Elbaz <[email protected]>
Reviewed-by: Ofir Bitton <[email protected]>
Reviewed-by: Moti Haimovski <[email protected]>
Signed-off-by: Rodrigo Vivi <[email protected]>
-rw-r--r-- | drivers/gpu/drm/xe/xe_device_types.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/xe/xe_pci.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/xe/xe_pci_types.h | 2 |
3 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h index a9bf9c784b7c..b64f810189ff 100644 --- a/drivers/gpu/drm/xe/xe_device_types.h +++ b/drivers/gpu/drm/xe/xe_device_types.h @@ -200,6 +200,8 @@ struct xe_device { const char *graphics_name; /** @media_name: media IP 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 */ u32 graphics_verx100; /** @media_verx100: media IP version */ @@ -245,6 +247,8 @@ struct xe_device { u8 has_range_tlb_invalidation:1; /** @bypass_mtcfg: Bypass Multi-Tile configuration from MTCFG register */ u8 bypass_mtcfg:1; + /** @supports_mmio_ext: supports MMIO extension/s */ + u8 supports_mmio_ext:1; } info; /** @irq: device interrupt state */ diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c index f8e813e17458..8161982796dd 100644 --- a/drivers/gpu/drm/xe/xe_pci.c +++ b/drivers/gpu/drm/xe/xe_pci.c @@ -57,6 +57,7 @@ struct xe_device_desc { u8 is_dgfx:1; u8 has_llc:1; u8 bypass_mtcfg:1; + u8 supports_mmio_ext:1; }; #define PLATFORM(x) \ @@ -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.has_llc = desc->has_llc; 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.vram_flags = graphics_desc->vram_flags; diff --git a/drivers/gpu/drm/xe/xe_pci_types.h b/drivers/gpu/drm/xe/xe_pci_types.h index bd0b0d87413e..dd3546ba6f90 100644 --- a/drivers/gpu/drm/xe/xe_pci_types.h +++ b/drivers/gpu/drm/xe/xe_pci_types.h @@ -20,6 +20,8 @@ struct xe_graphics_desc { 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 has_asid:1; |