diff options
Diffstat (limited to 'drivers/char/drm/i915_dma.c')
-rw-r--r-- | drivers/char/drm/i915_dma.c | 60 |
1 files changed, 24 insertions, 36 deletions
diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c index b5903f9f1423..acf9e52a9507 100644 --- a/drivers/char/drm/i915_dma.c +++ b/drivers/char/drm/i915_dma.c | |||
@@ -32,23 +32,6 @@ | |||
32 | #include "i915_drm.h" | 32 | #include "i915_drm.h" |
33 | #include "i915_drv.h" | 33 | #include "i915_drv.h" |
34 | 34 | ||
35 | drm_ioctl_desc_t i915_ioctls[] = { | ||
36 | [DRM_IOCTL_NR(DRM_I915_INIT)] = {i915_dma_init, 1, 1}, | ||
37 | [DRM_IOCTL_NR(DRM_I915_FLUSH)] = {i915_flush_ioctl, 1, 0}, | ||
38 | [DRM_IOCTL_NR(DRM_I915_FLIP)] = {i915_flip_bufs, 1, 0}, | ||
39 | [DRM_IOCTL_NR(DRM_I915_BATCHBUFFER)] = {i915_batchbuffer, 1, 0}, | ||
40 | [DRM_IOCTL_NR(DRM_I915_IRQ_EMIT)] = {i915_irq_emit, 1, 0}, | ||
41 | [DRM_IOCTL_NR(DRM_I915_IRQ_WAIT)] = {i915_irq_wait, 1, 0}, | ||
42 | [DRM_IOCTL_NR(DRM_I915_GETPARAM)] = {i915_getparam, 1, 0}, | ||
43 | [DRM_IOCTL_NR(DRM_I915_SETPARAM)] = {i915_setparam, 1, 1}, | ||
44 | [DRM_IOCTL_NR(DRM_I915_ALLOC)] = {i915_mem_alloc, 1, 0}, | ||
45 | [DRM_IOCTL_NR(DRM_I915_FREE)] = {i915_mem_free, 1, 0}, | ||
46 | [DRM_IOCTL_NR(DRM_I915_INIT_HEAP)] = {i915_mem_init_heap, 1, 1}, | ||
47 | [DRM_IOCTL_NR(DRM_I915_CMDBUFFER)] = {i915_cmdbuffer, 1, 0} | ||
48 | }; | ||
49 | |||
50 | int i915_max_ioctl = DRM_ARRAY_SIZE(i915_ioctls); | ||
51 | |||
52 | /* Really want an OS-independent resettable timer. Would like to have | 35 | /* Really want an OS-independent resettable timer. Would like to have |
53 | * this loop run for (eg) 3 sec, but have the timer reset every time | 36 | * this loop run for (eg) 3 sec, but have the timer reset every time |
54 | * the head pointer changes, so that EBUSY only happens if the ring | 37 | * the head pointer changes, so that EBUSY only happens if the ring |
@@ -95,7 +78,7 @@ void i915_kernel_lost_context(drm_device_t * dev) | |||
95 | dev_priv->sarea_priv->perf_boxes |= I915_BOX_RING_EMPTY; | 78 | dev_priv->sarea_priv->perf_boxes |= I915_BOX_RING_EMPTY; |
96 | } | 79 | } |
97 | 80 | ||
98 | int i915_dma_cleanup(drm_device_t * dev) | 81 | static int i915_dma_cleanup(drm_device_t * dev) |
99 | { | 82 | { |
100 | /* Make sure interrupts are disabled here because the uninstall ioctl | 83 | /* Make sure interrupts are disabled here because the uninstall ioctl |
101 | * may not have been called from userspace and after dev_private | 84 | * may not have been called from userspace and after dev_private |
@@ -247,7 +230,7 @@ static int i915_resume(drm_device_t * dev) | |||
247 | return 0; | 230 | return 0; |
248 | } | 231 | } |
249 | 232 | ||
250 | int i915_dma_init(DRM_IOCTL_ARGS) | 233 | static int i915_dma_init(DRM_IOCTL_ARGS) |
251 | { | 234 | { |
252 | DRM_DEVICE; | 235 | DRM_DEVICE; |
253 | drm_i915_private_t *dev_priv; | 236 | drm_i915_private_t *dev_priv; |
@@ -558,7 +541,7 @@ static int i915_quiescent(drm_device_t * dev) | |||
558 | return i915_wait_ring(dev, dev_priv->ring.Size - 8, __FUNCTION__); | 541 | return i915_wait_ring(dev, dev_priv->ring.Size - 8, __FUNCTION__); |
559 | } | 542 | } |
560 | 543 | ||
561 | int i915_flush_ioctl(DRM_IOCTL_ARGS) | 544 | static int i915_flush_ioctl(DRM_IOCTL_ARGS) |
562 | { | 545 | { |
563 | DRM_DEVICE; | 546 | DRM_DEVICE; |
564 | 547 | ||
@@ -567,7 +550,7 @@ int i915_flush_ioctl(DRM_IOCTL_ARGS) | |||
567 | return i915_quiescent(dev); | 550 | return i915_quiescent(dev); |
568 | } | 551 | } |
569 | 552 | ||
570 | int i915_batchbuffer(DRM_IOCTL_ARGS) | 553 | static int i915_batchbuffer(DRM_IOCTL_ARGS) |
571 | { | 554 | { |
572 | DRM_DEVICE; | 555 | DRM_DEVICE; |
573 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 556 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
@@ -601,7 +584,7 @@ int i915_batchbuffer(DRM_IOCTL_ARGS) | |||
601 | return ret; | 584 | return ret; |
602 | } | 585 | } |
603 | 586 | ||
604 | int i915_cmdbuffer(DRM_IOCTL_ARGS) | 587 | static int i915_cmdbuffer(DRM_IOCTL_ARGS) |
605 | { | 588 | { |
606 | DRM_DEVICE; | 589 | DRM_DEVICE; |
607 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 590 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
@@ -637,18 +620,7 @@ int i915_cmdbuffer(DRM_IOCTL_ARGS) | |||
637 | return 0; | 620 | return 0; |
638 | } | 621 | } |
639 | 622 | ||
640 | int i915_do_cleanup_pageflip(drm_device_t * dev) | 623 | static int i915_flip_bufs(DRM_IOCTL_ARGS) |
641 | { | ||
642 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
643 | |||
644 | DRM_DEBUG("%s\n", __FUNCTION__); | ||
645 | if (dev_priv->current_page != 0) | ||
646 | i915_dispatch_flip(dev); | ||
647 | |||
648 | return 0; | ||
649 | } | ||
650 | |||
651 | int i915_flip_bufs(DRM_IOCTL_ARGS) | ||
652 | { | 624 | { |
653 | DRM_DEVICE; | 625 | DRM_DEVICE; |
654 | 626 | ||
@@ -659,7 +631,7 @@ int i915_flip_bufs(DRM_IOCTL_ARGS) | |||
659 | return i915_dispatch_flip(dev); | 631 | return i915_dispatch_flip(dev); |
660 | } | 632 | } |
661 | 633 | ||
662 | int i915_getparam(DRM_IOCTL_ARGS) | 634 | static int i915_getparam(DRM_IOCTL_ARGS) |
663 | { | 635 | { |
664 | DRM_DEVICE; | 636 | DRM_DEVICE; |
665 | drm_i915_private_t *dev_priv = dev->dev_private; | 637 | drm_i915_private_t *dev_priv = dev->dev_private; |
@@ -694,7 +666,7 @@ int i915_getparam(DRM_IOCTL_ARGS) | |||
694 | return 0; | 666 | return 0; |
695 | } | 667 | } |
696 | 668 | ||
697 | int i915_setparam(DRM_IOCTL_ARGS) | 669 | static int i915_setparam(DRM_IOCTL_ARGS) |
698 | { | 670 | { |
699 | DRM_DEVICE; | 671 | DRM_DEVICE; |
700 | drm_i915_private_t *dev_priv = dev->dev_private; | 672 | drm_i915_private_t *dev_priv = dev->dev_private; |
@@ -743,3 +715,19 @@ void i915_driver_prerelease(drm_device_t *dev, DRMFILE filp) | |||
743 | } | 715 | } |
744 | } | 716 | } |
745 | 717 | ||
718 | drm_ioctl_desc_t i915_ioctls[] = { | ||
719 | [DRM_IOCTL_NR(DRM_I915_INIT)] = {i915_dma_init, 1, 1}, | ||
720 | [DRM_IOCTL_NR(DRM_I915_FLUSH)] = {i915_flush_ioctl, 1, 0}, | ||
721 | [DRM_IOCTL_NR(DRM_I915_FLIP)] = {i915_flip_bufs, 1, 0}, | ||
722 | [DRM_IOCTL_NR(DRM_I915_BATCHBUFFER)] = {i915_batchbuffer, 1, 0}, | ||
723 | [DRM_IOCTL_NR(DRM_I915_IRQ_EMIT)] = {i915_irq_emit, 1, 0}, | ||
724 | [DRM_IOCTL_NR(DRM_I915_IRQ_WAIT)] = {i915_irq_wait, 1, 0}, | ||
725 | [DRM_IOCTL_NR(DRM_I915_GETPARAM)] = {i915_getparam, 1, 0}, | ||
726 | [DRM_IOCTL_NR(DRM_I915_SETPARAM)] = {i915_setparam, 1, 1}, | ||
727 | [DRM_IOCTL_NR(DRM_I915_ALLOC)] = {i915_mem_alloc, 1, 0}, | ||
728 | [DRM_IOCTL_NR(DRM_I915_FREE)] = {i915_mem_free, 1, 0}, | ||
729 | [DRM_IOCTL_NR(DRM_I915_INIT_HEAP)] = {i915_mem_init_heap, 1, 1}, | ||
730 | [DRM_IOCTL_NR(DRM_I915_CMDBUFFER)] = {i915_cmdbuffer, 1, 0} | ||
731 | }; | ||
732 | |||
733 | int i915_max_ioctl = DRM_ARRAY_SIZE(i915_ioctls); | ||