Lines Matching refs:msm_obj

199 static inline bool is_active(struct msm_gem_object *msm_obj)  in is_active()  argument
201 GEM_WARN_ON(!msm_gem_is_locked(&msm_obj->base)); in is_active()
202 return msm_obj->active_count; in is_active()
206 static inline bool is_unpurgeable(struct msm_gem_object *msm_obj) in is_unpurgeable() argument
208 return msm_obj->base.import_attach || msm_obj->pin_count; in is_unpurgeable()
211 static inline bool is_purgeable(struct msm_gem_object *msm_obj) in is_purgeable() argument
213 return (msm_obj->madv == MSM_MADV_DONTNEED) && msm_obj->sgt && in is_purgeable()
214 !is_unpurgeable(msm_obj); in is_purgeable()
217 static inline bool is_vunmapable(struct msm_gem_object *msm_obj) in is_vunmapable() argument
219 GEM_WARN_ON(!msm_gem_is_locked(&msm_obj->base)); in is_vunmapable()
220 return (msm_obj->vmap_count == 0) && msm_obj->vaddr; in is_vunmapable()
223 static inline void mark_purgeable(struct msm_gem_object *msm_obj) in mark_purgeable() argument
225 struct msm_drm_private *priv = msm_obj->base.dev->dev_private; in mark_purgeable()
229 if (is_unpurgeable(msm_obj)) in mark_purgeable()
232 if (GEM_WARN_ON(msm_obj->dontneed)) in mark_purgeable()
235 priv->shrinkable_count += msm_obj->base.size >> PAGE_SHIFT; in mark_purgeable()
236 msm_obj->dontneed = true; in mark_purgeable()
239 static inline void mark_unpurgeable(struct msm_gem_object *msm_obj) in mark_unpurgeable() argument
241 struct msm_drm_private *priv = msm_obj->base.dev->dev_private; in mark_unpurgeable()
245 if (is_unpurgeable(msm_obj)) in mark_unpurgeable()
248 if (GEM_WARN_ON(!msm_obj->dontneed)) in mark_unpurgeable()
251 priv->shrinkable_count -= msm_obj->base.size >> PAGE_SHIFT; in mark_unpurgeable()
253 msm_obj->dontneed = false; in mark_unpurgeable()
256 static inline bool is_unevictable(struct msm_gem_object *msm_obj) in is_unevictable() argument
258 return is_unpurgeable(msm_obj) || msm_obj->vaddr; in is_unevictable()
261 static inline void mark_evictable(struct msm_gem_object *msm_obj) in mark_evictable() argument
263 struct msm_drm_private *priv = msm_obj->base.dev->dev_private; in mark_evictable()
267 if (is_unevictable(msm_obj)) in mark_evictable()
270 if (WARN_ON(msm_obj->evictable)) in mark_evictable()
273 priv->evictable_count += msm_obj->base.size >> PAGE_SHIFT; in mark_evictable()
274 msm_obj->evictable = true; in mark_evictable()
277 static inline void mark_unevictable(struct msm_gem_object *msm_obj) in mark_unevictable() argument
279 struct msm_drm_private *priv = msm_obj->base.dev->dev_private; in mark_unevictable()
283 if (is_unevictable(msm_obj)) in mark_unevictable()
286 if (WARN_ON(!msm_obj->evictable)) in mark_unevictable()
289 priv->evictable_count -= msm_obj->base.size >> PAGE_SHIFT; in mark_unevictable()
291 msm_obj->evictable = false; in mark_unevictable()