[PATCH 1/7] drm/amdgpu: add new emit_reg_wait callback

Felix Kuehling felix.kuehling at amd.com
Tue Jan 30 19:55:47 UTC 2018


On 2018-01-30 07:28 AM, Christian König wrote:
> Felix, Alex anybody brave enough to review this?
>
> Independent of the ATC work it seems like a nice to have cleanup.
Yes. You can add my R-B for the series.

Regards,
  Felix


>
> Regards,
> Christian.
>
> Am 30.01.2018 um 13:09 schrieb Christian König:
>> Allows us to wait for a register value/mask on a ring.
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu.h      | 1 +
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 2 ++
>>   2 files changed, 3 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>> index d7930f3ead33..787f79c80b6b 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>> @@ -1796,6 +1796,7 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
>>   #define amdgpu_ring_emit_cntxcntl(r, d)
>> (r)->funcs->emit_cntxcntl((r), (d))
>>   #define amdgpu_ring_emit_rreg(r, d) (r)->funcs->emit_rreg((r), (d))
>>   #define amdgpu_ring_emit_wreg(r, d, v) (r)->funcs->emit_wreg((r),
>> (d), (v))
>> +#define amdgpu_ring_emit_reg_wait(r, d, v, m)
>> (r)->funcs->emit_reg_wait((r), (d), (v), (m))
>>   #define amdgpu_ring_emit_tmz(r, b) (r)->funcs->emit_tmz((r), (b))
>>   #define amdgpu_ring_pad_ib(r, ib) ((r)->funcs->pad_ib((r), (ib)))
>>   #define amdgpu_ring_init_cond_exec(r) (r)->funcs->init_cond_exec((r))
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
>> index 70d05ec7bc07..867f53332305 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
>> @@ -150,6 +150,8 @@ struct amdgpu_ring_funcs {
>>       void (*emit_cntxcntl) (struct amdgpu_ring *ring, uint32_t flags);
>>       void (*emit_rreg)(struct amdgpu_ring *ring, uint32_t reg);
>>       void (*emit_wreg)(struct amdgpu_ring *ring, uint32_t reg,
>> uint32_t val);
>> +    void (*emit_reg_wait)(struct amdgpu_ring *ring, uint32_t reg,
>> +                  uint32_t val, uint32_t mask);
>>       void (*emit_tmz)(struct amdgpu_ring *ring, bool start);
>>       /* priority functions */
>>       void (*set_priority) (struct amdgpu_ring *ring,
>



More information about the amd-gfx mailing list