aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-10-19 09:13:00 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-10-19 09:14:50 +0100
commitfb9a90f7c674f3ddef6baf55cb1612dadd8ea752 (patch)
treef25cf2ce17449ba34cdfdfb948134eb3464e400e /include/drm
parent2d7b8366ae4a9ec2183c30e432a4a9a495c82bcd (diff)
parent21c74a8ea8b47eb6c3c621e36578f6e27f65c5c7 (diff)
downloadmrst-s0i3-test-fb9a90f7c674f3ddef6baf55cb1612dadd8ea752.tar.gz
mrst-s0i3-test-fb9a90f7c674f3ddef6baf55cb1612dadd8ea752.tar.xz
mrst-s0i3-test-fb9a90f7c674f3ddef6baf55cb1612dadd8ea752.zip
Merge remote branch 'airlied/drm-core-next' into tmp
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/drm_crtc_helper.h7
-rw-r--r--include/drm/ttm/ttm_bo_api.h4
-rw-r--r--include/drm/ttm/ttm_bo_driver.h4
3 files changed, 13 insertions, 2 deletions
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
index 6a9f3935ea0..73b071203dc 100644
--- a/include/drm/drm_crtc_helper.h
+++ b/include/drm/drm_crtc_helper.h
@@ -39,6 +39,11 @@
#include <linux/fb.h>
+enum mode_set_atomic {
+ LEAVE_ATOMIC_MODE_SET,
+ ENTER_ATOMIC_MODE_SET,
+};
+
struct drm_crtc_helper_funcs {
/*
* Control power levels on the CRTC. If the mode passed in is
@@ -62,7 +67,7 @@ struct drm_crtc_helper_funcs {
struct drm_framebuffer *old_fb);
int (*mode_set_base_atomic)(struct drm_crtc *crtc,
struct drm_framebuffer *fb, int x, int y,
- int is_enter);
+ enum mode_set_atomic);
/* reload the current crtc LUT */
void (*load_lut)(struct drm_crtc *crtc);
diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
index 49b43c23636..5afa5b52063 100644
--- a/include/drm/ttm/ttm_bo_api.h
+++ b/include/drm/ttm/ttm_bo_api.h
@@ -247,9 +247,11 @@ struct ttm_buffer_object {
atomic_t reserved;
-
/**
* Members protected by the bo::lock
+ * In addition, setting sync_obj to anything else
+ * than NULL requires bo::reserved to be held. This allows for
+ * checking NULL while reserved but not holding bo::lock.
*/
void *sync_obj_arg;
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index e3371dbe6a1..d0ff529fedd 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -214,6 +214,8 @@ struct ttm_mem_type_manager_func {
struct ttm_mem_reg *mem);
void (*put_node)(struct ttm_mem_type_manager *man,
struct ttm_mem_reg *mem);
+ void (*put_node_locked)(struct ttm_mem_type_manager *man,
+ struct ttm_mem_reg *mem);
void (*debug)(struct ttm_mem_type_manager *man, const char *prefix);
};
@@ -667,6 +669,8 @@ extern int ttm_bo_mem_space(struct ttm_buffer_object *bo,
extern void ttm_bo_mem_put(struct ttm_buffer_object *bo,
struct ttm_mem_reg *mem);
+extern void ttm_bo_mem_put_locked(struct ttm_buffer_object *bo,
+ struct ttm_mem_reg *mem);
/**
* ttm_bo_wait_for_cpu