Module Name: src
Committed By: riastradh
Date: Wed Apr 8 01:47:20 UTC 2015
Modified Files:
src/sys/external/bsd/drm2/dist/drm/radeon: atombios_crtc.c
Log Message:
Don't reserve if atomic -- caller must have pre-pinned the buffer.
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 \
src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c
diff -u src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.3
--- src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.2 Wed Jul 16 20:59:57 2014
+++ src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c Wed Apr 8 01:47:20 2015
@@ -1124,23 +1124,24 @@ static int dce4_crtc_do_set_base(struct
*/
obj = radeon_fb->obj;
rbo = gem_to_radeon_bo(obj);
- r = radeon_bo_reserve(rbo, false);
- if (unlikely(r != 0))
- return r;
- if (atomic)
+ if (atomic) {
+ BUG_ON(rbo->pin_count == 0);
fb_location = radeon_bo_gpu_offset(rbo);
- else {
+ tiling_flags = 0;
+ } else {
+ r = radeon_bo_reserve(rbo, false);
+ if (unlikely(r != 0))
+ return r;
r = radeon_bo_pin(rbo, RADEON_GEM_DOMAIN_VRAM, &fb_location);
if (unlikely(r != 0)) {
radeon_bo_unreserve(rbo);
return -EINVAL;
}
+ radeon_bo_get_tiling_flags(rbo, &tiling_flags, NULL);
+ radeon_bo_unreserve(rbo);
}
- radeon_bo_get_tiling_flags(rbo, &tiling_flags, NULL);
- radeon_bo_unreserve(rbo);
-
switch (target_fb->bits_per_pixel) {
case 8:
fb_format = (EVERGREEN_GRPH_DEPTH(EVERGREEN_GRPH_DEPTH_8BPP) |