[PATCH] drm/radeon: save/restore the PD addr on suspend/resume

Christian König deathsimple at vodafone.de
Thu Aug 28 01:27:28 PDT 2014


Am 28.08.2014 um 05:43 schrieb Michel Dänzer:
> On 26.08.2014 21:45, Christian König wrote:
>> From: Christian König <christian.koenig at amd.com>
>>
>> This fixes a problem with GPU resets and TLB flushes on SI/CIK.
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>
> [...]
>
>> diff --git a/drivers/gpu/drm/radeon/radeon.h 
>> b/drivers/gpu/drm/radeon/radeon.h
>> index f2dba50..8810df3 100644
>> --- a/drivers/gpu/drm/radeon/radeon.h
>> +++ b/drivers/gpu/drm/radeon/radeon.h
>> @@ -918,6 +918,8 @@ struct radeon_vm_manager {
>>       u64                vram_base_offset;
>>       /* is vm enabled? */
>>       bool                enabled;
>> +    /* for hw to save the PD addr on suspend/resume */
>> +    uint32_t            saved_table_addr[RADEON_NUM_VM];
>>   };
>>
>>   /*
>> diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
>> index 011779b..28b5f06 100644
>> --- a/drivers/gpu/drm/radeon/si.c
>> +++ b/drivers/gpu/drm/radeon/si.c
>> @@ -4291,10 +4291,10 @@ static int si_pcie_gart_enable(struct 
>> radeon_device *rdev)
>>       for (i = 1; i < 16; i++) {
>>           if (i < 8)
>>               WREG32(VM_CONTEXT0_PAGE_TABLE_BASE_ADDR + (i << 2),
>> -                   rdev->gart.table_addr >> 12);
>> +                   rdev->vm_manager.saved_table_addr[i]);
>>           else
>>               WREG32(VM_CONTEXT8_PAGE_TABLE_BASE_ADDR + ((i - 8) << 2),
>> -                   rdev->gart.table_addr >> 12);
>> +                   rdev->vm_manager.saved_table_addr[i]);
>>       }
>>
>>       /* enable context1-15 */
>
> rdev->vm_manager.saved_table_addr[] doesn't get initialized before 
> *_gart_enable() is first called from *_startup(), does it? I guess 
> that's fine, but the comments in *_gart_enable() should be adapted to 
> this change.

It gets zero initialized on allocation. But your right I only updated 
the code comment on CIK, not on SI and NI.

Going to fix this in a follow up patch,
Christian.


More information about the dri-devel mailing list