Subversion Repositories Kolibri OS

Rev

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

Rev 2351 Rev 2352
Line 33... Line 33...
33
#include "i915_drm.h"
33
#include "i915_drm.h"
34
#include "i915_drv.h"
34
#include "i915_drv.h"
35
#include "i915_trace.h"
35
#include "i915_trace.h"
36
#include "intel_drv.h"
36
#include "intel_drv.h"
Line -... Line 37...
-
 
37
 
-
 
38
#define DRM_WAKEUP( queue ) wake_up( queue )
-
 
39
#define DRM_INIT_WAITQUEUE( queue ) init_waitqueue_head( queue )
37
 
40
 
Line 38... Line 41...
38
#define MAX_NOPID ((u32)~0)
41
#define MAX_NOPID ((u32)~0)
39
 
42
 
40
/**
43
/**
Line 82... Line 85...
82
        dev_priv->irq_mask |= mask;
85
        dev_priv->irq_mask |= mask;
83
        I915_WRITE(DEIMR, dev_priv->irq_mask);
86
        I915_WRITE(DEIMR, dev_priv->irq_mask);
84
        POSTING_READ(DEIMR);
87
        POSTING_READ(DEIMR);
85
    }
88
    }
86
}
89
}
-
 
90
static void notify_ring(struct drm_device *dev,
-
 
91
			struct intel_ring_buffer *ring)
-
 
92
{
-
 
93
	struct drm_i915_private *dev_priv = dev->dev_private;
-
 
94
	u32 seqno;
-
 
95
 
-
 
96
	if (ring->obj == NULL)
-
 
97
		return;
-
 
98
 
-
 
99
	seqno = ring->get_seqno(ring);
-
 
100
	trace_i915_gem_request_complete(ring, seqno);
-
 
101
 
-
 
102
	ring->irq_seqno = seqno;
-
 
103
	wake_up_all(&ring->irq_queue);
-
 
104
//   if (i915_enable_hangcheck) {
-
 
105
//       dev_priv->hangcheck_count = 0;
-
 
106
//       mod_timer(&dev_priv->hangcheck_timer,
-
 
107
//             jiffies +
-
 
108
//             msecs_to_jiffies(DRM_I915_HANGCHECK_PERIOD));
-
 
109
//   }
-
 
110
}
Line 87... Line 111...
87
 
111
 
88
 
112
 
Line 121... Line 145...
121
        hotplug_mask = SDE_HOTPLUG_MASK;
145
        hotplug_mask = SDE_HOTPLUG_MASK;
Line 122... Line 146...
122
 
146
 
Line 123... Line 147...
123
    ret = IRQ_HANDLED;
147
    ret = IRQ_HANDLED;
124
 
148
 
125
 
149
 
126
//    if (gt_iir & (GT_USER_INTERRUPT | GT_PIPE_NOTIFY))
150
    if (gt_iir & (GT_USER_INTERRUPT | GT_PIPE_NOTIFY))
127
//        notify_ring(dev, &dev_priv->ring[RCS]);
151
        notify_ring(dev, &dev_priv->ring[RCS]);
128
//    if (gt_iir & bsd_usr_interrupt)
152
    if (gt_iir & bsd_usr_interrupt)
Line 129... Line 153...
129
//        notify_ring(dev, &dev_priv->ring[VCS]);
153
        notify_ring(dev, &dev_priv->ring[VCS]);
130
//    if (gt_iir & GT_BLT_USER_INTERRUPT)
154
    if (gt_iir & GT_BLT_USER_INTERRUPT)
Line 131... Line 155...
131
//        notify_ring(dev, &dev_priv->ring[BCS]);
155
        notify_ring(dev, &dev_priv->ring[BCS]);
Line 273... Line 297...
273
    u32 display_mask = DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT |
297
    u32 display_mask = DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT |
274
               DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE;
298
               DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE;
275
    u32 render_irqs;
299
    u32 render_irqs;
276
    u32 hotplug_mask;
300
    u32 hotplug_mask;
Line 277... Line 301...
277
 
301
 
278
//    DRM_INIT_WAITQUEUE(&dev_priv->ring[RCS].irq_queue);
302
    DRM_INIT_WAITQUEUE(&dev_priv->ring[RCS].irq_queue);
279
//    if (HAS_BSD(dev))
303
    if (HAS_BSD(dev))
280
//        DRM_INIT_WAITQUEUE(&dev_priv->ring[VCS].irq_queue);
304
        DRM_INIT_WAITQUEUE(&dev_priv->ring[VCS].irq_queue);
281
//    if (HAS_BLT(dev))
305
    if (HAS_BLT(dev))
Line 282... Line 306...
282
//        DRM_INIT_WAITQUEUE(&dev_priv->ring[BCS].irq_queue);
306
        DRM_INIT_WAITQUEUE(&dev_priv->ring[BCS].irq_queue);
283
 
307
 
Line 284... Line 308...
284
    dev_priv->vblank_pipe = DRM_I915_VBLANK_PIPE_A | DRM_I915_VBLANK_PIPE_B;
308
    dev_priv->vblank_pipe = DRM_I915_VBLANK_PIPE_A | DRM_I915_VBLANK_PIPE_B;