Subversion Repositories Kolibri OS

Rev

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

Rev 5271 Rev 5346
Line 227... Line 227...
227
	up_read(&rdev->exclusive_lock);
227
	up_read(&rdev->exclusive_lock);
228
	r = radeon_gem_handle_lockup(robj->rdev, r);
228
	r = radeon_gem_handle_lockup(robj->rdev, r);
229
	return r;
229
	return r;
230
}
230
}
Line 231... Line 231...
231
 
231
 
232
static int radeon_mode_mmap(struct drm_file *filp,
232
int radeon_mode_dumb_mmap(struct drm_file *filp,
233
			  struct drm_device *dev,
-
 
234
			    uint32_t handle, bool dumb,
233
			  struct drm_device *dev,
235
			    uint64_t *offset_p)
234
			  uint32_t handle, uint64_t *offset_p)
236
{
235
{
237
	struct drm_gem_object *gobj;
236
	struct drm_gem_object *gobj;
Line 238... Line 237...
238
	struct radeon_bo *robj;
237
	struct radeon_bo *robj;
239
 
238
 
240
	gobj = drm_gem_object_lookup(dev, filp, handle);
239
	gobj = drm_gem_object_lookup(dev, filp, handle);
241
	if (gobj == NULL) {
240
	if (gobj == NULL) {
242
		return -ENOENT;
-
 
243
	}
-
 
244
 
-
 
245
	/*
-
 
246
	 * We don't allow dumb mmaps on objects created using another
-
 
247
	 * interface.
-
 
248
	 */
-
 
249
	WARN_ONCE(dumb && !(gobj->dumb || gobj->import_attach),
-
 
250
		"Illegal dumb map of GPU buffer.\n");
241
		return -ENOENT;
251
 
242
	}
252
	robj = gem_to_radeon_bo(gobj);
243
	robj = gem_to_radeon_bo(gobj);
253
	*offset_p = radeon_bo_mmap_offset(robj);
244
	*offset_p = radeon_bo_mmap_offset(robj);
254
	drm_gem_object_unreference_unlocked(gobj);
245
	drm_gem_object_unreference_unlocked(gobj);
Line 258... Line 249...
258
int radeon_gem_mmap_ioctl(struct drm_device *dev, void *data,
249
int radeon_gem_mmap_ioctl(struct drm_device *dev, void *data,
259
			  struct drm_file *filp)
250
			  struct drm_file *filp)
260
{
251
{
261
	struct drm_radeon_gem_mmap *args = data;
252
	struct drm_radeon_gem_mmap *args = data;
Line 262... Line 253...
262
 
253
 
263
	return radeon_mode_mmap(filp, dev, args->handle, false,
-
 
264
				&args->addr_ptr);
254
	return radeon_mode_dumb_mmap(filp, dev, args->handle, &args->addr_ptr);
Line 265... Line 255...
265
}
255
}
266
 
256
 
267
int radeon_gem_busy_ioctl(struct drm_device *dev, void *data,
257
int radeon_gem_busy_ioctl(struct drm_device *dev, void *data,