History

drm/nouveau: keep DMA buffers required for suspend/resume

Nouveau deallocates a few buffers post GPU init which are required for GPU suspend/resume to function correctly. This is likely not as big an issue on systems where the NVGPU is the only GPU, but on multi-GPU set ups it leads to a regression where the kernel module errors and results in a system-wide rendering freeze. This commit addresses that regression by moving the two buffers required for suspend and resume to be deallocated at driver unload instead of post init.

Sid Pranjale committed 2 years ago

Commit f6ecfda1 parent f7916c41 file · +2 −2Browse files

Unified · Split

drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c+2−2
@@ -1054,8 +1054,6 @@ r535_gsp_postinit(struct nvkm_gsp *gsp) · 1053 unmodified lines
1054 /* Release the DMA buffers that were needed only for boot and init */1054 /* Release the DMA buffers that were needed only for boot and init */
1055 nvkm_gsp_mem_dtor(gsp, &gsp->boot.fw);1055 nvkm_gsp_mem_dtor(gsp, &gsp->boot.fw);
1056 nvkm_gsp_mem_dtor(gsp, &gsp->libos);1056 nvkm_gsp_mem_dtor(gsp, &gsp->libos);
1057 nvkm_gsp_mem_dtor(gsp, &gsp->rmargs);
1058 nvkm_gsp_mem_dtor(gsp, &gsp->wpr_meta);
1059 1057
1060 return ret;1058 return ret;
1061}1059}
@@ -2163,6 +2161,8 @@ r535_gsp_dtor(struct nvkm_gsp *gsp) · 1101 unmodified lines
2163 2161
2164 r535_gsp_dtor_fws(gsp);2162 r535_gsp_dtor_fws(gsp);
2165 2163
2164 nvkm_gsp_mem_dtor(gsp, &gsp->rmargs);
2165 nvkm_gsp_mem_dtor(gsp, &gsp->wpr_meta);
2166 nvkm_gsp_mem_dtor(gsp, &gsp->shm.mem);2166 nvkm_gsp_mem_dtor(gsp, &gsp->shm.mem);
2167 nvkm_gsp_mem_dtor(gsp, &gsp->loginit);2167 nvkm_gsp_mem_dtor(gsp, &gsp->loginit);
2168 nvkm_gsp_mem_dtor(gsp, &gsp->logintr);2168 nvkm_gsp_mem_dtor(gsp, &gsp->logintr);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t