diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-26 21:57:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-26 21:57:59 -0400 |
commit | c48c43e422c1404fd72c57d1d21a6f6d01e18900 (patch) | |
tree | 48e5d3828b4f5479361986535f71a1ae44e4f3c1 /include | |
parent | 520045db940a381d2bee1c1b2179f7921b40fb10 (diff) | |
parent | 135cba0dc399fdd47bd3ae305c1db75fcd77243f (diff) |
Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (476 commits)
vmwgfx: Implement a proper GMR eviction mechanism
drm/radeon/kms: fix r6xx/7xx 1D tiling CS checker v2
drm/radeon/kms: properly compute group_size on 6xx/7xx
drm/radeon/kms: fix 2D tile height alignment in the r600 CS checker
drm/radeon/kms/evergreen: set the clear state to the blit state
drm/radeon/kms: don't poll dac load detect.
gpu: Add Intel GMA500(Poulsbo) Stub Driver
drm/radeon/kms: MC vram map needs to be >= pci aperture size
drm/radeon/kms: implement display watermark support for evergreen
drm/radeon/kms/evergreen: add some additional safe regs v2
drm/radeon/r600: fix tiling issues in CS checker.
drm/i915: Move gpu_write_list to per-ring
drm/i915: Invalidate the to-ring, flush the old-ring when updating domains
drm/i915/ringbuffer: Write the value passed in to the tail register
agp/intel: Restore valid PTE bit for Sandybridge after bdd3072
drm/i915: Fix flushing regression from 9af90d19f
drm/i915/sdvo: Remove unused encoding member
i915: enable AVI infoframe for intel_hdmi.c [v4]
drm/i915: Fix current fb blocking for page flip
drm/i915: IS_IRONLAKE is synonymous with gen == 5
...
Fix up conflicts in
- drivers/gpu/drm/i915/{i915_gem.c, i915/intel_overlay.c}: due to the
new simplified stack-based kmap_atomic() interface
- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c: added .llseek entry due to BKL
removal cleanups.
Diffstat (limited to 'include')
-rw-r--r-- | include/drm/drmP.h | 45 | ||||
-rw-r--r-- | include/drm/drm_crtc.h | 4 | ||||
-rw-r--r-- | include/drm/drm_crtc_helper.h | 8 | ||||
-rw-r--r-- | include/drm/drm_dp_helper.h | 3 | ||||
-rw-r--r-- | include/drm/i915_drm.h | 6 | ||||
-rw-r--r-- | include/drm/intel-gtt.h | 18 | ||||
-rw-r--r-- | include/drm/ttm/ttm_bo_api.h | 3 | ||||
-rw-r--r-- | include/drm/ttm/ttm_bo_driver.h | 27 | ||||
-rw-r--r-- | include/drm/vmwgfx_drm.h | 1 |
9 files changed, 65 insertions, 50 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 4c9461a4f9e6..274eaaa15c36 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h | |||
@@ -699,13 +699,8 @@ struct drm_driver { | |||
699 | int (*suspend) (struct drm_device *, pm_message_t state); | 699 | int (*suspend) (struct drm_device *, pm_message_t state); |
700 | int (*resume) (struct drm_device *); | 700 | int (*resume) (struct drm_device *); |
701 | int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv); | 701 | int (*dma_ioctl) (struct drm_device *dev, void *data, struct drm_file *file_priv); |
702 | void (*dma_ready) (struct drm_device *); | ||
703 | int (*dma_quiescent) (struct drm_device *); | 702 | int (*dma_quiescent) (struct drm_device *); |
704 | int (*context_ctor) (struct drm_device *dev, int context); | ||
705 | int (*context_dtor) (struct drm_device *dev, int context); | 703 | int (*context_dtor) (struct drm_device *dev, int context); |
706 | int (*kernel_context_switch) (struct drm_device *dev, int old, | ||
707 | int new); | ||
708 | void (*kernel_context_switch_unlock) (struct drm_device *dev); | ||
709 | 704 | ||
710 | /** | 705 | /** |
711 | * get_vblank_counter - get raw hardware vblank counter | 706 | * get_vblank_counter - get raw hardware vblank counter |
@@ -777,8 +772,6 @@ struct drm_driver { | |||
777 | struct drm_file *file_priv); | 772 | struct drm_file *file_priv); |
778 | void (*reclaim_buffers_idlelocked) (struct drm_device *dev, | 773 | void (*reclaim_buffers_idlelocked) (struct drm_device *dev, |
779 | struct drm_file *file_priv); | 774 | struct drm_file *file_priv); |
780 | resource_size_t (*get_map_ofs) (struct drm_local_map * map); | ||
781 | resource_size_t (*get_reg_ofs) (struct drm_device *dev); | ||
782 | void (*set_version) (struct drm_device *dev, | 775 | void (*set_version) (struct drm_device *dev, |
783 | struct drm_set_version *sv); | 776 | struct drm_set_version *sv); |
784 | 777 | ||
@@ -795,8 +788,6 @@ struct drm_driver { | |||
795 | void (*master_drop)(struct drm_device *dev, struct drm_file *file_priv, | 788 | void (*master_drop)(struct drm_device *dev, struct drm_file *file_priv, |
796 | bool from_release); | 789 | bool from_release); |
797 | 790 | ||
798 | int (*proc_init)(struct drm_minor *minor); | ||
799 | void (*proc_cleanup)(struct drm_minor *minor); | ||
800 | int (*debugfs_init)(struct drm_minor *minor); | 791 | int (*debugfs_init)(struct drm_minor *minor); |
801 | void (*debugfs_cleanup)(struct drm_minor *minor); | 792 | void (*debugfs_cleanup)(struct drm_minor *minor); |
802 | 793 | ||
@@ -972,7 +963,6 @@ struct drm_device { | |||
972 | __volatile__ long context_flag; /**< Context swapping flag */ | 963 | __volatile__ long context_flag; /**< Context swapping flag */ |
973 | __volatile__ long interrupt_flag; /**< Interruption handler flag */ | 964 | __volatile__ long interrupt_flag; /**< Interruption handler flag */ |
974 | __volatile__ long dma_flag; /**< DMA dispatch flag */ | 965 | __volatile__ long dma_flag; /**< DMA dispatch flag */ |
975 | struct timer_list timer; /**< Timer for delaying ctx switch */ | ||
976 | wait_queue_head_t context_wait; /**< Processes waiting on ctx switch */ | 966 | wait_queue_head_t context_wait; /**< Processes waiting on ctx switch */ |
977 | int last_checked; /**< Last context checked for DMA */ | 967 | int last_checked; /**< Last context checked for DMA */ |
978 | int last_context; /**< Last current context */ | 968 | int last_context; /**< Last current context */ |
@@ -1045,25 +1035,12 @@ struct drm_device { | |||
1045 | struct drm_minor *control; /**< Control node for card */ | 1035 | struct drm_minor *control; /**< Control node for card */ |
1046 | struct drm_minor *primary; /**< render type primary screen head */ | 1036 | struct drm_minor *primary; /**< render type primary screen head */ |
1047 | 1037 | ||
1048 | /** \name Drawable information */ | ||
1049 | /*@{ */ | ||
1050 | spinlock_t drw_lock; | ||
1051 | struct idr drw_idr; | ||
1052 | /*@} */ | ||
1053 | |||
1054 | struct drm_mode_config mode_config; /**< Current mode config */ | 1038 | struct drm_mode_config mode_config; /**< Current mode config */ |
1055 | 1039 | ||
1056 | /** \name GEM information */ | 1040 | /** \name GEM information */ |
1057 | /*@{ */ | 1041 | /*@{ */ |
1058 | spinlock_t object_name_lock; | 1042 | spinlock_t object_name_lock; |
1059 | struct idr object_name_idr; | 1043 | struct idr object_name_idr; |
1060 | atomic_t object_count; | ||
1061 | atomic_t object_memory; | ||
1062 | atomic_t pin_count; | ||
1063 | atomic_t pin_memory; | ||
1064 | atomic_t gtt_count; | ||
1065 | atomic_t gtt_memory; | ||
1066 | uint32_t gtt_total; | ||
1067 | uint32_t invalidate_domains; /* domains pending invalidation */ | 1044 | uint32_t invalidate_domains; /* domains pending invalidation */ |
1068 | uint32_t flush_domains; /* domains pending flush */ | 1045 | uint32_t flush_domains; /* domains pending flush */ |
1069 | /*@} */ | 1046 | /*@} */ |
@@ -1175,8 +1152,6 @@ extern int drm_mmap(struct file *filp, struct vm_area_struct *vma); | |||
1175 | extern int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma); | 1152 | extern int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma); |
1176 | extern void drm_vm_open_locked(struct vm_area_struct *vma); | 1153 | extern void drm_vm_open_locked(struct vm_area_struct *vma); |
1177 | extern void drm_vm_close_locked(struct vm_area_struct *vma); | 1154 | extern void drm_vm_close_locked(struct vm_area_struct *vma); |
1178 | extern resource_size_t drm_core_get_map_ofs(struct drm_local_map * map); | ||
1179 | extern resource_size_t drm_core_get_reg_ofs(struct drm_device *dev); | ||
1180 | extern unsigned int drm_poll(struct file *filp, struct poll_table_struct *wait); | 1155 | extern unsigned int drm_poll(struct file *filp, struct poll_table_struct *wait); |
1181 | 1156 | ||
1182 | /* Memory management support (drm_memory.h) */ | 1157 | /* Memory management support (drm_memory.h) */ |
@@ -1186,8 +1161,7 @@ extern int drm_mem_info(char *buf, char **start, off_t offset, | |||
1186 | int request, int *eof, void *data); | 1161 | int request, int *eof, void *data); |
1187 | extern void *drm_realloc(void *oldpt, size_t oldsize, size_t size, int area); | 1162 | extern void *drm_realloc(void *oldpt, size_t oldsize, size_t size, int area); |
1188 | 1163 | ||
1189 | extern DRM_AGP_MEM *drm_alloc_agp(struct drm_device *dev, int pages, u32 type); | 1164 | extern void drm_free_agp(DRM_AGP_MEM * handle, int pages); |
1190 | extern int drm_free_agp(DRM_AGP_MEM * handle, int pages); | ||
1191 | extern int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start); | 1165 | extern int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start); |
1192 | extern DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev, | 1166 | extern DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev, |
1193 | struct page **pages, | 1167 | struct page **pages, |
@@ -1239,17 +1213,6 @@ extern int drm_setsareactx(struct drm_device *dev, void *data, | |||
1239 | extern int drm_getsareactx(struct drm_device *dev, void *data, | 1213 | extern int drm_getsareactx(struct drm_device *dev, void *data, |
1240 | struct drm_file *file_priv); | 1214 | struct drm_file *file_priv); |
1241 | 1215 | ||
1242 | /* Drawable IOCTL support (drm_drawable.h) */ | ||
1243 | extern int drm_adddraw(struct drm_device *dev, void *data, | ||
1244 | struct drm_file *file_priv); | ||
1245 | extern int drm_rmdraw(struct drm_device *dev, void *data, | ||
1246 | struct drm_file *file_priv); | ||
1247 | extern int drm_update_drawable_info(struct drm_device *dev, void *data, | ||
1248 | struct drm_file *file_priv); | ||
1249 | extern struct drm_drawable_info *drm_get_drawable_info(struct drm_device *dev, | ||
1250 | drm_drawable_t id); | ||
1251 | extern void drm_drawable_free_all(struct drm_device *dev); | ||
1252 | |||
1253 | /* Authentication IOCTL support (drm_auth.h) */ | 1216 | /* Authentication IOCTL support (drm_auth.h) */ |
1254 | extern int drm_getmagic(struct drm_device *dev, void *data, | 1217 | extern int drm_getmagic(struct drm_device *dev, void *data, |
1255 | struct drm_file *file_priv); | 1218 | struct drm_file *file_priv); |
@@ -1264,7 +1227,6 @@ extern int drm_lock(struct drm_device *dev, void *data, | |||
1264 | struct drm_file *file_priv); | 1227 | struct drm_file *file_priv); |
1265 | extern int drm_unlock(struct drm_device *dev, void *data, | 1228 | extern int drm_unlock(struct drm_device *dev, void *data, |
1266 | struct drm_file *file_priv); | 1229 | struct drm_file *file_priv); |
1267 | extern int drm_lock_take(struct drm_lock_data *lock_data, unsigned int context); | ||
1268 | extern int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context); | 1230 | extern int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context); |
1269 | extern void drm_idlelock_take(struct drm_lock_data *lock_data); | 1231 | extern void drm_idlelock_take(struct drm_lock_data *lock_data); |
1270 | extern void drm_idlelock_release(struct drm_lock_data *lock_data); | 1232 | extern void drm_idlelock_release(struct drm_lock_data *lock_data); |
@@ -1359,10 +1321,6 @@ extern int drm_agp_unbind_ioctl(struct drm_device *dev, void *data, | |||
1359 | extern int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request); | 1321 | extern int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request); |
1360 | extern int drm_agp_bind_ioctl(struct drm_device *dev, void *data, | 1322 | extern int drm_agp_bind_ioctl(struct drm_device *dev, void *data, |
1361 | struct drm_file *file_priv); | 1323 | struct drm_file *file_priv); |
1362 | extern DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data *bridge, size_t pages, u32 type); | ||
1363 | extern int drm_agp_free_memory(DRM_AGP_MEM * handle); | ||
1364 | extern int drm_agp_bind_memory(DRM_AGP_MEM * handle, off_t start); | ||
1365 | extern int drm_agp_unbind_memory(DRM_AGP_MEM * handle); | ||
1366 | extern void drm_agp_chipset_flush(struct drm_device *dev); | 1324 | extern void drm_agp_chipset_flush(struct drm_device *dev); |
1367 | 1325 | ||
1368 | /* Stub support (drm_stub.h) */ | 1326 | /* Stub support (drm_stub.h) */ |
@@ -1414,7 +1372,6 @@ extern int drm_bufs_info(struct seq_file *m, void *data); | |||
1414 | extern int drm_vblank_info(struct seq_file *m, void *data); | 1372 | extern int drm_vblank_info(struct seq_file *m, void *data); |
1415 | extern int drm_clients_info(struct seq_file *m, void* data); | 1373 | extern int drm_clients_info(struct seq_file *m, void* data); |
1416 | extern int drm_gem_name_info(struct seq_file *m, void *data); | 1374 | extern int drm_gem_name_info(struct seq_file *m, void *data); |
1417 | extern int drm_gem_object_info(struct seq_file *m, void* data); | ||
1418 | 1375 | ||
1419 | #if DRM_DEBUG_CODE | 1376 | #if DRM_DEBUG_CODE |
1420 | extern int drm_vma_info(struct seq_file *m, void *data); | 1377 | extern int drm_vma_info(struct seq_file *m, void *data); |
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 3e5a51af757c..029aa688e787 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h | |||
@@ -221,7 +221,8 @@ struct drm_framebuffer_funcs { | |||
221 | * the semantics and arguments have a one to one mapping | 221 | * the semantics and arguments have a one to one mapping |
222 | * on this function. | 222 | * on this function. |
223 | */ | 223 | */ |
224 | int (*dirty)(struct drm_framebuffer *framebuffer, unsigned flags, | 224 | int (*dirty)(struct drm_framebuffer *framebuffer, |
225 | struct drm_file *file_priv, unsigned flags, | ||
225 | unsigned color, struct drm_clip_rect *clips, | 226 | unsigned color, struct drm_clip_rect *clips, |
226 | unsigned num_clips); | 227 | unsigned num_clips); |
227 | }; | 228 | }; |
@@ -762,6 +763,7 @@ extern int drm_mode_gamma_get_ioctl(struct drm_device *dev, | |||
762 | extern int drm_mode_gamma_set_ioctl(struct drm_device *dev, | 763 | extern int drm_mode_gamma_set_ioctl(struct drm_device *dev, |
763 | void *data, struct drm_file *file_priv); | 764 | void *data, struct drm_file *file_priv); |
764 | extern bool drm_detect_hdmi_monitor(struct edid *edid); | 765 | extern bool drm_detect_hdmi_monitor(struct edid *edid); |
766 | extern bool drm_detect_monitor_audio(struct edid *edid); | ||
765 | extern int drm_mode_page_flip_ioctl(struct drm_device *dev, | 767 | extern int drm_mode_page_flip_ioctl(struct drm_device *dev, |
766 | void *data, struct drm_file *file_priv); | 768 | void *data, struct drm_file *file_priv); |
767 | extern struct drm_display_mode *drm_cvt_mode(struct drm_device *dev, | 769 | extern struct drm_display_mode *drm_cvt_mode(struct drm_device *dev, |
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h index 59b7073b13fe..73b071203dcc 100644 --- a/include/drm/drm_crtc_helper.h +++ b/include/drm/drm_crtc_helper.h | |||
@@ -39,6 +39,11 @@ | |||
39 | 39 | ||
40 | #include <linux/fb.h> | 40 | #include <linux/fb.h> |
41 | 41 | ||
42 | enum mode_set_atomic { | ||
43 | LEAVE_ATOMIC_MODE_SET, | ||
44 | ENTER_ATOMIC_MODE_SET, | ||
45 | }; | ||
46 | |||
42 | struct drm_crtc_helper_funcs { | 47 | struct drm_crtc_helper_funcs { |
43 | /* | 48 | /* |
44 | * Control power levels on the CRTC. If the mode passed in is | 49 | * Control power levels on the CRTC. If the mode passed in is |
@@ -61,7 +66,8 @@ struct drm_crtc_helper_funcs { | |||
61 | int (*mode_set_base)(struct drm_crtc *crtc, int x, int y, | 66 | int (*mode_set_base)(struct drm_crtc *crtc, int x, int y, |
62 | struct drm_framebuffer *old_fb); | 67 | struct drm_framebuffer *old_fb); |
63 | int (*mode_set_base_atomic)(struct drm_crtc *crtc, | 68 | int (*mode_set_base_atomic)(struct drm_crtc *crtc, |
64 | struct drm_framebuffer *fb, int x, int y); | 69 | struct drm_framebuffer *fb, int x, int y, |
70 | enum mode_set_atomic); | ||
65 | 71 | ||
66 | /* reload the current crtc LUT */ | 72 | /* reload the current crtc LUT */ |
67 | void (*load_lut)(struct drm_crtc *crtc); | 73 | void (*load_lut)(struct drm_crtc *crtc); |
diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h index a49e791db0b0..83a389e44543 100644 --- a/include/drm/drm_dp_helper.h +++ b/include/drm/drm_dp_helper.h | |||
@@ -23,6 +23,9 @@ | |||
23 | #ifndef _DRM_DP_HELPER_H_ | 23 | #ifndef _DRM_DP_HELPER_H_ |
24 | #define _DRM_DP_HELPER_H_ | 24 | #define _DRM_DP_HELPER_H_ |
25 | 25 | ||
26 | #include <linux/types.h> | ||
27 | #include <linux/i2c.h> | ||
28 | |||
26 | /* From the VESA DisplayPort spec */ | 29 | /* From the VESA DisplayPort spec */ |
27 | 30 | ||
28 | #define AUX_NATIVE_WRITE 0x8 | 31 | #define AUX_NATIVE_WRITE 0x8 |
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h index e41c74facb6a..8c641bed9bbd 100644 --- a/include/drm/i915_drm.h +++ b/include/drm/i915_drm.h | |||
@@ -286,6 +286,7 @@ typedef struct drm_i915_irq_wait { | |||
286 | #define I915_PARAM_HAS_PAGEFLIPPING 8 | 286 | #define I915_PARAM_HAS_PAGEFLIPPING 8 |
287 | #define I915_PARAM_HAS_EXECBUF2 9 | 287 | #define I915_PARAM_HAS_EXECBUF2 9 |
288 | #define I915_PARAM_HAS_BSD 10 | 288 | #define I915_PARAM_HAS_BSD 10 |
289 | #define I915_PARAM_HAS_BLT 11 | ||
289 | 290 | ||
290 | typedef struct drm_i915_getparam { | 291 | typedef struct drm_i915_getparam { |
291 | int param; | 292 | int param; |
@@ -627,8 +628,11 @@ struct drm_i915_gem_execbuffer2 { | |||
627 | __u32 num_cliprects; | 628 | __u32 num_cliprects; |
628 | /** This is a struct drm_clip_rect *cliprects */ | 629 | /** This is a struct drm_clip_rect *cliprects */ |
629 | __u64 cliprects_ptr; | 630 | __u64 cliprects_ptr; |
631 | #define I915_EXEC_RING_MASK (7<<0) | ||
632 | #define I915_EXEC_DEFAULT (0<<0) | ||
630 | #define I915_EXEC_RENDER (1<<0) | 633 | #define I915_EXEC_RENDER (1<<0) |
631 | #define I915_EXEC_BSD (1<<1) | 634 | #define I915_EXEC_BSD (2<<0) |
635 | #define I915_EXEC_BLT (3<<0) | ||
632 | __u64 flags; | 636 | __u64 flags; |
633 | __u64 rsvd1; | 637 | __u64 rsvd1; |
634 | __u64 rsvd2; | 638 | __u64 rsvd2; |
diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h new file mode 100644 index 000000000000..d3c81946f613 --- /dev/null +++ b/include/drm/intel-gtt.h | |||
@@ -0,0 +1,18 @@ | |||
1 | /* Common header for intel-gtt.ko and i915.ko */ | ||
2 | |||
3 | #ifndef _DRM_INTEL_GTT_H | ||
4 | #define _DRM_INTEL_GTT_H | ||
5 | struct intel_gtt { | ||
6 | /* Number of stolen gtt entries at the beginning. */ | ||
7 | unsigned int gtt_stolen_entries; | ||
8 | /* Total number of gtt entries. */ | ||
9 | unsigned int gtt_total_entries; | ||
10 | /* Part of the gtt that is mappable by the cpu, for those chips where | ||
11 | * this is not the full gtt. */ | ||
12 | unsigned int gtt_mappable_entries; | ||
13 | }; | ||
14 | |||
15 | struct intel_gtt *intel_gtt_get(void); | ||
16 | |||
17 | #endif | ||
18 | |||
diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h index 2040e6c4f172..5afa5b52063e 100644 --- a/include/drm/ttm/ttm_bo_api.h +++ b/include/drm/ttm/ttm_bo_api.h | |||
@@ -102,7 +102,8 @@ struct ttm_bus_placement { | |||
102 | */ | 102 | */ |
103 | 103 | ||
104 | struct ttm_mem_reg { | 104 | struct ttm_mem_reg { |
105 | struct drm_mm_node *mm_node; | 105 | void *mm_node; |
106 | unsigned long start; | ||
106 | unsigned long size; | 107 | unsigned long size; |
107 | unsigned long num_pages; | 108 | unsigned long num_pages; |
108 | uint32_t page_alignment; | 109 | uint32_t page_alignment; |
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h index b87504235f18..d01b4ddbdc56 100644 --- a/include/drm/ttm/ttm_bo_driver.h +++ b/include/drm/ttm/ttm_bo_driver.h | |||
@@ -203,7 +203,22 @@ struct ttm_tt { | |||
203 | * It's set up by the ttm_bo_driver::init_mem_type method. | 203 | * It's set up by the ttm_bo_driver::init_mem_type method. |
204 | */ | 204 | */ |
205 | 205 | ||
206 | struct ttm_mem_type_manager; | ||
207 | |||
208 | struct ttm_mem_type_manager_func { | ||
209 | int (*init)(struct ttm_mem_type_manager *man, unsigned long p_size); | ||
210 | int (*takedown)(struct ttm_mem_type_manager *man); | ||
211 | int (*get_node)(struct ttm_mem_type_manager *man, | ||
212 | struct ttm_buffer_object *bo, | ||
213 | struct ttm_placement *placement, | ||
214 | struct ttm_mem_reg *mem); | ||
215 | void (*put_node)(struct ttm_mem_type_manager *man, | ||
216 | struct ttm_mem_reg *mem); | ||
217 | void (*debug)(struct ttm_mem_type_manager *man, const char *prefix); | ||
218 | }; | ||
219 | |||
206 | struct ttm_mem_type_manager { | 220 | struct ttm_mem_type_manager { |
221 | struct ttm_bo_device *bdev; | ||
207 | 222 | ||
208 | /* | 223 | /* |
209 | * No protection. Constant from start. | 224 | * No protection. Constant from start. |
@@ -222,8 +237,8 @@ struct ttm_mem_type_manager { | |||
222 | * TODO: Consider one lru_lock per ttm_mem_type_manager. | 237 | * TODO: Consider one lru_lock per ttm_mem_type_manager. |
223 | * Plays ill with list removal, though. | 238 | * Plays ill with list removal, though. |
224 | */ | 239 | */ |
225 | 240 | const struct ttm_mem_type_manager_func *func; | |
226 | struct drm_mm manager; | 241 | void *priv; |
227 | struct list_head lru; | 242 | struct list_head lru; |
228 | }; | 243 | }; |
229 | 244 | ||
@@ -649,6 +664,12 @@ extern int ttm_bo_mem_space(struct ttm_buffer_object *bo, | |||
649 | struct ttm_mem_reg *mem, | 664 | struct ttm_mem_reg *mem, |
650 | bool interruptible, | 665 | bool interruptible, |
651 | bool no_wait_reserve, bool no_wait_gpu); | 666 | bool no_wait_reserve, bool no_wait_gpu); |
667 | |||
668 | extern void ttm_bo_mem_put(struct ttm_buffer_object *bo, | ||
669 | struct ttm_mem_reg *mem); | ||
670 | extern void ttm_bo_mem_put_locked(struct ttm_buffer_object *bo, | ||
671 | struct ttm_mem_reg *mem); | ||
672 | |||
652 | /** | 673 | /** |
653 | * ttm_bo_wait_for_cpu | 674 | * ttm_bo_wait_for_cpu |
654 | * | 675 | * |
@@ -891,6 +912,8 @@ extern int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo, | |||
891 | */ | 912 | */ |
892 | extern pgprot_t ttm_io_prot(uint32_t caching_flags, pgprot_t tmp); | 913 | extern pgprot_t ttm_io_prot(uint32_t caching_flags, pgprot_t tmp); |
893 | 914 | ||
915 | extern const struct ttm_mem_type_manager_func ttm_bo_manager_func; | ||
916 | |||
894 | #if (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE))) | 917 | #if (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE))) |
895 | #define TTM_HAS_AGP | 918 | #define TTM_HAS_AGP |
896 | #include <linux/agp_backend.h> | 919 | #include <linux/agp_backend.h> |
diff --git a/include/drm/vmwgfx_drm.h b/include/drm/vmwgfx_drm.h index 4d0842391edc..650e6bf6f69f 100644 --- a/include/drm/vmwgfx_drm.h +++ b/include/drm/vmwgfx_drm.h | |||
@@ -72,6 +72,7 @@ | |||
72 | #define DRM_VMW_PARAM_FIFO_OFFSET 3 | 72 | #define DRM_VMW_PARAM_FIFO_OFFSET 3 |
73 | #define DRM_VMW_PARAM_HW_CAPS 4 | 73 | #define DRM_VMW_PARAM_HW_CAPS 4 |
74 | #define DRM_VMW_PARAM_FIFO_CAPS 5 | 74 | #define DRM_VMW_PARAM_FIFO_CAPS 5 |
75 | #define DRM_VMW_PARAM_MAX_FB_SIZE 6 | ||
75 | 76 | ||
76 | /** | 77 | /** |
77 | * struct drm_vmw_getparam_arg | 78 | * struct drm_vmw_getparam_arg |