Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

amdgpu: move ttm stuff to amdgpu_ttm.h

Signed-off-by: Flora Cui <Flora.Cui@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Flora Cui and committed by
Alex Deucher
c632d799 2a702ccd

+80 -51
+2 -43
drivers/gpu/drm/amd/amdgpu/amdgpu.h
··· 51 51 #include "amdgpu_ih.h" 52 52 #include "amdgpu_irq.h" 53 53 #include "amdgpu_ucode.h" 54 + #include "amdgpu_ttm.h" 54 55 #include "amdgpu_gds.h" 55 56 #include "amd_powerplay.h" 56 57 #include "amdgpu_acp.h" ··· 398 397 unsigned amdgpu_fence_count_emitted(struct amdgpu_ring *ring); 399 398 400 399 /* 401 - * TTM. 400 + * BO. 402 401 */ 403 - 404 - #define AMDGPU_TTM_LRU_SIZE 20 405 - 406 - struct amdgpu_mman_lru { 407 - struct list_head *lru[TTM_NUM_MEM_TYPES]; 408 - struct list_head *swap_lru; 409 - }; 410 - 411 - struct amdgpu_mman { 412 - struct ttm_bo_global_ref bo_global_ref; 413 - struct drm_global_reference mem_global_ref; 414 - struct ttm_bo_device bdev; 415 - bool mem_global_referenced; 416 - bool initialized; 417 - 418 - #if defined(CONFIG_DEBUG_FS) 419 - struct dentry *vram; 420 - struct dentry *gtt; 421 - #endif 422 - 423 - /* buffer handling */ 424 - const struct amdgpu_buffer_funcs *buffer_funcs; 425 - struct amdgpu_ring *buffer_funcs_ring; 426 - /* Scheduler entity for buffer moves */ 427 - struct amd_sched_entity entity; 428 - 429 - /* custom LRU management */ 430 - struct amdgpu_mman_lru log2_size[AMDGPU_TTM_LRU_SIZE]; 431 - }; 432 - 433 - int amdgpu_copy_buffer(struct amdgpu_ring *ring, 434 - uint64_t src_offset, 435 - uint64_t dst_offset, 436 - uint32_t byte_count, 437 - struct reservation_object *resv, 438 - struct fence **fence); 439 - int amdgpu_fill_buffer(struct amdgpu_bo *bo, 440 - uint32_t src_data, 441 - struct reservation_object *resv, 442 - struct fence **fence); 443 - 444 - int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma); 445 402 446 403 struct amdgpu_bo_list_entry { 447 404 struct amdgpu_bo *robj;
-8
drivers/gpu/drm/amd/amdgpu/amdgpu_gds.h
··· 31 31 #define AMDGPU_GWS_SHIFT PAGE_SHIFT 32 32 #define AMDGPU_OA_SHIFT PAGE_SHIFT 33 33 34 - #define AMDGPU_PL_GDS TTM_PL_PRIV0 35 - #define AMDGPU_PL_GWS TTM_PL_PRIV1 36 - #define AMDGPU_PL_OA TTM_PL_PRIV2 37 - 38 - #define AMDGPU_PL_FLAG_GDS TTM_PL_FLAG_PRIV0 39 - #define AMDGPU_PL_FLAG_GWS TTM_PL_FLAG_PRIV1 40 - #define AMDGPU_PL_FLAG_OA TTM_PL_FLAG_PRIV2 41 - 42 34 struct amdgpu_ring; 43 35 struct amdgpu_bo; 44 36
+78
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
··· 1 + /* 2 + * Copyright 2016 Advanced Micro Devices, Inc. 3 + * 4 + * Permission is hereby granted, free of charge, to any person obtaining a 5 + * copy of this software and associated documentation files (the "Software"), 6 + * to deal in the Software without restriction, including without limitation 7 + * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 + * and/or sell copies of the Software, and to permit persons to whom the 9 + * Software is furnished to do so, subject to the following conditions: 10 + * 11 + * The above copyright notice and this permission notice shall be included in 12 + * all copies or substantial portions of the Software. 13 + * 14 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17 + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18 + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19 + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20 + * OTHER DEALINGS IN THE SOFTWARE. 21 + * 22 + */ 23 + 24 + #ifndef __AMDGPU_TTM_H__ 25 + #define __AMDGPU_TTM_H__ 26 + 27 + #include "gpu_scheduler.h" 28 + 29 + #define AMDGPU_PL_GDS TTM_PL_PRIV0 30 + #define AMDGPU_PL_GWS TTM_PL_PRIV1 31 + #define AMDGPU_PL_OA TTM_PL_PRIV2 32 + 33 + #define AMDGPU_PL_FLAG_GDS TTM_PL_FLAG_PRIV0 34 + #define AMDGPU_PL_FLAG_GWS TTM_PL_FLAG_PRIV1 35 + #define AMDGPU_PL_FLAG_OA TTM_PL_FLAG_PRIV2 36 + 37 + #define AMDGPU_TTM_LRU_SIZE 20 38 + 39 + struct amdgpu_mman_lru { 40 + struct list_head *lru[TTM_NUM_MEM_TYPES]; 41 + struct list_head *swap_lru; 42 + }; 43 + 44 + struct amdgpu_mman { 45 + struct ttm_bo_global_ref bo_global_ref; 46 + struct drm_global_reference mem_global_ref; 47 + struct ttm_bo_device bdev; 48 + bool mem_global_referenced; 49 + bool initialized; 50 + 51 + #if defined(CONFIG_DEBUG_FS) 52 + struct dentry *vram; 53 + struct dentry *gtt; 54 + #endif 55 + 56 + /* buffer handling */ 57 + const struct amdgpu_buffer_funcs *buffer_funcs; 58 + struct amdgpu_ring *buffer_funcs_ring; 59 + /* Scheduler entity for buffer moves */ 60 + struct amd_sched_entity entity; 61 + 62 + /* custom LRU management */ 63 + struct amdgpu_mman_lru log2_size[AMDGPU_TTM_LRU_SIZE]; 64 + }; 65 + 66 + int amdgpu_copy_buffer(struct amdgpu_ring *ring, 67 + uint64_t src_offset, 68 + uint64_t dst_offset, 69 + uint32_t byte_count, 70 + struct reservation_object *resv, 71 + struct fence **fence); 72 + int amdgpu_fill_buffer(struct amdgpu_bo *bo, 73 + uint32_t src_data, 74 + struct reservation_object *resv, 75 + struct fence **fence); 76 + 77 + int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma); 78 + #endif