Subversion Repositories Kolibri OS

Rev

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

Rev 3391 Rev 4103
Line 31... Line 31...
31
 
31
 
32
/* Please note that modifications to all structs defined here are
32
/* Please note that modifications to all structs defined here are
33
 * subject to backwards-compatibility constraints.
33
 * subject to backwards-compatibility constraints.
Line -... Line 34...
-
 
34
 */
-
 
35
 
-
 
36
/**
-
 
37
 * DOC: uevents generated by i915 on it's device node
-
 
38
 *
-
 
39
 * I915_L3_PARITY_UEVENT - Generated when the driver receives a parity mismatch
-
 
40
 *	event from the gpu l3 cache. Additional information supplied is ROW,
-
 
41
 *	BANK, SUBBANK of the affected cacheline. Userspace should keep track of
-
 
42
 *	these events and if a specific cache-line seems to have a persistent
-
 
43
 *	error remap it with the l3 remapping tool supplied in intel-gpu-tools.
-
 
44
 *	The value supplied with the event is always 1.
-
 
45
 *
-
 
46
 * I915_ERROR_UEVENT - Generated upon error detection, currently only via
-
 
47
 *	hangcheck. The error detection event is a good indicator of when things
-
 
48
 *	began to go badly. The value supplied with the event is a 1 upon error
-
 
49
 *	detection, and a 0 upon reset completion, signifying no more error
-
 
50
 *	exists. NOTE: Disabling hangcheck or reset via module parameter will
-
 
51
 *	cause the related events to not be seen.
-
 
52
 *
-
 
53
 * I915_RESET_UEVENT - Event is generated just before an attempt to reset the
-
 
54
 *	the GPU. The value supplied with the event is always 1. NOTE: Disable
-
 
55
 *	reset via module parameter will cause this event to not be seen.
-
 
56
 */
-
 
57
#define I915_L3_PARITY_UEVENT		"L3_PARITY_ERROR"
Line 34... Line 58...
34
 */
58
#define I915_ERROR_UEVENT		"ERROR"
35
 
59
#define I915_RESET_UEVENT		"RESET"
36
 
60
 
37
/* Each region is a minimum of 16k, and there are at most 255 of them.
61
/* Each region is a minimum of 16k, and there are at most 255 of them.
Line 303... Line 327...
303
#define I915_PARAM_HAS_LLC     	 	 17
327
#define I915_PARAM_HAS_LLC     	 	 17
304
#define I915_PARAM_HAS_ALIASING_PPGTT	 18
328
#define I915_PARAM_HAS_ALIASING_PPGTT	 18
305
#define I915_PARAM_HAS_WAIT_TIMEOUT	 19
329
#define I915_PARAM_HAS_WAIT_TIMEOUT	 19
306
#define I915_PARAM_HAS_SEMAPHORES	 20
330
#define I915_PARAM_HAS_SEMAPHORES	 20
307
#define I915_PARAM_HAS_PRIME_VMAP_FLUSH	 21
331
#define I915_PARAM_HAS_PRIME_VMAP_FLUSH	 21
308
#define I915_PARAM_RSVD_FOR_FUTURE_USE	 22
332
#define I915_PARAM_HAS_VEBOX		 22
309
#define I915_PARAM_HAS_SECURE_BATCHES	 23
333
#define I915_PARAM_HAS_SECURE_BATCHES	 23
310
#define I915_PARAM_HAS_PINNED_BATCHES	 24
334
#define I915_PARAM_HAS_PINNED_BATCHES	 24
311
#define I915_PARAM_HAS_EXEC_NO_RELOC	 25
335
#define I915_PARAM_HAS_EXEC_NO_RELOC	 25
312
#define I915_PARAM_HAS_EXEC_HANDLE_LUT   26
336
#define I915_PARAM_HAS_EXEC_HANDLE_LUT   26
-
 
337
#define I915_PARAM_HAS_WT     	 	 27
Line 313... Line 338...
313
 
338
 
314
typedef struct drm_i915_getparam {
339
typedef struct drm_i915_getparam {
315
	int param;
340
	int param;
316
	int __user *value;
341
	int __user *value;
Line 658... Line 683...
658
#define I915_EXEC_RING_MASK              (7<<0)
683
#define I915_EXEC_RING_MASK              (7<<0)
659
#define I915_EXEC_DEFAULT                (0<<0)
684
#define I915_EXEC_DEFAULT                (0<<0)
660
#define I915_EXEC_RENDER                 (1<<0)
685
#define I915_EXEC_RENDER                 (1<<0)
661
#define I915_EXEC_BSD                    (2<<0)
686
#define I915_EXEC_BSD                    (2<<0)
662
#define I915_EXEC_BLT                    (3<<0)
687
#define I915_EXEC_BLT                    (3<<0)
-
 
688
#define I915_EXEC_VEBOX                  (4<<0)
Line 663... Line 689...
663
 
689
 
664
/* Used for switching the constants addressing mode on gen4+ RENDER ring.
690
/* Used for switching the constants addressing mode on gen4+ RENDER ring.
665
 * Gen6+ only supports relative addressing to dynamic state (default) and
691
 * Gen6+ only supports relative addressing to dynamic state (default) and
666
 * absolute addressing.
692
 * absolute addressing.
Line 741... Line 767...
741
	 *  16:31 - busy (r or r/w) rings (16 render, 17 bsd, 18 blt, etc)
767
	 *  16:31 - busy (r or r/w) rings (16 render, 17 bsd, 18 blt, etc)
742
	 */
768
	 */
743
	__u32 busy;
769
	__u32 busy;
744
};
770
};
Line -... Line 771...
-
 
771
 
-
 
772
/**
-
 
773
 * I915_CACHING_NONE
-
 
774
 *
-
 
775
 * GPU access is not coherent with cpu caches. Default for machines without an
-
 
776
 * LLC.
745
 
777
 */
-
 
778
#define I915_CACHING_NONE		0
-
 
779
/**
-
 
780
 * I915_CACHING_CACHED
-
 
781
 *
-
 
782
 * GPU access is coherent with cpu caches and furthermore the data is cached in
-
 
783
 * last-level caches shared between cpu cores and the gpu GT. Default on
-
 
784
 * machines with HAS_LLC.
746
#define I915_CACHING_NONE		0
785
 */
-
 
786
#define I915_CACHING_CACHED		1
-
 
787
/**
-
 
788
 * I915_CACHING_DISPLAY
-
 
789
 *
-
 
790
 * Special GPU caching mode which is coherent with the scanout engines.
-
 
791
 * Transparently falls back to I915_CACHING_NONE on platforms where no special
-
 
792
 * cache mode (like write-through or gfdt flushing) is available. The kernel
-
 
793
 * automatically sets this mode when using a buffer as a scanout target.
-
 
794
 * Userspace can manually set this mode to avoid a costly stall and clflush in
-
 
795
 * the hotpath of drawing the first frame.
-
 
796
 */
Line 747... Line 797...
747
#define I915_CACHING_CACHED		1
797
#define I915_CACHING_DISPLAY		2
748
 
798
 
749
struct drm_i915_gem_caching {
799
struct drm_i915_gem_caching {
750
	/**
800
	/**