Skip to content

Commit ee06c09

Browse files
matt-auldlucasdemarchi
authored andcommitted
drm/xe/vram: fix ccs offset calculation
Spec says SW is expected to round up to the nearest 128K, if not already aligned for the CC unit view of CCS. We are seeing the assert sometimes pop on BMG to tell us that there is a hole between GSM and CCS, as well as popping other asserts with having a vram size with strange alignment, which is likely caused by misaligned offset here. v2 (Shuicheng): - Do the round_up() on final SW address. BSpec: 68023 Fixes: b5c2ca0 ("drm/xe/xe2hpg: Determine flat ccs offset for vram") Signed-off-by: Matthew Auld <[email protected]> Cc: Himal Prasad Ghimiray <[email protected]> Cc: Akshata Jahagirdar <[email protected]> Cc: Lucas De Marchi <[email protected]> Cc: Shuicheng Lin <[email protected]> Cc: Matt Roper <[email protected]> Cc: [email protected] # v6.10+ Reviewed-by: Himal Prasad Ghimiray <[email protected]> Tested-by: Shuicheng Lin <[email protected]> Reviewed-by: Lucas De Marchi <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Signed-off-by: Lucas De Marchi <[email protected]> (cherry picked from commit 3717339) Signed-off-by: Lucas De Marchi <[email protected]>
1 parent 7ab9ebc commit ee06c09

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

drivers/gpu/drm/xe/xe_vram.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ static inline u64 get_flat_ccs_offset(struct xe_gt *gt, u64 tile_size)
182182
offset = offset_hi << 32; /* HW view bits 39:32 */
183183
offset |= offset_lo << 6; /* HW view bits 31:6 */
184184
offset *= num_enabled; /* convert to SW view */
185+
offset = round_up(offset, SZ_128K); /* SW must round up to nearest 128K */
185186

186187
/* We don't expect any holes */
187188
xe_assert_msg(xe, offset == (xe_mmio_read64_2x32(gt, GSMBASE) - ccs_size),

0 commit comments

Comments
 (0)