diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2020-07-22 05:02:33 +0300 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2020-07-22 05:02:33 +0300 |
commit | 9b031c86506cef9acae45e61339fcf9deaabb793 (patch) | |
tree | 9095d638ba9384f86df8d61dcf1f129c082481e1 /drivers/gpu/drm/nouveau/include/nvif/timer.h | |
parent | 53aab92dec447f93489e07924e310d605a389dea (diff) | |
parent | 04d5ce620f794f1df69b5f1b9ad62910fea547f1 (diff) | |
download | linux-9b031c86506cef9acae45e61339fcf9deaabb793.tar.xz |
Merge branch 'elan-i2c' into next
Bring in update to Elan touchpad driver to support newer touchpads with
higher resolution.
Diffstat (limited to 'drivers/gpu/drm/nouveau/include/nvif/timer.h')
-rw-r--r-- | drivers/gpu/drm/nouveau/include/nvif/timer.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/include/nvif/timer.h b/drivers/gpu/drm/nouveau/include/nvif/timer.h new file mode 100644 index 000000000000..57587a985c4b --- /dev/null +++ b/drivers/gpu/drm/nouveau/include/nvif/timer.h @@ -0,0 +1,35 @@ +#ifndef __NVIF_TIMER_H__ +#define __NVIF_TIMER_H__ +#include <nvif/os.h> + +struct nvif_timer_wait { + struct nvif_device *device; + u64 limit; + u64 time0; + u64 time1; + int reads; +}; + +void nvif_timer_wait_init(struct nvif_device *, u64 nsec, + struct nvif_timer_wait *); +s64 nvif_timer_wait_test(struct nvif_timer_wait *); + +/* Delay based on GPU time (ie. PTIMER). + * + * Will return -ETIMEDOUT unless the loop was terminated with 'break', + * where it will return the number of nanoseconds taken instead. + */ +#define nvif_nsec(d,n,cond...) ({ \ + struct nvif_timer_wait _wait; \ + s64 _taken = 0; \ + \ + nvif_timer_wait_init((d), (n), &_wait); \ + do { \ + cond \ + } while ((_taken = nvif_timer_wait_test(&_wait)) >= 0); \ + \ + _taken; \ +}) +#define nvif_usec(d,u,cond...) nvif_nsec((d), (u) * 1000, ##cond) +#define nvif_msec(d,m,cond...) nvif_usec((d), (m) * 1000, ##cond) +#endif |