diff options
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 7ea442033a57..8624b4bdc242 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -87,8 +87,8 @@ | |||
87 | 87 | ||
88 | #define DRIVER_NAME "i915" | 88 | #define DRIVER_NAME "i915" |
89 | #define DRIVER_DESC "Intel Graphics" | 89 | #define DRIVER_DESC "Intel Graphics" |
90 | #define DRIVER_DATE "20180906" | 90 | #define DRIVER_DATE "20180921" |
91 | #define DRIVER_TIMESTAMP 1536242083 | 91 | #define DRIVER_TIMESTAMP 1537521997 |
92 | 92 | ||
93 | /* Use I915_STATE_WARN(x) and I915_STATE_WARN_ON() (rather than WARN() and | 93 | /* Use I915_STATE_WARN(x) and I915_STATE_WARN_ON() (rather than WARN() and |
94 | * WARN_ON()) for hw state sanity checks to check for unexpected conditions | 94 | * WARN_ON()) for hw state sanity checks to check for unexpected conditions |
@@ -1946,6 +1946,20 @@ struct drm_i915_private { | |||
1946 | bool distrust_bios_wm; | 1946 | bool distrust_bios_wm; |
1947 | } wm; | 1947 | } wm; |
1948 | 1948 | ||
1949 | struct dram_info { | ||
1950 | bool valid; | ||
1951 | bool valid_dimm; | ||
1952 | bool is_16gb_dimm; | ||
1953 | u8 num_channels; | ||
1954 | enum dram_rank { | ||
1955 | I915_DRAM_RANK_INVALID = 0, | ||
1956 | I915_DRAM_RANK_SINGLE, | ||
1957 | I915_DRAM_RANK_DUAL | ||
1958 | } rank; | ||
1959 | u32 bandwidth_kbps; | ||
1960 | bool symmetric_memory; | ||
1961 | } dram_info; | ||
1962 | |||
1949 | struct i915_runtime_pm runtime_pm; | 1963 | struct i915_runtime_pm runtime_pm; |
1950 | 1964 | ||
1951 | struct { | 1965 | struct { |
@@ -2159,6 +2173,15 @@ struct drm_i915_private { | |||
2159 | */ | 2173 | */ |
2160 | }; | 2174 | }; |
2161 | 2175 | ||
2176 | struct dram_channel_info { | ||
2177 | struct info { | ||
2178 | u8 size, width; | ||
2179 | enum dram_rank rank; | ||
2180 | } l_info, s_info; | ||
2181 | enum dram_rank rank; | ||
2182 | bool is_16gb_dimm; | ||
2183 | }; | ||
2184 | |||
2162 | static inline struct drm_i915_private *to_i915(const struct drm_device *dev) | 2185 | static inline struct drm_i915_private *to_i915(const struct drm_device *dev) |
2163 | { | 2186 | { |
2164 | return container_of(dev, struct drm_i915_private, drm); | 2187 | return container_of(dev, struct drm_i915_private, drm); |
@@ -2284,7 +2307,7 @@ static inline struct scatterlist *__sg_next(struct scatterlist *sg) | |||
2284 | #define for_each_sgt_dma(__dmap, __iter, __sgt) \ | 2307 | #define for_each_sgt_dma(__dmap, __iter, __sgt) \ |
2285 | for ((__iter) = __sgt_iter((__sgt)->sgl, true); \ | 2308 | for ((__iter) = __sgt_iter((__sgt)->sgl, true); \ |
2286 | ((__dmap) = (__iter).dma + (__iter).curr); \ | 2309 | ((__dmap) = (__iter).dma + (__iter).curr); \ |
2287 | (((__iter).curr += PAGE_SIZE) >= (__iter).max) ? \ | 2310 | (((__iter).curr += I915_GTT_PAGE_SIZE) >= (__iter).max) ? \ |
2288 | (__iter) = __sgt_iter(__sg_next((__iter).sgp), true), 0 : 0) | 2311 | (__iter) = __sgt_iter(__sg_next((__iter).sgp), true), 0 : 0) |
2289 | 2312 | ||
2290 | /** | 2313 | /** |
@@ -3074,6 +3097,12 @@ enum i915_map_type { | |||
3074 | I915_MAP_FORCE_WC = I915_MAP_WC | I915_MAP_OVERRIDE, | 3097 | I915_MAP_FORCE_WC = I915_MAP_WC | I915_MAP_OVERRIDE, |
3075 | }; | 3098 | }; |
3076 | 3099 | ||
3100 | static inline enum i915_map_type | ||
3101 | i915_coherent_map_type(struct drm_i915_private *i915) | ||
3102 | { | ||
3103 | return HAS_LLC(i915) ? I915_MAP_WB : I915_MAP_WC; | ||
3104 | } | ||
3105 | |||
3077 | /** | 3106 | /** |
3078 | * i915_gem_object_pin_map - return a contiguous mapping of the entire object | 3107 | * i915_gem_object_pin_map - return a contiguous mapping of the entire object |
3079 | * @obj: the object to map into kernel address space | 3108 | * @obj: the object to map into kernel address space |
@@ -3311,7 +3340,7 @@ int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *dev_priv, | |||
3311 | void i915_gem_stolen_remove_node(struct drm_i915_private *dev_priv, | 3340 | void i915_gem_stolen_remove_node(struct drm_i915_private *dev_priv, |
3312 | struct drm_mm_node *node); | 3341 | struct drm_mm_node *node); |
3313 | int i915_gem_init_stolen(struct drm_i915_private *dev_priv); | 3342 | int i915_gem_init_stolen(struct drm_i915_private *dev_priv); |
3314 | void i915_gem_cleanup_stolen(struct drm_device *dev); | 3343 | void i915_gem_cleanup_stolen(struct drm_i915_private *dev_priv); |
3315 | struct drm_i915_gem_object * | 3344 | struct drm_i915_gem_object * |
3316 | i915_gem_object_create_stolen(struct drm_i915_private *dev_priv, | 3345 | i915_gem_object_create_stolen(struct drm_i915_private *dev_priv, |
3317 | resource_size_t size); | 3346 | resource_size_t size); |