| .. | .. |
|---|
| 823 | 823 | if (ret == 0) { |
|---|
| 824 | 824 | ret = nouveau_fence_new(chan, false, &fence); |
|---|
| 825 | 825 | if (ret == 0) { |
|---|
| 826 | + /* TODO: figure out a better solution here |
|---|
| 827 | + * |
|---|
| 828 | + * wait on the fence here explicitly as going through |
|---|
| 829 | + * ttm_bo_move_accel_cleanup somehow doesn't seem to do it. |
|---|
| 830 | + * |
|---|
| 831 | + * Without this the operation can timeout and we'll fallback to a |
|---|
| 832 | + * software copy, which might take several minutes to finish. |
|---|
| 833 | + */ |
|---|
| 834 | + nouveau_fence_wait(fence, false, false); |
|---|
| 826 | 835 | ret = ttm_bo_move_accel_cleanup(bo, |
|---|
| 827 | 836 | &fence->base, |
|---|
| 828 | 837 | evict, false, |
|---|