Subversion Repositories Kolibri OS

Rev

Rev 2342 | Rev 2351 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2342 Rev 2344
Line 362... Line 362...
362
	pc->obj = obj;
362
	pc->obj = obj;
363
	ring->private = pc;
363
	ring->private = pc;
364
	return 0;
364
	return 0;
Line 365... Line 365...
365
 
365
 
366
err_unpin:
366
err_unpin:
367
//   i915_gem_object_unpin(obj);
367
	i915_gem_object_unpin(obj);
368
err_unref:
368
err_unref:
369
//   drm_gem_object_unreference(&obj->base);
369
	drm_gem_object_unreference(&obj->base);
370
err:
370
err:
371
	kfree(pc);
371
	kfree(pc);
372
	return ret;
372
	return ret;
Line 381... Line 381...
381
	if (!ring->private)
381
	if (!ring->private)
382
		return;
382
		return;
Line 383... Line 383...
383
 
383
 
384
	obj = pc->obj;
384
	obj = pc->obj;
385
//	kunmap(obj->pages[0]);
385
//	kunmap(obj->pages[0]);
386
//	i915_gem_object_unpin(obj);
386
	i915_gem_object_unpin(obj);
Line 387... Line 387...
387
//	drm_gem_object_unreference(&obj->base);
387
	drm_gem_object_unreference(&obj->base);
388
 
388
 
389
	kfree(pc);
389
	kfree(pc);
Line 946... Line 946...
946
	obj = ring->status_page.obj;
946
	obj = ring->status_page.obj;
947
	if (obj == NULL)
947
	if (obj == NULL)
948
		return;
948
		return;
Line 949... Line 949...
949
 
949
 
950
	kunmap(obj->pages[0]);
950
	kunmap(obj->pages[0]);
951
//   i915_gem_object_unpin(obj);
951
    i915_gem_object_unpin(obj);
952
//   drm_gem_object_unreference(&obj->base);
952
	drm_gem_object_unreference(&obj->base);
Line 953... Line 953...
953
	ring->status_page.obj = NULL;
953
	ring->status_page.obj = NULL;
954
 
954
 
Line 990... Line 990...
990
			ring->name, ring->status_page.gfx_addr);
990
			ring->name, ring->status_page.gfx_addr);
Line 991... Line 991...
991
 
991
 
Line 992... Line 992...
992
	return 0;
992
	return 0;
993
 
993
 
994
err_unpin:
994
err_unpin:
995
 //  i915_gem_object_unpin(obj);
995
	i915_gem_object_unpin(obj);
996
err_unref:
996
err_unref:
997
 //  drm_gem_object_unreference(&obj->base);
997
	drm_gem_object_unreference(&obj->base);
998
err:
998
err:
Line 999... Line 999...
999
	return ret;
999
	return ret;
Line 1063... Line 1063...
1063
		ring->effective_size -= 128;
1063
		ring->effective_size -= 128;
Line 1064... Line 1064...
1064
 
1064
 
Line 1065... Line 1065...
1065
	return 0;
1065
	return 0;
1066
 
-
 
1067
err_unmap:
1066
 
1068
//   drm_core_ioremapfree(&ring->map, dev);
1067
err_unmap:
1069
    FreeKernelSpace(ring->virtual_start);
1068
    FreeKernelSpace(ring->virtual_start);
1070
err_unpin:
1069
err_unpin:
1071
//   i915_gem_object_unpin(obj);
1070
	i915_gem_object_unpin(obj);
1072
err_unref:
1071
err_unref:
1073
//   drm_gem_object_unreference(&obj->base);
1072
	drm_gem_object_unreference(&obj->base);
1074
	ring->obj = NULL;
1073
	ring->obj = NULL;
1075
err_hws:
1074
err_hws:
1076
//   cleanup_status_page(ring);
1075
//   cleanup_status_page(ring);
Line 1094... Line 1093...
1094
 
1093
 
