aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/ttm
diff options
context:
space:
mode:
authorMaarten Lankhorst <maarten.lankhorst@canonical.com>2013-08-15 10:03:17 -0400
committerDave Airlie <airlied@redhat.com>2013-08-18 19:36:12 -0400
commit5c692948d8c9026f9477ff416465a81a3d9e06a8 (patch)
tree92f16eaced54f4b65445071272eac6dd4417b7f7 /drivers/gpu/drm/ttm
parente552df37ad589f75af969d536ee9c70c94cacccf (diff)
drm/ttm: kill unused functions
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/ttm')
-rw-r--r--drivers/gpu/drm/ttm/ttm_bo_vm.c154
1 files changed, 0 insertions, 154 deletions
diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c
index 8c0e2c020215..1006c15445e9 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_vm.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c
@@ -290,157 +290,3 @@ int ttm_fbdev_mmap(struct vm_area_struct *vma, struct ttm_buffer_object *bo)
290 return 0; 290 return 0;
291} 291}
292EXPORT_SYMBOL(ttm_fbdev_mmap); 292EXPORT_SYMBOL(ttm_fbdev_mmap);
293
294
295ssize_t ttm_bo_io(struct ttm_bo_device *bdev, struct file *filp,
296 const char __user *wbuf, char __user *rbuf, size_t count,
297 loff_t *f_pos, bool write)
298{
299 struct ttm_buffer_object *bo;
300 struct ttm_bo_driver *driver;
301 struct ttm_bo_kmap_obj map;
302 unsigned long dev_offset = (*f_pos >> PAGE_SHIFT);
303 unsigned long kmap_offset;
304 unsigned long kmap_end;
305 unsigned long kmap_num;
306 size_t io_size;
307 unsigned int page_offset;
308 char *virtual;
309 int ret;
310 bool no_wait = false;
311 bool dummy;
312
313 bo = ttm_bo_vm_lookup(bdev, dev_offset, 1);
314 if (unlikely(bo == NULL))
315 return -EFAULT;
316
317 driver = bo->bdev->driver;
318 if (unlikely(!driver->verify_access)) {
319 ret = -EPERM;
320 goto out_unref;
321 }
322
323 ret = driver->verify_access(bo, filp);
324 if (unlikely(ret != 0))
325 goto out_unref;
326
327 kmap_offset = dev_offset - drm_vma_node_start(&bo->vma_node);
328 if (unlikely(kmap_offset >= bo->num_pages)) {
329 ret = -EFBIG;
330 goto out_unref;
331 }
332
333 page_offset = *f_pos & ~PAGE_MASK;
334 io_size = bo->num_pages - kmap_offset;
335 io_size = (io_size << PAGE_SHIFT) - page_offset;
336 if (count < io_size)
337 io_size = count;
338
339 kmap_end = (*f_pos + count - 1) >> PAGE_SHIFT;
340 kmap_num = kmap_end - kmap_offset + 1;
341
342 ret = ttm_bo_reserve(bo, true, no_wait, false, 0);
343
344 switch (ret) {
345 case 0:
346 break;
347 case -EBUSY:
348 ret = -EAGAIN;
349 goto out_unref;
350 default:
351 goto out_unref;
352 }
353
354 ret = ttm_bo_kmap(bo, kmap_offset, kmap_num, &map);
355 if (unlikely(ret != 0)) {
356 ttm_bo_unreserve(bo);
357 goto out_unref;
358 }
359
360 virtual = ttm_kmap_obj_virtual(&map, &dummy);
361 virtual += page_offset;
362
363 if (write)
364 ret = copy_from_user(virtual, wbuf, io_size);
365 else
366 ret = copy_to_user(rbuf, virtual, io_size);
367
368 ttm_bo_kunmap(&map);
369 ttm_bo_unreserve(bo);
370 ttm_bo_unref(&bo);
371
372 if (unlikely(ret != 0))
373 return -EFBIG;
374
375 *f_pos += io_size;
376
377 return io_size;
378out_unref:
379 ttm_bo_unref(&bo);
380 return ret;
381}
382
383ssize_t ttm_bo_fbdev_io(struct ttm_buffer_object *bo, const char __user *wbuf,
384 char __user *rbuf, size_t count, loff_t *f_pos,
385 bool write)
386{
387 struct ttm_bo_kmap_obj map;
388 unsigned long kmap_offset;
389 unsigned long kmap_end;
390 unsigned long kmap_num;
391 size_t io_size;
392 unsigned int page_offset;
393 char *virtual;
394 int ret;
395 bool no_wait = false;
396 bool dummy;
397
398 kmap_offset = (*f_pos >> PAGE_SHIFT);
399 if (unlikely(kmap_offset >= bo->num_pages))
400 return -EFBIG;
401
402 page_offset = *f_pos & ~PAGE_MASK;
403 io_size = bo->num_pages - kmap_offset;
404 io_size = (io_size << PAGE_SHIFT) - page_offset;
405 if (count < io_size)
406 io_size = count;
407
408 kmap_end = (*f_pos + count - 1) >> PAGE_SHIFT;
409 kmap_num = kmap_end - kmap_offset + 1;
410
411 ret = ttm_bo_reserve(bo, true, no_wait, false, 0);
412
413 switch (ret) {
414 case 0:
415 break;
416 case -EBUSY:
417 return -EAGAIN;
418 default:
419 return ret;
420 }
421
422 ret = ttm_bo_kmap(bo, kmap_offset, kmap_num, &map);
423 if (unlikely(ret != 0)) {
424 ttm_bo_unreserve(bo);
425 return ret;
426 }
427
428 virtual = ttm_kmap_obj_virtual(&map, &dummy);
429 virtual += page_offset;
430
431 if (write)
432 ret = copy_from_user(virtual, wbuf, io_size);
433 else
434 ret = copy_to_user(rbuf, virtual, io_size);
435
436 ttm_bo_kunmap(&map);
437 ttm_bo_unreserve(bo);
438 ttm_bo_unref(&bo);
439
440 if (unlikely(ret != 0))
441 return ret;
442
443 *f_pos += io_size;
444
445 return io_size;
446}