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.h37
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
2176struct 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
2162static inline struct drm_i915_private *to_i915(const struct drm_device *dev) 2185static 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
3100static inline enum i915_map_type
3101i915_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,
3311void i915_gem_stolen_remove_node(struct drm_i915_private *dev_priv, 3340void i915_gem_stolen_remove_node(struct drm_i915_private *dev_priv,
3312 struct drm_mm_node *node); 3341 struct drm_mm_node *node);
3313int i915_gem_init_stolen(struct drm_i915_private *dev_priv); 3342int i915_gem_init_stolen(struct drm_i915_private *dev_priv);
3314void i915_gem_cleanup_stolen(struct drm_device *dev); 3343void i915_gem_cleanup_stolen(struct drm_i915_private *dev_priv);
3315struct drm_i915_gem_object * 3344struct drm_i915_gem_object *
3316i915_gem_object_create_stolen(struct drm_i915_private *dev_priv, 3345i915_gem_object_create_stolen(struct drm_i915_private *dev_priv,
3317 resource_size_t size); 3346 resource_size_t size);