Module Name: src Committed By: riz Date: Wed Nov 4 18:17:22 UTC 2015
Modified Files: src/sys/external/bsd/drm2/dist/drm/radeon [netbsd-7]: atombios_crtc.c Log Message: Pull up following revision(s) (requested by riastradh in ticket #970): sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c: revision 1.4 Apply preceeding change: Don't reserve if atomic -- caller must have pre-pinned the buffer. to avivo_crtc_do_set_base() as well. To generate a diff of this commit: cvs rdiff -u -r1.2.4.1 -r1.2.4.2 \ 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.4.1 src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.2.4.2 --- src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c:1.2.4.1 Thu Apr 23 07:31:17 2015 +++ src/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c Wed Nov 4 18:17:22 2015 @@ -1382,24 +1382,26 @@ static int avivo_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, assume fb object is pinned & idle & fenced and * just update base pointers */ - 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: