Skip to content

Commit 7116327

Browse files
piorkovmwajdecz
authored andcommitted
drm/xe: Move VRAM manager to struct xe_vram_region
VRAM manager is related directly to struct xe_vram_region so it should be inside this structure. Let's move the VRAM to struct xe_vram_region. v2: - remove xe_vram_region pointer from xe_ttm_vram_mgr - stop use dynamic alloaction for xe_ttm_vram_mgr in xe_vram_region - rename struct xe_ttm_vram_mgr vram_mgr to ttm v3: - fix "'ttm' not described in 'xe_vram_region'" Signed-off-by: Piotr Piórkowski <[email protected]> Cc: Rodrigo Vivi <[email protected]> Reviewed-by: Rodrigo Vivi <[email protected]> Signed-off-by: Michal Wajdeczko <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent fc3a50c commit 7116327

File tree

6 files changed

+13
-16
lines changed

6 files changed

+13
-16
lines changed

drivers/gpu/drm/xe/xe_bo.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,13 @@ static struct xe_vram_region *res_to_mem_region(struct ttm_resource *res)
147147
{
148148
struct xe_device *xe = ttm_to_xe_device(res->bo->bdev);
149149
struct ttm_resource_manager *mgr;
150+
struct xe_ttm_vram_mgr *vram_mgr;
150151

151152
xe_assert(xe, resource_is_vram(res));
152153
mgr = ttm_manager_type(&xe->ttm, res->mem_type);
153-
return to_xe_ttm_vram_mgr(mgr)->vram;
154+
vram_mgr = to_xe_ttm_vram_mgr(mgr);
155+
156+
return container_of(vram_mgr, struct xe_vram_region, ttm);
154157
}
155158

156159
static void try_add_system(struct xe_device *xe, struct xe_bo *bo,
@@ -179,12 +182,15 @@ static void add_vram(struct xe_device *xe, struct xe_bo *bo,
179182
struct ttm_place *places, u32 bo_flags, u32 mem_type, u32 *c)
180183
{
181184
struct ttm_place place = { .mem_type = mem_type };
185+
struct ttm_resource_manager *mgr = ttm_manager_type(&xe->ttm, mem_type);
186+
struct xe_ttm_vram_mgr *vram_mgr = to_xe_ttm_vram_mgr(mgr);
187+
182188
struct xe_vram_region *vram;
183189
u64 io_size;
184190

185191
xe_assert(xe, *c < ARRAY_SIZE(bo->placements));
186192

187-
vram = to_xe_ttm_vram_mgr(ttm_manager_type(&xe->ttm, mem_type))->vram;
193+
vram = container_of(vram_mgr, struct xe_vram_region, ttm);
188194
xe_assert(xe, vram && vram->usable_size);
189195
io_size = vram->io_size;
190196

drivers/gpu/drm/xe/xe_device_types.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "xe_sriov_types.h"
2424
#include "xe_step_types.h"
2525
#include "xe_survivability_mode_types.h"
26+
#include "xe_ttm_vram_mgr_types.h"
2627

2728
#if IS_ENABLED(CONFIG_DRM_XE_DEBUG)
2829
#define TEST_VM_OPS_ERROR
@@ -105,6 +106,8 @@ struct xe_vram_region {
105106
resource_size_t actual_physical_size;
106107
/** @mapping: pointer to VRAM mappable space */
107108
void __iomem *mapping;
109+
/** @ttm: VRAM TTM manager */
110+
struct xe_ttm_vram_mgr ttm;
108111
};
109112

110113
/**
@@ -199,9 +202,6 @@ struct xe_tile {
199202
*/
200203
struct xe_vram_region vram;
201204

202-
/** @mem.vram_mgr: VRAM TTM manager */
203-
struct xe_ttm_vram_mgr *vram_mgr;
204-
205205
/** @mem.ggtt: Global graphics translation table */
206206
struct xe_ggtt *ggtt;
207207

drivers/gpu/drm/xe/xe_gt_sriov_pf_config.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1564,7 +1564,7 @@ static u64 pf_query_free_lmem(struct xe_gt *gt)
15641564
{
15651565
struct xe_tile *tile = gt->tile;
15661566

1567-
return xe_ttm_vram_get_avail(&tile->mem.vram_mgr->manager);
1567+
return xe_ttm_vram_get_avail(&tile->mem.vram.ttm.manager);
15681568
}
15691569

15701570
static u64 pf_query_max_lmem(struct xe_gt *gt)

drivers/gpu/drm/xe/xe_tile.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,6 @@ static int xe_tile_alloc(struct xe_tile *tile)
9494
return -ENOMEM;
9595
tile->mem.ggtt->tile = tile;
9696

97-
tile->mem.vram_mgr = drmm_kzalloc(drm, sizeof(*tile->mem.vram_mgr), GFP_KERNEL);
98-
if (!tile->mem.vram_mgr)
99-
return -ENOMEM;
100-
10197
return 0;
10298
}
10399

@@ -139,7 +135,7 @@ static int tile_ttm_mgr_init(struct xe_tile *tile)
139135
int err;
140136

141137
if (tile->mem.vram.usable_size) {
142-
err = xe_ttm_vram_mgr_init(tile, tile->mem.vram_mgr);
138+
err = xe_ttm_vram_mgr_init(tile, &tile->mem.vram.ttm);
143139
if (err)
144140
return err;
145141
xe->info.mem_region_mask |= BIT(tile->id) << 1;

drivers/gpu/drm/xe/xe_ttm_vram_mgr.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,6 @@ int xe_ttm_vram_mgr_init(struct xe_tile *tile, struct xe_ttm_vram_mgr *mgr)
342342
struct xe_device *xe = tile_to_xe(tile);
343343
struct xe_vram_region *vram = &tile->mem.vram;
344344

345-
mgr->vram = vram;
346345
return __xe_ttm_vram_mgr_init(xe, mgr, XE_PL_VRAM0 + tile->id,
347346
vram->usable_size, vram->io_size,
348347
PAGE_SIZE);

drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
#include <drm/drm_buddy.h>
1010
#include <drm/ttm/ttm_device.h>
1111

12-
struct xe_vram_region;
13-
1412
/**
1513
* struct xe_ttm_vram_mgr - XE TTM VRAM manager
1614
*
@@ -21,8 +19,6 @@ struct xe_ttm_vram_mgr {
2119
struct ttm_resource_manager manager;
2220
/** @mm: DRM buddy allocator which manages the VRAM */
2321
struct drm_buddy mm;
24-
/** @vram: ptr to details of associated VRAM region */
25-
struct xe_vram_region *vram;
2622
/** @visible_size: Proped size of the CPU visible portion */
2723
u64 visible_size;
2824
/** @visible_avail: CPU visible portion still unallocated */

0 commit comments

Comments
 (0)