Deleted Added
full compact
radeon_fence.c (256281) radeon_fence.c (259742)
1/*
2 * Copyright 2009 Jerome Glisse.
3 * All Rights Reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the
7 * "Software"), to deal in the Software without restriction, including
8 * without limitation the rights to use, copy, modify, merge, publish,

--- 16 unchanged lines hidden (view full) ---

25 */
26/*
27 * Authors:
28 * Jerome Glisse <glisse@freedesktop.org>
29 * Dave Airlie
30 */
31
32#include <sys/cdefs.h>
1/*
2 * Copyright 2009 Jerome Glisse.
3 * All Rights Reserved.
4 *
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the
7 * "Software"), to deal in the Software without restriction, including
8 * without limitation the rights to use, copy, modify, merge, publish,

--- 16 unchanged lines hidden (view full) ---

25 */
26/*
27 * Authors:
28 * Jerome Glisse <glisse@freedesktop.org>
29 * Dave Airlie
30 */
31
32#include <sys/cdefs.h>
33__FBSDID("$FreeBSD: stable/10/sys/dev/drm2/radeon/radeon_fence.c 254885 2013-08-25 19:37:15Z dumbbell $");
33__FBSDID("$FreeBSD: stable/10/sys/dev/drm2/radeon/radeon_fence.c 259742 2013-12-22 21:18:21Z dumbbell $");
34
35#include <dev/drm2/drmP.h>
36#include "radeon_reg.h"
37#include "radeon.h"
38#ifdef DUMBBELL_WIP
39#include "radeon_trace.h"
40#endif /* DUMBBELL_WIP */
41

--- 274 unchanged lines hidden (view full) ---

316 r = cv_timedwait_sig(&rdev->fence_queue,
317 &rdev->fence_queue_mtx,
318 timeout);
319 } else {
320 r = cv_timedwait(&rdev->fence_queue,
321 &rdev->fence_queue_mtx,
322 timeout);
323 }
34
35#include <dev/drm2/drmP.h>
36#include "radeon_reg.h"
37#include "radeon.h"
38#ifdef DUMBBELL_WIP
39#include "radeon_trace.h"
40#endif /* DUMBBELL_WIP */
41

--- 274 unchanged lines hidden (view full) ---

316 r = cv_timedwait_sig(&rdev->fence_queue,
317 &rdev->fence_queue_mtx,
318 timeout);
319 } else {
320 r = cv_timedwait(&rdev->fence_queue,
321 &rdev->fence_queue_mtx,
322 timeout);
323 }
324 if (r == EINTR)
325 r = ERESTARTSYS;
324 if (r != 0) {
325 if (r == EWOULDBLOCK) {
326 signaled =
327 radeon_fence_seq_signaled(
328 rdev, target_seq, ring);
329 }
330 break;
331 }
332 }
333 if (fence_queue_locked) {
334 mtx_unlock(&rdev->fence_queue_mtx);
335 }
336 radeon_irq_kms_sw_irq_put(rdev, ring);
326 if (r != 0) {
327 if (r == EWOULDBLOCK) {
328 signaled =
329 radeon_fence_seq_signaled(
330 rdev, target_seq, ring);
331 }
332 break;
333 }
334 }
335 if (fence_queue_locked) {
336 mtx_unlock(&rdev->fence_queue_mtx);
337 }
338 radeon_irq_kms_sw_irq_put(rdev, ring);
337 if (unlikely(r == EINTR || r == ERESTART)) {
339 if (unlikely(r == ERESTARTSYS)) {
338 return -r;
339 }
340 CTR2(KTR_DRM, "radeon fence: wait end (ring=%d, seq=%d)",
341 ring, seq);
342
343 if (unlikely(!signaled)) {
344#ifndef __FreeBSD__
345 /* we were interrupted for some reason and fence

--- 163 unchanged lines hidden (view full) ---

509 r = cv_timedwait_sig(&rdev->fence_queue,
510 &rdev->fence_queue_mtx,
511 timeout);
512 } else {
513 r = cv_timedwait(&rdev->fence_queue,
514 &rdev->fence_queue_mtx,
515 timeout);
516 }
340 return -r;
341 }
342 CTR2(KTR_DRM, "radeon fence: wait end (ring=%d, seq=%d)",
343 ring, seq);
344
345 if (unlikely(!signaled)) {
346#ifndef __FreeBSD__
347 /* we were interrupted for some reason and fence

--- 163 unchanged lines hidden (view full) ---

511 r = cv_timedwait_sig(&rdev->fence_queue,
512 &rdev->fence_queue_mtx,
513 timeout);
514 } else {
515 r = cv_timedwait(&rdev->fence_queue,
516 &rdev->fence_queue_mtx,
517 timeout);
518 }
519 if (r == EINTR)
520 r = ERESTARTSYS;
517 if (r != 0) {
518 if (r == EWOULDBLOCK) {
519 signaled =
520 radeon_fence_any_seq_signaled(
521 rdev, target_seq);
522 }
523 break;
524 }
525 }
526 if (fence_queue_locked) {
527 mtx_unlock(&rdev->fence_queue_mtx);
528 }
529 for (i = 0; i < RADEON_NUM_RINGS; ++i) {
530 if (target_seq[i]) {
531 radeon_irq_kms_sw_irq_put(rdev, i);
532 }
533 }
521 if (r != 0) {
522 if (r == EWOULDBLOCK) {
523 signaled =
524 radeon_fence_any_seq_signaled(
525 rdev, target_seq);
526 }
527 break;
528 }
529 }
530 if (fence_queue_locked) {
531 mtx_unlock(&rdev->fence_queue_mtx);
532 }
533 for (i = 0; i < RADEON_NUM_RINGS; ++i) {
534 if (target_seq[i]) {
535 radeon_irq_kms_sw_irq_put(rdev, i);
536 }
537 }
534 if (unlikely(r == EINTR || r == ERESTART)) {
538 if (unlikely(r == ERESTARTSYS)) {
535 return -r;
536 }
537 CTR2(KTR_DRM, "radeon fence: wait end (ring=%d, target_seq=%d)",
538 ring, target_seq[ring]);
539
540 if (unlikely(!signaled)) {
541#ifndef __FreeBSD__
542 /* we were interrupted for some reason and fence

--- 441 unchanged lines hidden ---
539 return -r;
540 }
541 CTR2(KTR_DRM, "radeon fence: wait end (ring=%d, target_seq=%d)",
542 ring, target_seq[ring]);
543
544 if (unlikely(!signaled)) {
545#ifndef __FreeBSD__
546 /* we were interrupted for some reason and fence

--- 441 unchanged lines hidden ---