mirror of https://gitee.com/openkylin/linux.git
drm/nouveau/timer: re-introduce nvkm_wait_xsec macros
Reintroduce macros allowing us to test a register against a certain mask, since this is the most common usage pattern for the more generic nvkm_xsec macros and makes the code more concise and readable. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
579b7c5821
commit
542f60dc84
|
@ -59,6 +59,16 @@ void nvkm_timer_alarm_cancel(struct nvkm_timer *, struct nvkm_alarm *);
|
|||
#define nvkm_usec(d,u,cond...) nvkm_nsec((d), (u) * 1000, ##cond)
|
||||
#define nvkm_msec(d,m,cond...) nvkm_usec((d), (m) * 1000, ##cond)
|
||||
|
||||
#define nvkm_wait_nsec(d,n,addr,mask,data) \
|
||||
nvkm_nsec(d, n, \
|
||||
if ((nvkm_rd32(d, (addr)) & (mask)) == (data)) \
|
||||
break; \
|
||||
)
|
||||
#define nvkm_wait_usec(d,u,addr,mask,data) \
|
||||
nvkm_wait_nsec((d), (u) * 1000, (addr), (mask), (data))
|
||||
#define nvkm_wait_msec(d,m,addr,mask,data) \
|
||||
nvkm_wait_usec((d), (m) * 1000, (addr), (mask), (data))
|
||||
|
||||
int nv04_timer_new(struct nvkm_device *, int, struct nvkm_timer **);
|
||||
int nv40_timer_new(struct nvkm_device *, int, struct nvkm_timer **);
|
||||
int nv41_timer_new(struct nvkm_device *, int, struct nvkm_timer **);
|
||||
|
|
Loading…
Reference in New Issue