mirror of https://gitee.com/openkylin/linux.git
drm/i915: Move i915_gem_fini to i915_gem.c
We should keep i915_gem_init/fini functions together for easier tracking of their symmetry. v2: rebased, pulled out from the series Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Sagar Arun Kamble <sagar.a.kamble@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20180604090032.20840-1-michal.wajdeczko@intel.com
This commit is contained in:
parent
5428bf5a9a
commit
8979187a8c
|
@ -636,28 +636,6 @@ static const struct vga_switcheroo_client_ops i915_switcheroo_ops = {
|
||||||
.can_switch = i915_switcheroo_can_switch,
|
.can_switch = i915_switcheroo_can_switch,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void i915_gem_fini(struct drm_i915_private *dev_priv)
|
|
||||||
{
|
|
||||||
i915_gem_suspend_late(dev_priv);
|
|
||||||
|
|
||||||
/* Flush any outstanding unpin_work. */
|
|
||||||
i915_gem_drain_workqueue(dev_priv);
|
|
||||||
|
|
||||||
mutex_lock(&dev_priv->drm.struct_mutex);
|
|
||||||
intel_uc_fini_hw(dev_priv);
|
|
||||||
intel_uc_fini(dev_priv);
|
|
||||||
i915_gem_cleanup_engines(dev_priv);
|
|
||||||
i915_gem_contexts_fini(dev_priv);
|
|
||||||
mutex_unlock(&dev_priv->drm.struct_mutex);
|
|
||||||
|
|
||||||
intel_uc_fini_misc(dev_priv);
|
|
||||||
i915_gem_cleanup_userptr(dev_priv);
|
|
||||||
|
|
||||||
i915_gem_drain_freed_objects(dev_priv);
|
|
||||||
|
|
||||||
WARN_ON(!list_empty(&dev_priv->contexts.list));
|
|
||||||
}
|
|
||||||
|
|
||||||
static int i915_load_modeset_init(struct drm_device *dev)
|
static int i915_load_modeset_init(struct drm_device *dev)
|
||||||
{
|
{
|
||||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||||
|
|
|
@ -3165,6 +3165,7 @@ void i915_gem_init_mmio(struct drm_i915_private *i915);
|
||||||
int __must_check i915_gem_init(struct drm_i915_private *dev_priv);
|
int __must_check i915_gem_init(struct drm_i915_private *dev_priv);
|
||||||
int __must_check i915_gem_init_hw(struct drm_i915_private *dev_priv);
|
int __must_check i915_gem_init_hw(struct drm_i915_private *dev_priv);
|
||||||
void i915_gem_init_swizzling(struct drm_i915_private *dev_priv);
|
void i915_gem_init_swizzling(struct drm_i915_private *dev_priv);
|
||||||
|
void i915_gem_fini(struct drm_i915_private *dev_priv);
|
||||||
void i915_gem_cleanup_engines(struct drm_i915_private *dev_priv);
|
void i915_gem_cleanup_engines(struct drm_i915_private *dev_priv);
|
||||||
int i915_gem_wait_for_idle(struct drm_i915_private *dev_priv,
|
int i915_gem_wait_for_idle(struct drm_i915_private *dev_priv,
|
||||||
unsigned int flags);
|
unsigned int flags);
|
||||||
|
|
|
@ -5554,6 +5554,28 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void i915_gem_fini(struct drm_i915_private *dev_priv)
|
||||||
|
{
|
||||||
|
i915_gem_suspend_late(dev_priv);
|
||||||
|
|
||||||
|
/* Flush any outstanding unpin_work. */
|
||||||
|
i915_gem_drain_workqueue(dev_priv);
|
||||||
|
|
||||||
|
mutex_lock(&dev_priv->drm.struct_mutex);
|
||||||
|
intel_uc_fini_hw(dev_priv);
|
||||||
|
intel_uc_fini(dev_priv);
|
||||||
|
i915_gem_cleanup_engines(dev_priv);
|
||||||
|
i915_gem_contexts_fini(dev_priv);
|
||||||
|
mutex_unlock(&dev_priv->drm.struct_mutex);
|
||||||
|
|
||||||
|
intel_uc_fini_misc(dev_priv);
|
||||||
|
i915_gem_cleanup_userptr(dev_priv);
|
||||||
|
|
||||||
|
i915_gem_drain_freed_objects(dev_priv);
|
||||||
|
|
||||||
|
WARN_ON(!list_empty(&dev_priv->contexts.list));
|
||||||
|
}
|
||||||
|
|
||||||
void i915_gem_init_mmio(struct drm_i915_private *i915)
|
void i915_gem_init_mmio(struct drm_i915_private *i915)
|
||||||
{
|
{
|
||||||
i915_gem_sanitize(i915);
|
i915_gem_sanitize(i915);
|
||||||
|
|
Loading…
Reference in New Issue