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.h33
1 files changed, 10 insertions, 23 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 4063ee1dec17..49414d30e8d4 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -251,18 +251,6 @@ struct intel_ddi_plls {
251#define WATCH_LISTS 0 251#define WATCH_LISTS 0
252#define WATCH_GTT 0 252#define WATCH_GTT 0
253 253
254#define I915_GEM_PHYS_CURSOR_0 1
255#define I915_GEM_PHYS_CURSOR_1 2
256#define I915_GEM_PHYS_OVERLAY_REGS 3
257#define I915_MAX_PHYS_OBJECT (I915_GEM_PHYS_OVERLAY_REGS)
258
259struct drm_i915_gem_phys_object {
260 int id;
261 struct page **page_list;
262 drm_dma_handle_t *handle;
263 struct drm_i915_gem_object *cur_obj;
264};
265
266struct opregion_header; 254struct opregion_header;
267struct opregion_acpi; 255struct opregion_acpi;
268struct opregion_swsci; 256struct opregion_swsci;
@@ -1106,9 +1094,6 @@ struct i915_gem_mm {
1106 /** Bit 6 swizzling required for Y tiling */ 1094 /** Bit 6 swizzling required for Y tiling */
1107 uint32_t bit_6_swizzle_y; 1095 uint32_t bit_6_swizzle_y;
1108 1096
1109 /* storage for physical objects */
1110 struct drm_i915_gem_phys_object *phys_objs[I915_MAX_PHYS_OBJECT];
1111
1112 /* accounting, useful for userland debugging */ 1097 /* accounting, useful for userland debugging */
1113 spinlock_t object_stat_lock; 1098 spinlock_t object_stat_lock;
1114 size_t object_memory; 1099 size_t object_memory;
@@ -1714,7 +1699,7 @@ struct drm_i915_gem_object {
1714 struct drm_file *pin_filp; 1699 struct drm_file *pin_filp;
1715 1700
1716 /** for phy allocated objects */ 1701 /** for phy allocated objects */
1717 struct drm_i915_gem_phys_object *phys_obj; 1702 drm_dma_handle_t *phys_handle;
1718 1703
1719 union { 1704 union {
1720 struct i915_gem_userptr { 1705 struct i915_gem_userptr {
@@ -1918,6 +1903,9 @@ struct drm_i915_cmd_table {
1918#define IS_ULT(dev) (IS_HSW_ULT(dev) || IS_BDW_ULT(dev)) 1903#define IS_ULT(dev) (IS_HSW_ULT(dev) || IS_BDW_ULT(dev))
1919#define IS_HSW_GT3(dev) (IS_HASWELL(dev) && \ 1904#define IS_HSW_GT3(dev) (IS_HASWELL(dev) && \
1920 ((dev)->pdev->device & 0x00F0) == 0x0020) 1905 ((dev)->pdev->device & 0x00F0) == 0x0020)
1906/* ULX machines are also considered ULT. */
1907#define IS_HSW_ULX(dev) ((dev)->pdev->device == 0x0A0E || \
1908 (dev)->pdev->device == 0x0A1E)
1921#define IS_PRELIMINARY_HW(intel_info) ((intel_info)->is_preliminary) 1909#define IS_PRELIMINARY_HW(intel_info) ((intel_info)->is_preliminary)
1922 1910
1923/* 1911/*
@@ -2174,10 +2162,12 @@ void i915_gem_vma_destroy(struct i915_vma *vma);
2174#define PIN_MAPPABLE 0x1 2162#define PIN_MAPPABLE 0x1
2175#define PIN_NONBLOCK 0x2 2163#define PIN_NONBLOCK 0x2
2176#define PIN_GLOBAL 0x4 2164#define PIN_GLOBAL 0x4
2165#define PIN_OFFSET_BIAS 0x8
2166#define PIN_OFFSET_MASK (~4095)
2177int __must_check i915_gem_object_pin(struct drm_i915_gem_object *obj, 2167int __must_check i915_gem_object_pin(struct drm_i915_gem_object *obj,
2178 struct i915_address_space *vm, 2168 struct i915_address_space *vm,
2179 uint32_t alignment, 2169 uint32_t alignment,
2180 unsigned flags); 2170 uint64_t flags);
2181int __must_check i915_vma_unbind(struct i915_vma *vma); 2171int __must_check i915_vma_unbind(struct i915_vma *vma);
2182int i915_gem_object_put_pages(struct drm_i915_gem_object *obj); 2172int i915_gem_object_put_pages(struct drm_i915_gem_object *obj);
2183void i915_gem_release_all_mmaps(struct drm_i915_private *dev_priv); 2173void i915_gem_release_all_mmaps(struct drm_i915_private *dev_priv);
@@ -2299,13 +2289,8 @@ i915_gem_object_pin_to_display_plane(struct drm_i915_gem_object *obj,
2299 u32 alignment, 2289 u32 alignment,
2300 struct intel_engine_cs *pipelined); 2290 struct intel_engine_cs *pipelined);
2301void i915_gem_object_unpin_from_display_plane(struct drm_i915_gem_object *obj); 2291void i915_gem_object_unpin_from_display_plane(struct drm_i915_gem_object *obj);
2302int i915_gem_attach_phys_object(struct drm_device *dev, 2292int i915_gem_object_attach_phys(struct drm_i915_gem_object *obj,
2303 struct drm_i915_gem_object *obj,
2304 int id,
2305 int align); 2293 int align);
2306void i915_gem_detach_phys_object(struct drm_device *dev,
2307 struct drm_i915_gem_object *obj);
2308void i915_gem_free_all_phys_object(struct drm_device *dev);
2309int i915_gem_open(struct drm_device *dev, struct drm_file *file); 2294int i915_gem_open(struct drm_device *dev, struct drm_file *file);
2310void i915_gem_release(struct drm_device *dev, struct drm_file *file); 2295void i915_gem_release(struct drm_device *dev, struct drm_file *file);
2311 2296
@@ -2432,6 +2417,8 @@ int __must_check i915_gem_evict_something(struct drm_device *dev,
2432 int min_size, 2417 int min_size,
2433 unsigned alignment, 2418 unsigned alignment,
2434 unsigned cache_level, 2419 unsigned cache_level,
2420 unsigned long start,
2421 unsigned long end,
2435 unsigned flags); 2422 unsigned flags);
2436int i915_gem_evict_vm(struct i915_address_space *vm, bool do_idle); 2423int i915_gem_evict_vm(struct i915_address_space *vm, bool do_idle);
2437int i915_gem_evict_everything(struct drm_device *dev); 2424int i915_gem_evict_everything(struct drm_device *dev);