diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 84 |
1 files changed, 43 insertions, 41 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index dc371d987aa7..22d6388b331f 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -32,7 +32,6 @@ | |||
32 | 32 | ||
33 | #include "i915_reg.h" | 33 | #include "i915_reg.h" |
34 | #include "intel_bios.h" | 34 | #include "intel_bios.h" |
35 | #include "i915_trace.h" | ||
36 | #include "intel_ringbuffer.h" | 35 | #include "intel_ringbuffer.h" |
37 | #include <linux/io-mapping.h> | 36 | #include <linux/io-mapping.h> |
38 | #include <linux/i2c.h> | 37 | #include <linux/i2c.h> |
@@ -90,7 +89,7 @@ struct drm_i915_gem_phys_object { | |||
90 | int id; | 89 | int id; |
91 | struct page **page_list; | 90 | struct page **page_list; |
92 | drm_dma_handle_t *handle; | 91 | drm_dma_handle_t *handle; |
93 | struct drm_gem_object *cur_obj; | 92 | struct drm_i915_gem_object *cur_obj; |
94 | }; | 93 | }; |
95 | 94 | ||
96 | struct mem_block { | 95 | struct mem_block { |
@@ -125,7 +124,7 @@ struct drm_i915_master_private { | |||
125 | #define I915_FENCE_REG_NONE -1 | 124 | #define I915_FENCE_REG_NONE -1 |
126 | 125 | ||
127 | struct drm_i915_fence_reg { | 126 | struct drm_i915_fence_reg { |
128 | struct drm_gem_object *obj; | 127 | struct drm_i915_gem_object *obj; |
129 | struct list_head lru_list; | 128 | struct list_head lru_list; |
130 | bool gpu; | 129 | bool gpu; |
131 | }; | 130 | }; |
@@ -280,9 +279,9 @@ typedef struct drm_i915_private { | |||
280 | uint32_t counter; | 279 | uint32_t counter; |
281 | unsigned int seqno_gfx_addr; | 280 | unsigned int seqno_gfx_addr; |
282 | drm_local_map_t hws_map; | 281 | drm_local_map_t hws_map; |
283 | struct drm_gem_object *seqno_obj; | 282 | struct drm_i915_gem_object *seqno_obj; |
284 | struct drm_gem_object *pwrctx; | 283 | struct drm_i915_gem_object *pwrctx; |
285 | struct drm_gem_object *renderctx; | 284 | struct drm_i915_gem_object *renderctx; |
286 | 285 | ||
287 | struct resource mch_res; | 286 | struct resource mch_res; |
288 | 287 | ||
@@ -690,14 +689,14 @@ typedef struct drm_i915_private { | |||
690 | u8 fmax; | 689 | u8 fmax; |
691 | u8 fstart; | 690 | u8 fstart; |
692 | 691 | ||
693 | u64 last_count1; | 692 | u64 last_count1; |
694 | unsigned long last_time1; | 693 | unsigned long last_time1; |
695 | u64 last_count2; | 694 | u64 last_count2; |
696 | struct timespec last_time2; | 695 | struct timespec last_time2; |
697 | unsigned long gfx_power; | 696 | unsigned long gfx_power; |
698 | int c_m; | 697 | int c_m; |
699 | int r_t; | 698 | int r_t; |
700 | u8 corr; | 699 | u8 corr; |
701 | spinlock_t *mchdev_lock; | 700 | spinlock_t *mchdev_lock; |
702 | 701 | ||
703 | enum no_fbc_reason no_fbc_reason; | 702 | enum no_fbc_reason no_fbc_reason; |
@@ -711,7 +710,6 @@ typedef struct drm_i915_private { | |||
711 | struct intel_fbdev *fbdev; | 710 | struct intel_fbdev *fbdev; |
712 | } drm_i915_private_t; | 711 | } drm_i915_private_t; |
713 | 712 | ||
714 | /** driver private structure attached to each drm_gem_object */ | ||
715 | struct drm_i915_gem_object { | 713 | struct drm_i915_gem_object { |
716 | struct drm_gem_object base; | 714 | struct drm_gem_object base; |
717 | 715 | ||
@@ -918,7 +916,7 @@ enum intel_chip_family { | |||
918 | #define HAS_BLT(dev) (INTEL_INFO(dev)->has_blt_ring) | 916 | #define HAS_BLT(dev) (INTEL_INFO(dev)->has_blt_ring) |
919 | #define I915_NEED_GFX_HWS(dev) (INTEL_INFO(dev)->need_gfx_hws) | 917 | #define I915_NEED_GFX_HWS(dev) (INTEL_INFO(dev)->need_gfx_hws) |
920 | 918 | ||
921 | #define HAS_OVERLAY(dev) (INTEL_INFO(dev)->has_overlay) | 919 | #define HAS_OVERLAY(dev) (INTEL_INFO(dev)->has_overlay) |
922 | #define OVERLAY_NEEDS_PHYSICAL(dev) (INTEL_INFO(dev)->overlay_needs_physical) | 920 | #define OVERLAY_NEEDS_PHYSICAL(dev) (INTEL_INFO(dev)->overlay_needs_physical) |
923 | 921 | ||
924 | /* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte | 922 | /* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte |
@@ -947,6 +945,8 @@ enum intel_chip_family { | |||
947 | #define HAS_PCH_CPT(dev) (INTEL_PCH_TYPE(dev) == PCH_CPT) | 945 | #define HAS_PCH_CPT(dev) (INTEL_PCH_TYPE(dev) == PCH_CPT) |
948 | #define HAS_PCH_IBX(dev) (INTEL_PCH_TYPE(dev) == PCH_IBX) | 946 | #define HAS_PCH_IBX(dev) (INTEL_PCH_TYPE(dev) == PCH_IBX) |
949 | 947 | ||
948 | #include "i915_trace.h" | ||
949 | |||
950 | extern struct drm_ioctl_desc i915_ioctls[]; | 950 | extern struct drm_ioctl_desc i915_ioctls[]; |
951 | extern int i915_max_ioctl; | 951 | extern int i915_max_ioctl; |
952 | extern unsigned int i915_fbpercrtc; | 952 | extern unsigned int i915_fbpercrtc; |
@@ -1085,14 +1085,15 @@ int i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data, | |||
1085 | struct drm_file *file_priv); | 1085 | struct drm_file *file_priv); |
1086 | void i915_gem_load(struct drm_device *dev); | 1086 | void i915_gem_load(struct drm_device *dev); |
1087 | int i915_gem_init_object(struct drm_gem_object *obj); | 1087 | int i915_gem_init_object(struct drm_gem_object *obj); |
1088 | struct drm_gem_object * i915_gem_alloc_object(struct drm_device *dev, | 1088 | struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev, |
1089 | size_t size); | 1089 | size_t size); |
1090 | void i915_gem_free_object(struct drm_gem_object *obj); | 1090 | void i915_gem_free_object(struct drm_gem_object *obj); |
1091 | int i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment, | 1091 | int i915_gem_object_pin(struct drm_i915_gem_object *obj, |
1092 | uint32_t alignment, | ||
1092 | bool map_and_fenceable); | 1093 | bool map_and_fenceable); |
1093 | void i915_gem_object_unpin(struct drm_gem_object *obj); | 1094 | void i915_gem_object_unpin(struct drm_i915_gem_object *obj); |
1094 | int i915_gem_object_unbind(struct drm_gem_object *obj); | 1095 | int i915_gem_object_unbind(struct drm_i915_gem_object *obj); |
1095 | void i915_gem_release_mmap(struct drm_gem_object *obj); | 1096 | void i915_gem_release_mmap(struct drm_i915_gem_object *obj); |
1096 | void i915_gem_lastclose(struct drm_device *dev); | 1097 | void i915_gem_lastclose(struct drm_device *dev); |
1097 | 1098 | ||
1098 | /** | 1099 | /** |
@@ -1104,14 +1105,14 @@ i915_seqno_passed(uint32_t seq1, uint32_t seq2) | |||
1104 | return (int32_t)(seq1 - seq2) >= 0; | 1105 | return (int32_t)(seq1 - seq2) >= 0; |
1105 | } | 1106 | } |
1106 | 1107 | ||
1107 | int i915_gem_object_get_fence_reg(struct drm_gem_object *obj, | 1108 | int i915_gem_object_get_fence_reg(struct drm_i915_gem_object *obj, |
1108 | bool interruptible); | 1109 | bool interruptible); |
1109 | int i915_gem_object_put_fence_reg(struct drm_gem_object *obj, | 1110 | int i915_gem_object_put_fence_reg(struct drm_i915_gem_object *obj, |
1110 | bool interruptible); | 1111 | bool interruptible); |
1111 | void i915_gem_retire_requests(struct drm_device *dev); | 1112 | void i915_gem_retire_requests(struct drm_device *dev); |
1112 | void i915_gem_reset(struct drm_device *dev); | 1113 | void i915_gem_reset(struct drm_device *dev); |
1113 | void i915_gem_clflush_object(struct drm_gem_object *obj); | 1114 | void i915_gem_clflush_object(struct drm_i915_gem_object *obj); |
1114 | int i915_gem_object_set_domain(struct drm_gem_object *obj, | 1115 | int i915_gem_object_set_domain(struct drm_i915_gem_object *obj, |
1115 | uint32_t read_domains, | 1116 | uint32_t read_domains, |
1116 | uint32_t write_domain); | 1117 | uint32_t write_domain); |
1117 | int i915_gem_object_flush_gpu(struct drm_i915_gem_object *obj, | 1118 | int i915_gem_object_flush_gpu(struct drm_i915_gem_object *obj, |
@@ -1131,23 +1132,23 @@ int i915_do_wait_request(struct drm_device *dev, | |||
1131 | bool interruptible, | 1132 | bool interruptible, |
1132 | struct intel_ring_buffer *ring); | 1133 | struct intel_ring_buffer *ring); |
1133 | int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf); | 1134 | int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf); |
1134 | int i915_gem_object_set_to_gtt_domain(struct drm_gem_object *obj, | 1135 | int i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, |
1135 | int write); | 1136 | int write); |
1136 | int i915_gem_object_set_to_display_plane(struct drm_gem_object *obj, | 1137 | int i915_gem_object_set_to_display_plane(struct drm_i915_gem_object *obj, |
1137 | bool pipelined); | 1138 | bool pipelined); |
1138 | int i915_gem_attach_phys_object(struct drm_device *dev, | 1139 | int i915_gem_attach_phys_object(struct drm_device *dev, |
1139 | struct drm_gem_object *obj, | 1140 | struct drm_i915_gem_object *obj, |
1140 | int id, | 1141 | int id, |
1141 | int align); | 1142 | int align); |
1142 | void i915_gem_detach_phys_object(struct drm_device *dev, | 1143 | void i915_gem_detach_phys_object(struct drm_device *dev, |
1143 | struct drm_gem_object *obj); | 1144 | struct drm_i915_gem_object *obj); |
1144 | void i915_gem_free_all_phys_object(struct drm_device *dev); | 1145 | void i915_gem_free_all_phys_object(struct drm_device *dev); |
1145 | void i915_gem_release(struct drm_device * dev, struct drm_file *file_priv); | 1146 | void i915_gem_release(struct drm_device *dev, struct drm_file *file); |
1146 | 1147 | ||
1147 | /* i915_gem_gtt.c */ | 1148 | /* i915_gem_gtt.c */ |
1148 | void i915_gem_restore_gtt_mappings(struct drm_device *dev); | 1149 | void i915_gem_restore_gtt_mappings(struct drm_device *dev); |
1149 | int i915_gem_gtt_bind_object(struct drm_gem_object *obj); | 1150 | int i915_gem_gtt_bind_object(struct drm_i915_gem_object *obj); |
1150 | void i915_gem_gtt_unbind_object(struct drm_gem_object *obj); | 1151 | void i915_gem_gtt_unbind_object(struct drm_i915_gem_object *obj); |
1151 | 1152 | ||
1152 | /* i915_gem_evict.c */ | 1153 | /* i915_gem_evict.c */ |
1153 | int i915_gem_evict_something(struct drm_device *dev, int min_size, | 1154 | int i915_gem_evict_something(struct drm_device *dev, int min_size, |
@@ -1157,19 +1158,20 @@ int i915_gem_evict_inactive(struct drm_device *dev, bool purgeable_only); | |||
1157 | 1158 | ||
1158 | /* i915_gem_tiling.c */ | 1159 | /* i915_gem_tiling.c */ |
1159 | void i915_gem_detect_bit_6_swizzle(struct drm_device *dev); | 1160 | void i915_gem_detect_bit_6_swizzle(struct drm_device *dev); |
1160 | void i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj); | 1161 | void i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj); |
1161 | void i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj); | 1162 | void i915_gem_object_save_bit_17_swizzle(struct drm_i915_gem_object *obj); |
1162 | 1163 | ||
1163 | /* i915_gem_debug.c */ | 1164 | /* i915_gem_debug.c */ |
1164 | void i915_gem_dump_object(struct drm_gem_object *obj, int len, | 1165 | void i915_gem_dump_object(struct drm_i915_gem_object *obj, int len, |
1165 | const char *where, uint32_t mark); | 1166 | const char *where, uint32_t mark); |
1166 | #if WATCH_LISTS | 1167 | #if WATCH_LISTS |
1167 | int i915_verify_lists(struct drm_device *dev); | 1168 | int i915_verify_lists(struct drm_device *dev); |
1168 | #else | 1169 | #else |
1169 | #define i915_verify_lists(dev) 0 | 1170 | #define i915_verify_lists(dev) 0 |
1170 | #endif | 1171 | #endif |
1171 | void i915_gem_object_check_coherency(struct drm_gem_object *obj, int handle); | 1172 | void i915_gem_object_check_coherency(struct drm_i915_gem_object *obj, |
1172 | void i915_gem_dump_object(struct drm_gem_object *obj, int len, | 1173 | int handle); |
1174 | void i915_gem_dump_object(struct drm_i915_gem_object *obj, int len, | ||
1173 | const char *where, uint32_t mark); | 1175 | const char *where, uint32_t mark); |
1174 | 1176 | ||
1175 | /* i915_debugfs.c */ | 1177 | /* i915_debugfs.c */ |
@@ -1251,10 +1253,10 @@ extern void intel_display_print_error_state(struct seq_file *m, | |||
1251 | * In that case, we don't need to do it when GEM is initialized as nobody else | 1253 | * In that case, we don't need to do it when GEM is initialized as nobody else |
1252 | * has access to the ring. | 1254 | * has access to the ring. |
1253 | */ | 1255 | */ |
1254 | #define RING_LOCK_TEST_WITH_RETURN(dev, file_priv) do { \ | 1256 | #define RING_LOCK_TEST_WITH_RETURN(dev, file) do { \ |
1255 | if (((drm_i915_private_t *)dev->dev_private)->render_ring.gem_object \ | 1257 | if (((drm_i915_private_t *)dev->dev_private)->render_ring.obj \ |
1256 | == NULL) \ | 1258 | == NULL) \ |
1257 | LOCK_TEST_WITH_RETURN(dev, file_priv); \ | 1259 | LOCK_TEST_WITH_RETURN(dev, file); \ |
1258 | } while (0) | 1260 | } while (0) |
1259 | 1261 | ||
1260 | 1262 | ||