[PATCH 1/8] drm/ttm: add default implementations for ttm_tt_(un)populate

Christian König ckoenig.leichtzumerken at gmail.com
Fri Feb 23 07:39:37 UTC 2018


Am 22.02.2018 um 16:55 schrieb Michel Dänzer:
> On 2018-02-22 12:15 PM, Christian König wrote:
>> Use ttm_pool_populate/ttm_pool_unpopulate if the driver doesn't provide
>> a function.
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>>   drivers/gpu/drm/ttm/ttm_tt.c | 10 ++++++++--
>>   1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c
>> index 9fd7115a013a..65bf4eac184b 100644
>> --- a/drivers/gpu/drm/ttm/ttm_tt.c
>> +++ b/drivers/gpu/drm/ttm/ttm_tt.c
>> @@ -410,7 +410,10 @@ int ttm_tt_populate(struct ttm_tt *ttm, struct ttm_operation_ctx *ctx)
>>   	if (ttm->state != tt_unpopulated)
>>   		return 0;
>>   
>> -	ret = ttm->bdev->driver->ttm_tt_populate(ttm, ctx);
>> +	if (ttm->bdev->driver->ttm_tt_populate)
>> +		ret = ttm->bdev->driver->ttm_tt_populate(ttm, ctx);
>> +	else
>> +		ret = ttm_pool_populate(ttm, ctx);
>>   	if (!ret)
>>   		ttm_tt_add_mapping(ttm);
>>   	return ret;
>> @@ -436,5 +439,8 @@ void ttm_tt_unpopulate(struct ttm_tt *ttm)
>>   		return;
>>   
>>   	ttm_tt_clear_mapping(ttm);
>> -	ttm->bdev->driver->ttm_tt_unpopulate(ttm);
>> +	if (ttm->bdev->driver->ttm_tt_unpopulate)
>> +		ttm->bdev->driver->ttm_tt_unpopulate(ttm);
>> +	else
>> +		ttm_pool_unpopulate(ttm);
>>   }
>>
> Instead of the if/else, have you considered setting
> driver->ttm_tt_(un)populate = ttm_pool_(un)populate during
> initialization if they're NULL?

Mhm, also an interesting possibility. But shouldn't the function 
pointers be const?

Christian.

>
>
> Either way, the series is
>
> Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
>
>



More information about the dri-devel mailing list