int i915_resume(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; int ret; if (dev->switch_power_state == DRM_SWITCH_POWER_OFF) return 0; #ifndef __NetBSD__ /* pmf handles this for us. */ if (pci_enable_device(dev->pdev)) return -EIO; #endif pci_set_master(dev->pdev); intel_gt_reset(dev); /* * Platforms with opregion should have sane BIOS, older ones (gen3 and * earlier) need this since the BIOS might clear all our scratch PTEs. */ if (drm_core_check_feature(dev, DRIVER_MODESET) && !dev_priv->opregion.header) { mutex_lock(&dev->struct_mutex); i915_gem_restore_gtt_mappings(dev); mutex_unlock(&dev->struct_mutex); } ret = __i915_drm_thaw(dev); if (ret) return ret; drm_kms_helper_poll_enable(dev); return 0; }
int i915_resume(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; int ret; if (dev->switch_power_state == DRM_SWITCH_POWER_OFF) return 0; if (pci_enable_device(dev->pdev)) return -EIO; pci_set_master(dev->pdev); #ifdef CONFIG_I915_VGT if (i915_host_mediate) { int error = vgt_resume(dev->pdev); if (error) return error; } #endif /* * Platforms with opregion should have sane BIOS, older ones (gen3 and * earlier) need to restore the GTT mappings since the BIOS might clear * all our scratch PTEs. */ ret = __i915_drm_thaw(dev, !dev_priv->opregion.header); if (ret) return ret; drm_kms_helper_poll_enable(dev); return 0; }
static int i915_drm_thaw(struct drm_device *dev) { if (drm_core_check_feature(dev, DRIVER_MODESET)) i915_check_and_clear_faults(dev); return __i915_drm_thaw(dev, true); }
/* * The console lock can be pretty contented on resume due * to all the printk activity. Try to keep it out of the hot * path of resume if possible. */ if (console_trylock()) { intel_fbdev_set_suspend(dev, 0); console_unlock(); } else { schedule_work(&dev_priv->console_resume_work); } #endif return error; } #ifndef __NetBSD__ /* XXX freeze/thaw */ static int i915_drm_thaw(struct drm_device *dev) { int error = 0; intel_gt_reset(dev); if (drm_core_check_feature(dev, DRIVER_MODESET)) { mutex_lock(&dev->struct_mutex); i915_gem_restore_gtt_mappings(dev); mutex_unlock(&dev->struct_mutex); } __i915_drm_thaw(dev); return error; }
int i915_resume(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; int ret; /* * Platforms with opregion should have sane BIOS, older ones (gen3 and * earlier) need to restore the GTT mappings since the BIOS might clear * all our scratch PTEs. */ ret = __i915_drm_thaw(dev, !dev_priv->opregion.header); if (ret) return ret; drm_kms_helper_poll_enable(dev); return 0; }
static int i915_drm_thaw(struct drm_device *dev) { int error = 0; intel_uncore_sanitize(dev); if (drm_core_check_feature(dev, DRIVER_MODESET)) { mutex_lock(&dev->struct_mutex); i915_gem_restore_gtt_mappings(dev); mutex_unlock(&dev->struct_mutex); } else if (drm_core_check_feature(dev, DRIVER_MODESET)) i915_check_and_clear_faults(dev); __i915_drm_thaw(dev); return error; }