diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-06 22:09:22 -0500 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-11-06 22:09:22 -0500 |
| commit | db401573f1a8a2a926901f752b4401e8916d976c (patch) | |
| tree | 24bb1b9264478143a9dde674d70db1b8fcdca1dc /kernel/gsp_sema_service.c | |
| parent | 0aec62b805c493a4200d2e8edf4e46c90890fd55 (diff) | |
| download | open-iov-db401573f1a8a2a926901f752b4401e8916d976c.tar.gz open-iov-db401573f1a8a2a926901f752b4401e8916d976c.zip | |
vgsp-gl: GS SPH placement/maps/context A/B knobs
Diffstat (limited to 'kernel/gsp_sema_service.c')
| -rw-r--r-- | kernel/gsp_sema_service.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c index 4ede0c7..6972172 100644 --- a/kernel/gsp_sema_service.c +++ b/kernel/gsp_sema_service.c @@ -10657,7 +10657,9 @@ static void svc_gl_flush(struct nv_vgpu_device *vgpu, }; u32 gs_maps = gsp_phys_rmcall_gr_sph_gs_maps_value(); - u64 dst = fam + 0x780u; + u64 dst = fam + + (gsp_phys_rmcall_gr_sph_gs_addr_value() ? + 0xe80u : 0x780u); bool dup = false; u32 pi4; @@ -10678,6 +10680,19 @@ static void svc_gl_flush(struct nv_vgpu_device *vgpu, gs_words[17] = 0u; } else if (gs_maps == 3u) { gs_words[17] = 0u; + } else if (gs_maps == 4u) { + /* IMAP = previous OMAP; OMAP = + * PS IMAP exactly (POSITION.W). */ + gs_words[5] = 0xf0000000u; + gs_words[10] = 0x0000000fu; + gs_words[13] = 0x00008000u; + gs_words[17] = 0u; + } else if (gs_maps == 5u) { + /* mesh-dummy IMAP, OMAP POSITION.W. */ + gs_words[5] = 0u; + gs_words[10] = 0u; + gs_words[13] = 0x00008000u; + gs_words[17] = 0u; } /* SESSION 155 CONT 13: mesh-dummy FASTGS * form (bit24 ENABLE_FAST_G_S). */ |
