Commit e4b2893c authored by Tejas Upadhyay's avatar Tejas Upadhyay Committed by Rodrigo Vivi

drm/xe: Make usable size of VRAM readable

Current size member of vram struct does not give
complete information as what "size" contains. Does
it contain reserved portions or not. Name it usable
size and accordingly describe other size members as
well.
Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: default avatarTejas Upadhyay <tejas.upadhyay@intel.com>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
parent 9641df81
...@@ -125,7 +125,7 @@ static void add_vram(struct xe_device *xe, struct xe_bo *bo, ...@@ -125,7 +125,7 @@ static void add_vram(struct xe_device *xe, struct xe_bo *bo,
{ {
struct xe_tile *tile = mem_type_to_tile(xe, mem_type); struct xe_tile *tile = mem_type_to_tile(xe, mem_type);
XE_BUG_ON(!tile->mem.vram.size); XE_BUG_ON(!tile->mem.vram.usable_size);
places[*c] = (struct ttm_place) { places[*c] = (struct ttm_place) {
.mem_type = mem_type, .mem_type = mem_type,
......
...@@ -122,11 +122,18 @@ struct xe_tile { ...@@ -122,11 +122,18 @@ struct xe_tile {
resource_size_t io_size; resource_size_t io_size;
/** @base: offset of VRAM starting base */ /** @base: offset of VRAM starting base */
resource_size_t base; resource_size_t base;
/** @size: size of VRAM. */ /**
resource_size_t size; * @usable_size: usable size of VRAM
*
* Usable size of VRAM excluding reserved portions
* (e.g stolen mem)
*/
resource_size_t usable_size;
/** /**
* @actual_physical_size: Actual VRAM size * @actual_physical_size: Actual VRAM size
* including stolen mem for tile *
* Actual VRAM size including reserved portions
* (e.g stolen mem)
*/ */
resource_size_t actual_physical_size; resource_size_t actual_physical_size;
/** @mapping: pointer to VRAM mappable space */ /** @mapping: pointer to VRAM mappable space */
......
...@@ -289,13 +289,13 @@ int xe_mmio_probe_vram(struct xe_device *xe) ...@@ -289,13 +289,13 @@ int xe_mmio_probe_vram(struct xe_device *xe)
tile->mem.vram.base = tile_offset; tile->mem.vram.base = tile_offset;
/* small bar can limit the visible size. size accordingly */ /* small bar can limit the visible size. size accordingly */
tile->mem.vram.size = min_t(u64, vram_size, io_size); tile->mem.vram.usable_size = min_t(u64, vram_size, io_size);
tile->mem.vram.mapping = xe->mem.vram.mapping + tile_offset; tile->mem.vram.mapping = xe->mem.vram.mapping + tile_offset;
drm_info(&xe->drm, "VRAM[%u, %u]: %pa, %pa\n", id, tile->id, drm_info(&xe->drm, "VRAM[%u, %u]: %pa, %pa\n", id, tile->id,
&tile->mem.vram.io_start, &tile->mem.vram.size); &tile->mem.vram.io_start, &tile->mem.vram.usable_size);
if (tile->mem.vram.io_size < tile->mem.vram.size) if (tile->mem.vram.io_size < tile->mem.vram.usable_size)
drm_info(&xe->drm, "VRAM[%u, %u]: CPU access limited to %pa\n", id, drm_info(&xe->drm, "VRAM[%u, %u]: CPU access limited to %pa\n", id,
tile->id, &tile->mem.vram.io_size); tile->id, &tile->mem.vram.io_size);
......
...@@ -188,7 +188,7 @@ static int query_config(struct xe_device *xe, struct drm_xe_device_query *query) ...@@ -188,7 +188,7 @@ static int query_config(struct xe_device *xe, struct drm_xe_device_query *query)
config->num_params = num_params; config->num_params = num_params;
config->info[XE_QUERY_CONFIG_REV_AND_DEVICE_ID] = config->info[XE_QUERY_CONFIG_REV_AND_DEVICE_ID] =
xe->info.devid | (xe->info.revid << 16); xe->info.devid | (xe->info.revid << 16);
if (xe_device_get_root_tile(xe)->mem.vram.size) if (xe_device_get_root_tile(xe)->mem.vram.usable_size)
config->info[XE_QUERY_CONFIG_FLAGS] = config->info[XE_QUERY_CONFIG_FLAGS] =
XE_QUERY_CONFIG_FLAGS_HAS_VRAM; XE_QUERY_CONFIG_FLAGS_HAS_VRAM;
if (xe->info.enable_guc) if (xe->info.enable_guc)
......
...@@ -101,7 +101,7 @@ static int tile_ttm_mgr_init(struct xe_tile *tile) ...@@ -101,7 +101,7 @@ static int tile_ttm_mgr_init(struct xe_tile *tile)
struct xe_device *xe = tile_to_xe(tile); struct xe_device *xe = tile_to_xe(tile);
int err; int err;
if (tile->mem.vram.size) { if (tile->mem.vram.usable_size) {
err = xe_ttm_vram_mgr_init(tile, tile->mem.vram_mgr); err = xe_ttm_vram_mgr_init(tile, tile->mem.vram_mgr);
if (err) if (err)
return err; return err;
......
...@@ -360,7 +360,8 @@ int xe_ttm_vram_mgr_init(struct xe_tile *tile, struct xe_ttm_vram_mgr *mgr) ...@@ -360,7 +360,8 @@ int xe_ttm_vram_mgr_init(struct xe_tile *tile, struct xe_ttm_vram_mgr *mgr)
mgr->tile = tile; mgr->tile = tile;
return __xe_ttm_vram_mgr_init(xe, mgr, XE_PL_VRAM0 + tile->id, return __xe_ttm_vram_mgr_init(xe, mgr, XE_PL_VRAM0 + tile->id,
tile->mem.vram.size, tile->mem.vram.io_size, tile->mem.vram.usable_size,
tile->mem.vram.io_size,
PAGE_SIZE); PAGE_SIZE);
} }
......
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