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) |