@@ -49,23 +49,23 @@ static void radeon_bo_clear_surface_reg(struct radeon_bo *bo);
4949 * function are calling it.
5050 */
5151
52- static void radeon_update_memory_usage (struct radeon_bo * bo ,
53- unsigned mem_type , int sign )
52+ static void radeon_update_memory_usage (struct ttm_buffer_object * bo ,
53+ unsigned int mem_type , int sign )
5454{
55- struct radeon_device * rdev = bo -> rdev ;
55+ struct radeon_device * rdev = radeon_get_rdev ( bo -> bdev ) ;
5656
5757 switch (mem_type ) {
5858 case TTM_PL_TT :
5959 if (sign > 0 )
60- atomic64_add (bo -> tbo . base .size , & rdev -> gtt_usage );
60+ atomic64_add (bo -> base .size , & rdev -> gtt_usage );
6161 else
62- atomic64_sub (bo -> tbo . base .size , & rdev -> gtt_usage );
62+ atomic64_sub (bo -> base .size , & rdev -> gtt_usage );
6363 break ;
6464 case TTM_PL_VRAM :
6565 if (sign > 0 )
66- atomic64_add (bo -> tbo . base .size , & rdev -> vram_usage );
66+ atomic64_add (bo -> base .size , & rdev -> vram_usage );
6767 else
68- atomic64_sub (bo -> tbo . base .size , & rdev -> vram_usage );
68+ atomic64_sub (bo -> base .size , & rdev -> vram_usage );
6969 break ;
7070 }
7171}
@@ -76,8 +76,6 @@ static void radeon_ttm_bo_destroy(struct ttm_buffer_object *tbo)
7676
7777 bo = container_of (tbo , struct radeon_bo , tbo );
7878
79- radeon_update_memory_usage (bo , bo -> tbo .resource -> mem_type , -1 );
80-
8179 mutex_lock (& bo -> rdev -> gem .mutex );
8280 list_del_init (& bo -> list );
8381 mutex_unlock (& bo -> rdev -> gem .mutex );
@@ -727,24 +725,21 @@ int radeon_bo_check_tiling(struct radeon_bo *bo, bool has_moved,
727725}
728726
729727void radeon_bo_move_notify (struct ttm_buffer_object * bo ,
730- bool evict ,
728+ unsigned int old_type ,
731729 struct ttm_resource * new_mem )
732730{
733731 struct radeon_bo * rbo ;
734732
733+ radeon_update_memory_usage (bo , old_type , -1 );
734+ if (new_mem )
735+ radeon_update_memory_usage (bo , new_mem -> mem_type , 1 );
736+
735737 if (!radeon_ttm_bo_is_radeon_bo (bo ))
736738 return ;
737739
738740 rbo = container_of (bo , struct radeon_bo , tbo );
739741 radeon_bo_check_tiling (rbo , 0 , 1 );
740742 radeon_vm_bo_invalidate (rbo -> rdev , rbo );
741-
742- /* update statistics */
743- if (!new_mem )
744- return ;
745-
746- radeon_update_memory_usage (rbo , bo -> resource -> mem_type , -1 );
747- radeon_update_memory_usage (rbo , new_mem -> mem_type , 1 );
748743}
749744
750745vm_fault_t radeon_bo_fault_reserve_notify (struct ttm_buffer_object * bo )
0 commit comments