diff options
author | Maarten Lankhorst <maarten.lankhorst@canonical.com> | 2013-08-15 10:03:17 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-08-18 19:36:12 -0400 |
commit | 5c692948d8c9026f9477ff416465a81a3d9e06a8 (patch) | |
tree | 92f16eaced54f4b65445071272eac6dd4417b7f7 /drivers/gpu/drm/ttm | |
parent | e552df37ad589f75af969d536ee9c70c94cacccf (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.c | 154 |
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 | } |
292 | EXPORT_SYMBOL(ttm_fbdev_mmap); | 292 | EXPORT_SYMBOL(ttm_fbdev_mmap); |
293 | |||
294 | |||
295 | ssize_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; | ||
378 | out_unref: | ||
379 | ttm_bo_unref(&bo); | ||
380 | return ret; | ||
381 | } | ||
382 | |||
383 | ssize_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 | } | ||