bool prt_warning;
uint64_t stolen_vga_size;
struct amdgpu_bo *stolen_vga_memory;
+ uint64_t stolen_extended_size;
+ struct amdgpu_bo *stolen_extended_memory;
bool keep_stolen_vga_memory;
uint32_t sdpif_register;
/* apertures */
uint64_t gtt_size;
int r;
u64 vis_vram_limit;
- void *stolen_vga_buf;
+ void *stolen_vga_buf, *stolen_extended_buf;
mutex_init(&adev->mman.gtt_window_lock);
&stolen_vga_buf);
if (r)
return r;
+ r = amdgpu_bo_create_kernel_at(adev, adev->gmc.stolen_vga_size,
+ adev->gmc.stolen_extended_size,
+ AMDGPU_GEM_DOMAIN_VRAM,
+ &adev->gmc.stolen_extended_memory,
+ &stolen_extended_buf);
+ if (r)
+ return r;
DRM_INFO("amdgpu: %uM of VRAM memory ready\n",
(unsigned) (adev->gmc.real_vram_size / (1024 * 1024)));
*/
void amdgpu_ttm_late_init(struct amdgpu_device *adev)
{
- void *stolen_vga_buf;
+ void *stolen_vga_buf, *stolen_extended_buf;
/* return the VGA stolen memory (if any) back to VRAM */
if (!adev->gmc.keep_stolen_vga_memory)
amdgpu_bo_free_kernel(&adev->gmc.stolen_vga_memory, NULL, &stolen_vga_buf);
+ amdgpu_bo_free_kernel(&adev->gmc.stolen_extended_memory, NULL,
+ &stolen_extended_buf);
}
/**