aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_drv.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h84
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
96struct mem_block { 95struct 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
127struct drm_i915_fence_reg { 126struct 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 */
715struct drm_i915_gem_object { 713struct 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
950extern struct drm_ioctl_desc i915_ioctls[]; 950extern struct drm_ioctl_desc i915_ioctls[];
951extern int i915_max_ioctl; 951extern int i915_max_ioctl;
952extern unsigned int i915_fbpercrtc; 952extern 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);
1086void i915_gem_load(struct drm_device *dev); 1086void i915_gem_load(struct drm_device *dev);
1087int i915_gem_init_object(struct drm_gem_object *obj); 1087int i915_gem_init_object(struct drm_gem_object *obj);
1088struct drm_gem_object * i915_gem_alloc_object(struct drm_device *dev, 1088struct drm_i915_gem_object *i915_gem_alloc_object(struct drm_device *dev,
1089 size_t size); 1089 size_t size);
1090void i915_gem_free_object(struct drm_gem_object *obj); 1090void i915_gem_free_object(struct drm_gem_object *obj);
1091int i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment, 1091int i915_gem_object_pin(struct drm_i915_gem_object *obj,
1092 uint32_t alignment,
1092 bool map_and_fenceable); 1093 bool map_and_fenceable);
1093void i915_gem_object_unpin(struct drm_gem_object *obj); 1094void i915_gem_object_unpin(struct drm_i915_gem_object *obj);
1094int i915_gem_object_unbind(struct drm_gem_object *obj); 1095int i915_gem_object_unbind(struct drm_i915_gem_object *obj);
1095void i915_gem_release_mmap(struct drm_gem_object *obj); 1096void i915_gem_release_mmap(struct drm_i915_gem_object *obj);
1096void i915_gem_lastclose(struct drm_device *dev); 1097void 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
1107int i915_gem_object_get_fence_reg(struct drm_gem_object *obj, 1108int i915_gem_object_get_fence_reg(struct drm_i915_gem_object *obj,
1108 bool interruptible); 1109 bool interruptible);
1109int i915_gem_object_put_fence_reg(struct drm_gem_object *obj, 1110int i915_gem_object_put_fence_reg(struct drm_i915_gem_object *obj,
1110 bool interruptible); 1111 bool interruptible);
1111void i915_gem_retire_requests(struct drm_device *dev); 1112void i915_gem_retire_requests(struct drm_device *dev);
1112void i915_gem_reset(struct drm_device *dev); 1113void i915_gem_reset(struct drm_device *dev);
1113void i915_gem_clflush_object(struct drm_gem_object *obj); 1114void i915_gem_clflush_object(struct drm_i915_gem_object *obj);
1114int i915_gem_object_set_domain(struct drm_gem_object *obj, 1115int 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);
1117int i915_gem_object_flush_gpu(struct drm_i915_gem_object *obj, 1118int 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);
1133int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf); 1134int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
1134int i915_gem_object_set_to_gtt_domain(struct drm_gem_object *obj, 1135int i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj,
1135 int write); 1136 int write);
1136int i915_gem_object_set_to_display_plane(struct drm_gem_object *obj, 1137int i915_gem_object_set_to_display_plane(struct drm_i915_gem_object *obj,
1137 bool pipelined); 1138 bool pipelined);
1138int i915_gem_attach_phys_object(struct drm_device *dev, 1139int 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);
1142void i915_gem_detach_phys_object(struct drm_device *dev, 1143void i915_gem_detach_phys_object(struct drm_device *dev,
1143 struct drm_gem_object *obj); 1144 struct drm_i915_gem_object *obj);
1144void i915_gem_free_all_phys_object(struct drm_device *dev); 1145void i915_gem_free_all_phys_object(struct drm_device *dev);
1145void i915_gem_release(struct drm_device * dev, struct drm_file *file_priv); 1146void i915_gem_release(struct drm_device *dev, struct drm_file *file);
1146 1147
1147/* i915_gem_gtt.c */ 1148/* i915_gem_gtt.c */
1148void i915_gem_restore_gtt_mappings(struct drm_device *dev); 1149void i915_gem_restore_gtt_mappings(struct drm_device *dev);
1149int i915_gem_gtt_bind_object(struct drm_gem_object *obj); 1150int i915_gem_gtt_bind_object(struct drm_i915_gem_object *obj);
1150void i915_gem_gtt_unbind_object(struct drm_gem_object *obj); 1151void i915_gem_gtt_unbind_object(struct drm_i915_gem_object *obj);
1151 1152
1152/* i915_gem_evict.c */ 1153/* i915_gem_evict.c */
1153int i915_gem_evict_something(struct drm_device *dev, int min_size, 1154int 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 */
1159void i915_gem_detect_bit_6_swizzle(struct drm_device *dev); 1160void i915_gem_detect_bit_6_swizzle(struct drm_device *dev);
1160void i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj); 1161void i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj);
1161void i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj); 1162void 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 */
1164void i915_gem_dump_object(struct drm_gem_object *obj, int len, 1165void 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
1167int i915_verify_lists(struct drm_device *dev); 1168int 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
1171void i915_gem_object_check_coherency(struct drm_gem_object *obj, int handle); 1172void i915_gem_object_check_coherency(struct drm_i915_gem_object *obj,
1172void i915_gem_dump_object(struct drm_gem_object *obj, int len, 1173 int handle);
1174void 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