Subversion Repositories Kolibri OS

Rev

Rev 6937 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6937 Rev 7144
Line 23... Line 23...
23
 
23
 
24
#ifndef _INTEL_LRC_H_
24
#ifndef _INTEL_LRC_H_
Line 25... Line 25...
25
#define _INTEL_LRC_H_
25
#define _INTEL_LRC_H_
26
 
-
 
27
#define GEN8_LR_CONTEXT_ALIGN 4096
-
 
Line 28... Line 26...
28
#define GEN8_CSB_ENTRIES 6
26
 
29
#define GEN8_CSB_PTR_MASK 0x07
27
#define GEN8_LR_CONTEXT_ALIGN 4096
30
 
28
 
31
/* Execlists regs */
29
/* Execlists regs */
Line 38... Line 36...
38
#define   CTX_CTRL_RS_CTX_ENABLE                (1 << 1)
36
#define   CTX_CTRL_RS_CTX_ENABLE                (1 << 1)
39
#define RING_CONTEXT_STATUS_BUF_LO(ring, i)	_MMIO((ring)->mmio_base + 0x370 + (i) * 8)
37
#define RING_CONTEXT_STATUS_BUF_LO(ring, i)	_MMIO((ring)->mmio_base + 0x370 + (i) * 8)
40
#define RING_CONTEXT_STATUS_BUF_HI(ring, i)	_MMIO((ring)->mmio_base + 0x370 + (i) * 8 + 4)
38
#define RING_CONTEXT_STATUS_BUF_HI(ring, i)	_MMIO((ring)->mmio_base + 0x370 + (i) * 8 + 4)
41
#define RING_CONTEXT_STATUS_PTR(ring)		_MMIO((ring)->mmio_base + 0x3a0)
39
#define RING_CONTEXT_STATUS_PTR(ring)		_MMIO((ring)->mmio_base + 0x3a0)
Line -... Line 40...
-
 
40
 
-
 
41
/* The docs specify that the write pointer wraps around after 5h, "After status
-
 
42
 * is written out to the last available status QW at offset 5h, this pointer
-
 
43
 * wraps to 0."
-
 
44
 *
-
 
45
 * Therefore, one must infer than even though there are 3 bits available, 6 and
-
 
46
 * 7 appear to be * reserved.
-
 
47
 */
-
 
48
#define GEN8_CSB_ENTRIES 6
-
 
49
#define GEN8_CSB_PTR_MASK 0x7
-
 
50
#define GEN8_CSB_READ_PTR_MASK (GEN8_CSB_PTR_MASK << 8)
-
 
51
#define GEN8_CSB_WRITE_PTR_MASK (GEN8_CSB_PTR_MASK << 0)
-
 
52
#define GEN8_CSB_WRITE_PTR(csb_status) \
-
 
53
	(((csb_status) & GEN8_CSB_WRITE_PTR_MASK) >> 0)
-
 
54
#define GEN8_CSB_READ_PTR(csb_status) \
-
 
55
	(((csb_status) & GEN8_CSB_READ_PTR_MASK) >> 8)
42
 
56
 
43
/* Logical Rings */
57
/* Logical Rings */
44
int intel_logical_ring_alloc_request_extras(struct drm_i915_gem_request *request);
58
int intel_logical_ring_alloc_request_extras(struct drm_i915_gem_request *request);
45
int intel_logical_ring_reserve_space(struct drm_i915_gem_request *request);
59
int intel_logical_ring_reserve_space(struct drm_i915_gem_request *request);
46
void intel_logical_ring_stop(struct intel_engine_cs *ring);
60
void intel_logical_ring_stop(struct intel_engine_cs *ring);
Line 82... Line 96...
82
#define LRC_GUCSHR_PN	(0)
96
#define LRC_GUCSHR_PN	(0)
83
#define LRC_PPHWSP_PN	(LRC_GUCSHR_PN + 1)
97
#define LRC_PPHWSP_PN	(LRC_GUCSHR_PN + 1)
84
#define LRC_STATE_PN	(LRC_PPHWSP_PN + 1)
98
#define LRC_STATE_PN	(LRC_PPHWSP_PN + 1)
Line 85... Line 99...
85
 
99
 
-
 
100
void intel_lr_context_free(struct intel_context *ctx);
86
void intel_lr_context_free(struct intel_context *ctx);
101
uint32_t intel_lr_context_size(struct intel_engine_cs *ring);
87
int intel_lr_context_deferred_alloc(struct intel_context *ctx,
102
int intel_lr_context_deferred_alloc(struct intel_context *ctx,
88
				    struct intel_engine_cs *ring);
103
				    struct intel_engine_cs *ring);
-
 
104
void intel_lr_context_unpin(struct intel_context *ctx,
89
void intel_lr_context_unpin(struct drm_i915_gem_request *req);
105
			    struct intel_engine_cs *engine);
90
void intel_lr_context_reset(struct drm_device *dev,
106
void intel_lr_context_reset(struct drm_device *dev,
91
			struct intel_context *ctx);
107
			struct intel_context *ctx);
92
uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
108
uint64_t intel_lr_context_descriptor(struct intel_context *ctx,
Line -... Line 109...
-
 
109
				     struct intel_engine_cs *ring);
-
 
110
 
-
 
111
u32 intel_execlists_ctx_id(struct intel_context *ctx,
93
				     struct intel_engine_cs *ring);
112
			   struct intel_engine_cs *ring);
94
 
113
 
95
/* Execlists */
114
/* Execlists */
96
int intel_sanitize_enable_execlists(struct drm_device *dev, int enable_execlists);
115
int intel_sanitize_enable_execlists(struct drm_device *dev, int enable_execlists);
97
struct i915_execbuffer_params;
116
struct i915_execbuffer_params;
98
int intel_execlists_submission(struct i915_execbuffer_params *params,
117
int intel_execlists_submission(struct i915_execbuffer_params *params,
99
			       struct drm_i915_gem_execbuffer2 *args,
-
 
Line 100... Line 118...
100
			       struct list_head *vmas);
118
			       struct drm_i915_gem_execbuffer2 *args,
101
u32 intel_execlists_ctx_id(struct drm_i915_gem_object *ctx_obj);
119
			       struct list_head *vmas);
Line 102... Line 120...
102
 
120