[PATCH 2/8] drm/radeon: don't use ttm bo->offset

Nirmoy nirmodas at amd.com
Fri Feb 21 13:27:43 UTC 2020


On 2/21/20 2:19 AM, Luben Tuikov wrote:
> On 2020-02-19 08:53, Nirmoy Das wrote:
>> Calculate GPU offset in radeon_bo_gpu_offset without depending on
>> bo->offset
>>
>> Signed-off-by: Nirmoy Das <nirmoy.das at amd.com>
>> Reviewed-and-tested-by: Christian König <christian.koenig at amd.com>
>> ---
>>   drivers/gpu/drm/radeon/radeon.h        |  1 +
>>   drivers/gpu/drm/radeon/radeon_object.h | 16 +++++++++++++++-
>>   drivers/gpu/drm/radeon/radeon_ttm.c    |  4 +---
>>   3 files changed, 17 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
>> index 30e32adc1fc6..b7c3fb2bfb54 100644
>> --- a/drivers/gpu/drm/radeon/radeon.h
>> +++ b/drivers/gpu/drm/radeon/radeon.h
>> @@ -2828,6 +2828,7 @@ extern void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size
>>   extern void radeon_program_register_sequence(struct radeon_device *rdev,
>>   					     const u32 *registers,
>>   					     const u32 array_size);
>> +struct radeon_device *radeon_get_rdev(struct ttm_bo_device *bdev);
>>   
>>   /*
>>    * vm
>> diff --git a/drivers/gpu/drm/radeon/radeon_object.h b/drivers/gpu/drm/radeon/radeon_object.h
>> index d23f2ed4126e..4d37571c7ff5 100644
>> --- a/drivers/gpu/drm/radeon/radeon_object.h
>> +++ b/drivers/gpu/drm/radeon/radeon_object.h
>> @@ -90,7 +90,21 @@ static inline void radeon_bo_unreserve(struct radeon_bo *bo)
>>    */
>>   static inline u64 radeon_bo_gpu_offset(struct radeon_bo *bo)
>>   {
>> -	return bo->tbo.offset;
>> +	struct radeon_device *rdev;
>> +	u64 start = 0;
>> +
>> +	rdev = radeon_get_rdev(bo->tbo.bdev);
>> +
>> +	switch(bo->tbo.mem.mem_type) {
> LKCS wants a space after a keyword, "switch (" .
Thanks Luben, will fix that for both radeon and amdgpu.
>
>> +	case TTM_PL_TT:
>> +		start = rdev->mc.gtt_start;
>> +		break;
>> +	case TTM_PL_VRAM:
>> +		start = rdev->mc.vram_start;
>> +		break;
>> +	}
> Could this lookup have been parameterized by "mem_type"
> to be looked up by an index (possibly "mem_type") to result
> in something new like (pseudo-code):
>       start = rdev->mc.mem_start_table[bo->tbo.mem.mem_type];
> Where "mem_start_table" is a new table holding memory starts
> of particular memories.
> Then you don't need the switch-case.

That would look good but I am afraid, amdgpu_ttm_domain_start() and 
radeon_bo_gpu_offset() will be the only consumer of /mem_start_table./

I think it is not worth to do a intrusive change for this patch series.

Regards,

Nirmoy


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20200221/c5eaafdd/attachment.htm>


More information about the dri-devel mailing list