aboutsummaryrefslogtreecommitdiff
path: root/linux-core/xgi_fence.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux-core/xgi_fence.c')
-rw-r--r--linux-core/xgi_fence.c87
1 files changed, 0 insertions, 87 deletions
diff --git a/linux-core/xgi_fence.c b/linux-core/xgi_fence.c
index 38cf9e4f..7553177c 100644
--- a/linux-core/xgi_fence.c
+++ b/linux-core/xgi_fence.c
@@ -97,90 +97,3 @@ int xgi_wait_fence_ioctl(struct drm_device * dev, void * data,
(void) filp;
return xgi_low_level_fence_wait(dev, (u32 *) data);
}
-
-
-#ifdef XGI_HAVE_FENCE
-static void xgi_fence_poll(struct drm_device * dev, uint32_t class,
- uint32_t waiting_types)
-{
- struct xgi_info * info = dev->dev_private;
- uint32_t signaled_types = 0;
-
-
- if ((info == NULL) || (class != 0))
- return;
-
- DRM_SPINLOCK(&info->fence_lock);
-
- if (waiting_types) {
- if (waiting_types & DRM_FENCE_TYPE_EXE) {
- const u32 begin_id = le32_to_cpu(DRM_READ32(info->mmio_map,
- 0x2820))
- & BEGIN_BEGIN_IDENTIFICATION_MASK;
-
- if (begin_id != info->complete_sequence) {
- info->complete_sequence = begin_id;
- signaled_types |= DRM_FENCE_TYPE_EXE;
- }
- }
-
- if (signaled_types) {
- drm_fence_handler(dev, 0, info->complete_sequence,
- signaled_types, 0);
- }
- }
-
- DRM_SPINUNLOCK(&info->fence_lock);
-}
-
-
-int xgi_fence_emit_sequence(struct drm_device * dev, uint32_t class,
- uint32_t flags, uint32_t * sequence,
- uint32_t * native_type)
-{
- int err;
-
- (void) flags;
-
- if (class != 0)
- return -EINVAL;
-
- err = xgi_low_level_fence_emit(dev, sequence);
- if (err)
- return err;
-
- *native_type = DRM_FENCE_TYPE_EXE;
- return 0;
-}
-
-
-void xgi_fence_handler(struct drm_device * dev)
-{
- struct drm_fence_manager * fm = &dev->fm;
- struct drm_fence_class_manager *fc = &fm->fence_class[0];
-
- write_lock(&fm->lock);
- xgi_fence_poll(dev, 0, fc->waiting_types);
- write_unlock(&fm->lock);
-}
-
-
-int xgi_fence_has_irq(struct drm_device *dev, uint32_t class, uint32_t flags)
-{
- return ((class == 0) && (flags == DRM_FENCE_TYPE_EXE)) ? 1 : 0;
-}
-
-struct drm_fence_driver xgi_fence_driver = {
- .num_classes = 1,
- .wrap_diff = BEGIN_BEGIN_IDENTIFICATION_MASK,
- .flush_diff = BEGIN_BEGIN_IDENTIFICATION_MASK - 1,
- .sequence_mask = BEGIN_BEGIN_IDENTIFICATION_MASK,
- .has_irq = xgi_fence_has_irq,
- .emit = xgi_fence_emit_sequence,
- .flush = NULL,
- .poll = xgi_fence_poll,
- .needed_flush = NULL,
- .wait = NULL
-};
-
-#endif /* XGI_HAVE_FENCE */