summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDave Airlie <airlied@gmail.com>2012-08-23 15:12:44 +1000
committerDave Airlie <airlied@gmail.com>2012-08-23 15:12:44 +1000
commit269b62db0e52bf2656aa762d61cfe67f3705fdff (patch)
tree61a2eb7fa62f5af10c2b913ca429e6b068b0eb2d /include
parentd9875690d9b89a866022ff49e3fcea892345ad92 (diff)
parenta22ddff8bedfe33eeb1330bbb7ef1fbe007a42c4 (diff)
Merge branch 'for-airlied' of git://people.freedesktop.org/~danvet/drm-intel into drm-next
Daniel writes: " First -next pull for 3.7. Highlights: - hsw hdmi improvements (Paulo) - ips/rps locking rework and cleanups - rc6 on ilk by default again - hw context&dp&dpff support for hsw (Ben) - GET_PARAM_HAS_SEMAPHORES (Chris) - gen6+ pipe_control improvements (Chris) - set_cacheing ioctl and assorted support code (Chris) - cleanups around the busy/idle/pm code (Chris&me) - flushing_list removal, hopefully for good (Chris) - read_reg ioctl (Ben) - support the ns2501 dvo (Thomas Richter) - avoid the costly gen6+ "missed IRQ" workaround where we don't need a race-free seqno readback (Chris) - various bits&pieces, mostly early patches from the modeset rework branch" * 'for-airlied' of git://people.freedesktop.org/~danvet/drm-intel: (54 commits) drm/i915: don't grab dev->struct_mutex for userspace forcewak drm/i915: try harder to find WR PLL clock settings drm/i915: use the correct encoder type when comparing drm/i915: Lazily apply the SNB+ seqno w/a drm/i915: enable rc6 on ilk again drm/i915: fix up ilk drps/ips locking drm/i915: DE_PCU_EVENT irq is ilk-only drm/i915: kill dev_priv->mchdev_lock drm/i915: move all rps state into dev_priv->rps drm/i915: use mutex_lock_interruptible for debugfs files drm/i915: fixup up debugfs rps state handling drm/i915: properly guard ilk ips state drm/i915: add parentheses around PIXCLK_GATE definitions drm/i915: reindent Haswell register definitions drm/i915: completely reset the value of DDI_FUNC_CTL drm/i915: correctly set the DDI_FUNC_CTL bpc field drm/i915: set the DDI sync polarity bits drm/i915: fix pipe DDI mode select drm/i915: dump the device info drm/i915: fixup desired rps frequency computation ...
Diffstat (limited to 'include')
-rw-r--r--include/drm/i915_drm.h34
1 files changed, 33 insertions, 1 deletions
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
index 8cc70837f929..d8a79bf59ae7 100644
--- a/include/drm/i915_drm.h
+++ b/include/drm/i915_drm.h
@@ -203,6 +203,9 @@ typedef struct _drm_i915_sarea {
#define DRM_I915_GEM_WAIT 0x2c
#define DRM_I915_GEM_CONTEXT_CREATE 0x2d
#define DRM_I915_GEM_CONTEXT_DESTROY 0x2e
+#define DRM_I915_GEM_SET_CACHEING 0x2f
+#define DRM_I915_GEM_GET_CACHEING 0x30
+#define DRM_I915_REG_READ 0x31
#define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
#define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -227,6 +230,8 @@ typedef struct _drm_i915_sarea {
#define DRM_IOCTL_I915_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin)
#define DRM_IOCTL_I915_GEM_UNPIN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin)
#define DRM_IOCTL_I915_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy)
+#define DRM_IOCTL_I915_GEM_SET_CACHEING DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_SET_CACHEING, struct drm_i915_gem_cacheing)
+#define DRM_IOCTL_I915_GEM_GET_CACHEING DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_GET_CACHEING, struct drm_i915_gem_cacheing)
#define DRM_IOCTL_I915_GEM_THROTTLE DRM_IO ( DRM_COMMAND_BASE + DRM_I915_GEM_THROTTLE)
#define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT)
#define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT)
@@ -249,6 +254,7 @@ typedef struct _drm_i915_sarea {
#define DRM_IOCTL_I915_GEM_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_WAIT, struct drm_i915_gem_wait)
#define DRM_IOCTL_I915_GEM_CONTEXT_CREATE DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct drm_i915_gem_context_create)
#define DRM_IOCTL_I915_GEM_CONTEXT_DESTROY DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_DESTROY, struct drm_i915_gem_context_destroy)
+#define DRM_IOCTL_I915_REG_READ DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_REG_READ, struct drm_i915_reg_read)
/* Allow drivers to submit batchbuffers directly to hardware, relying
* on the security mechanisms provided by hardware.
@@ -305,6 +311,7 @@ typedef struct drm_i915_irq_wait {
#define I915_PARAM_HAS_LLC 17
#define I915_PARAM_HAS_ALIASING_PPGTT 18
#define I915_PARAM_HAS_WAIT_TIMEOUT 19
+#define I915_PARAM_HAS_SEMAPHORES 20
typedef struct drm_i915_getparam {
int param;
@@ -698,10 +705,31 @@ struct drm_i915_gem_busy {
/** Handle of the buffer to check for busy */
__u32 handle;
- /** Return busy status (1 if busy, 0 if idle) */
+ /** Return busy status (1 if busy, 0 if idle).
+ * The high word is used to indicate on which rings the object
+ * currently resides:
+ * 16:31 - busy (r or r/w) rings (16 render, 17 bsd, 18 blt, etc)
+ */
__u32 busy;
};
+#define I915_CACHEING_NONE 0
+#define I915_CACHEING_CACHED 1
+
+struct drm_i915_gem_cacheing {
+ /**
+ * Handle of the buffer to set/get the cacheing level of. */
+ __u32 handle;
+
+ /**
+ * Cacheing level to apply or return value
+ *
+ * bits0-15 are for generic cacheing control (i.e. the above defined
+ * values). bits16-31 are reserved for platform-specific variations
+ * (e.g. l3$ caching on gen7). */
+ __u32 cacheing;
+};
+
#define I915_TILING_NONE 0
#define I915_TILING_X 1
#define I915_TILING_Y 2
@@ -918,4 +946,8 @@ struct drm_i915_gem_context_destroy {
__u32 pad;
};
+struct drm_i915_reg_read {
+ __u64 offset;
+ __u64 val; /* Return value */
+};
#endif /* _I915_DRM_H_ */