Commit bf08dd47 authored by Matt Roper's avatar Matt Roper Committed by Rodrigo Vivi

drm/xe: Track whether platform has LLC

Some driver initialization is conditional on the presence of an LLC.
Add an extra feature flag to support this.
Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20230410183910.2696628-2-matthew.d.roper@intel.comSigned-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent 689f40f5
...@@ -92,6 +92,8 @@ struct xe_device { ...@@ -92,6 +92,8 @@ struct xe_device {
u8 has_flat_ccs:1; u8 has_flat_ccs:1;
/** @has_4tile: Whether tile-4 tiling is supported */ /** @has_4tile: Whether tile-4 tiling is supported */
u8 has_4tile:1; u8 has_4tile:1;
/** @has_llc: Device has a shared CPU+GPU last level cache */
u8 has_llc:1;
/** @has_range_tlb_invalidation: Has range based TLB invalidations */ /** @has_range_tlb_invalidation: Has range based TLB invalidations */
u8 has_range_tlb_invalidation:1; u8 has_range_tlb_invalidation:1;
/** @has_link_copy_engines: Whether the platform has link copy engines */ /** @has_link_copy_engines: Whether the platform has link copy engines */
......
...@@ -55,6 +55,7 @@ struct xe_device_desc { ...@@ -55,6 +55,7 @@ struct xe_device_desc {
* should eventually move entirely into the display code's own logic. * should eventually move entirely into the display code's own logic.
*/ */
u8 has_4tile:1; u8 has_4tile:1;
u8 has_llc:1;
}; };
#define PLATFORM(x) \ #define PLATFORM(x) \
...@@ -172,6 +173,7 @@ static const struct xe_device_desc tgl_desc = { ...@@ -172,6 +173,7 @@ static const struct xe_device_desc tgl_desc = {
.graphics = &graphics_xelp, .graphics = &graphics_xelp,
.media = &media_xem, .media = &media_xem,
PLATFORM(XE_TIGERLAKE), PLATFORM(XE_TIGERLAKE),
.has_llc = 1,
.require_force_probe = true, .require_force_probe = true,
}; };
...@@ -179,6 +181,7 @@ static const struct xe_device_desc adl_s_desc = { ...@@ -179,6 +181,7 @@ static const struct xe_device_desc adl_s_desc = {
.graphics = &graphics_xelp, .graphics = &graphics_xelp,
.media = &media_xem, .media = &media_xem,
PLATFORM(XE_ALDERLAKE_S), PLATFORM(XE_ALDERLAKE_S),
.has_llc = 1,
.require_force_probe = true, .require_force_probe = true,
}; };
...@@ -188,6 +191,7 @@ static const struct xe_device_desc adl_p_desc = { ...@@ -188,6 +191,7 @@ static const struct xe_device_desc adl_p_desc = {
.graphics = &graphics_xelp, .graphics = &graphics_xelp,
.media = &media_xem, .media = &media_xem,
PLATFORM(XE_ALDERLAKE_P), PLATFORM(XE_ALDERLAKE_P),
.has_llc = 1,
.require_force_probe = true, .require_force_probe = true,
.subplatforms = (const struct xe_subplatform_desc[]) { .subplatforms = (const struct xe_subplatform_desc[]) {
{ XE_SUBPLATFORM_ADLP_RPLU, "RPLU", adlp_rplu_ids }, { XE_SUBPLATFORM_ADLP_RPLU, "RPLU", adlp_rplu_ids },
...@@ -491,6 +495,7 @@ static int xe_info_init(struct xe_device *xe, ...@@ -491,6 +495,7 @@ static int xe_info_init(struct xe_device *xe,
xe->info.graphics_name = graphics_desc->name; xe->info.graphics_name = graphics_desc->name;
xe->info.media_name = media_desc ? media_desc->name : "none"; xe->info.media_name = media_desc ? media_desc->name : "none";
xe->info.has_4tile = desc->has_4tile; xe->info.has_4tile = desc->has_4tile;
xe->info.has_llc = desc->has_llc;
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;
......
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