diff options
author | Ben Widawsky <ben@bwidawsk.net> | 2012-07-18 11:47:42 -0700 |
---|---|---|
committer | Ben Widawsky <ben@bwidawsk.net> | 2012-07-18 11:47:42 -0700 |
commit | 58cfeabb90a9bef742df53e2602966a2166e37b9 (patch) | |
tree | 428dc8a952d5ce07a8b81e4ff44ee82b04d4a4cf | |
parent | 4fe786953962d9603d15ea82c97ea5f6e57ba8be (diff) |
reg_read: skip older kernels
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
-rw-r--r-- | tests/drm_reg_read.c | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/tests/drm_reg_read.c b/tests/drm_reg_read.c index 360deeab..9afaef34 100644 --- a/tests/drm_reg_read.c +++ b/tests/drm_reg_read.c @@ -50,34 +50,41 @@ static void handle_bad(int ret, int lerrno, int expected, const char *desc) } } -int main(int argc, char *argv[]) +static uint64_t timer_query(int fd) { struct local_drm_i915_reg_read read; - int ret, fd; - __u64 val; + int ret; read.offset = 0x2358; - - fd = drm_open_any(); - ret = drmIoctl(fd, REG_READ_IOCTL, &read); if (ret) { - perror("positive test case failed\n"); + perror("positive test case failed: "); exit(EXIT_FAILURE); } - val = read.val; + + return read.val; +} + +int main(int argc, char *argv[]) +{ + struct local_drm_i915_reg_read read; + int ret, fd; + uint64_t val; + + fd = drm_open_any(); + ret = drmIoctl(fd, REG_READ_IOCTL, &read); - if (ret) { - perror("positive test case 2 failed\n"); + if (ret == EINVAL) + exit(77); + else if (ret) exit(EXIT_FAILURE); - } - if (val == read.val) { + val = timer_query(fd); + if (timer_query(fd) == val) { fprintf(stderr, "Timer isn't moving, probably busted\n"); exit(EXIT_FAILURE); } - /* bad reg */ read.offset = 0x12345678; ret = drmIoctl(fd, REG_READ_IOCTL, &read); |