Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-7]: src/sys/external/bsd/drm2/dist/drm/radeon Pull up following r...



details:   https://anonhg.NetBSD.org/src/rev/59de33577d28
branches:  netbsd-7
changeset: 799626:59de33577d28
user:      riz <riz%NetBSD.org@localhost>
date:      Wed Nov 04 18:17:22 2015 +0000

description:
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.

diffstat:

 sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c |  16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diffs (37 lines):

diff -r 10932435563f -r 59de33577d28 sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c
--- a/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c     Wed Nov 04 18:04:34 2015 +0000
+++ b/sys/external/bsd/drm2/dist/drm/radeon/atombios_crtc.c     Wed Nov 04 18:17:22 2015 +0000
@@ -1382,24 +1382,26 @@
 
        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:



Home | Main Index | Thread Index | Old Index