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, >