Line 1095... Line 1094...
1095
	I915_WRITE_CTL(ring, 0);
1094
	I915_WRITE_CTL(ring, 0);
Line 1096... Line 1095...
1096
 
1095
 
1097
//   drm_core_ioremapfree(&ring->map, ring->dev);
1096
//   drm_core_ioremapfree(&ring->map, ring->dev);
1098
 
1097
 
Line 1099... Line 1098...
1099
//   i915_gem_object_unpin(ring->obj);
1098
    i915_gem_object_unpin(ring->obj);
1100
//   drm_gem_object_unreference(&ring->obj->base);
1099
	drm_gem_object_unreference(&ring->obj->base);
Line 1154... Line 1153...
1154
            LEAVE();
1153
            LEAVE();
1155
			return 0;
1154
			return 0;
1156
        };
1155
        };
1157
	}
1156
	}
Line 1158... Line -...
1158
 
-
 
-
 
1157
 
1159
//   trace_i915_ring_wait_begin(ring);
1158
 
1160
	end = jiffies + 3 * HZ;
1159
	end = jiffies + 3 * HZ;
1161
	do {
1160
	do {
1162
		ring->head = I915_READ_HEAD(ring);
1161
		ring->head = I915_READ_HEAD(ring);
1163
		ring->space = ring_space(ring);
1162
		ring->space = ring_space(ring);
Line 1172... Line 1171...
1172
        {
1171
        {
1173
            LEAVE();
1172
            LEAVE();
1174
			return -EAGAIN;
1173
			return -EAGAIN;
1175
        };
1174
        };
1176
	} while (!time_after(jiffies, end));
1175
	} while (!time_after(jiffies, end));
1177
//   trace_i915_ring_wait_end(ring);
-
 
1178
    LEAVE();
1176
    LEAVE();
Line 1179... Line 1177...
1179
 
1177
 
1180
	return -EBUSY;
1178
	return -EBUSY;
Line 1409... Line 1407...
1409
		if (obj == NULL)
1407
		if (obj == NULL)
1410
			return -ENOMEM;
1408
			return -ENOMEM;
Line 1411... Line 1409...
1411
 
1409
 
1412
		ret = i915_gem_object_pin(obj, 4096, true);
1410
		ret = i915_gem_object_pin(obj, 4096, true);
1413
		if (ret) {
1411
		if (ret) {
1414
//           drm_gem_object_unreference(&obj->base);
1412
			drm_gem_object_unreference(&obj->base);
1415
			return ret;
1413
			return ret;
Line 1416... Line 1414...
1416
		}
1414
		}
-
 
1415
 
-
 
1416
        ptr = MapIoMem(obj->pages[0], 4096, PG_SW);
1417
 
1417
        obj->mapped = ptr;
1418
        ptr = ioremap(obj->pages[0], 4096);
1418
 
1419
		*ptr++ = MI_BATCH_BUFFER_END;
-
 
Line 1420... Line 1419...
1420
		*ptr++ = MI_NOOP;
1419
		*ptr++ = MI_BATCH_BUFFER_END;
1421
//        iounmap(obj->pages[0]);
1420
		*ptr++ = MI_NOOP;
1422
 
1421
 
1423
		ret = i915_gem_object_set_to_gtt_domain(obj, false);
1422
		ret = i915_gem_object_set_to_gtt_domain(obj, false);
-
 
1423
		if (ret) {
-
 
1424
           i915_gem_object_unpin(obj);
1424
		if (ret) {
1425
			drm_gem_object_unreference(&obj->base);
1425
//           i915_gem_object_unpin(obj);
1426
        	FreeKernelSpace(ptr);
-
 
1427
        	obj->mapped = NULL;
-
 
1428
			return ret;
Line 1426... Line 1429...
1426
//           drm_gem_object_unreference(&obj->base);
1429
		}
1427
			return ret;
1430
        FreeKernelSpace(ptr);
Line 1428... Line 1431...
1428
		}
1431
        obj->mapped = NULL;