Lines Matching refs:dev_priv

115 static int i915_get_bridge_dev(struct drm_i915_private *dev_priv)  in i915_get_bridge_dev()  argument
117 int domain = pci_domain_nr(to_pci_dev(dev_priv->drm.dev)->bus); in i915_get_bridge_dev()
119 dev_priv->bridge_dev = in i915_get_bridge_dev()
121 if (!dev_priv->bridge_dev) { in i915_get_bridge_dev()
122 drm_err(&dev_priv->drm, "bridge device not found\n"); in i915_get_bridge_dev()
126 return drmm_add_action_or_reset(&dev_priv->drm, i915_release_bridge_dev, in i915_get_bridge_dev()
127 dev_priv->bridge_dev); in i915_get_bridge_dev()
132 intel_alloc_mchbar_resource(struct drm_i915_private *dev_priv) in intel_alloc_mchbar_resource() argument
134 int reg = GRAPHICS_VER(dev_priv) >= 4 ? MCHBAR_I965 : MCHBAR_I915; in intel_alloc_mchbar_resource()
139 if (GRAPHICS_VER(dev_priv) >= 4) in intel_alloc_mchbar_resource()
140 pci_read_config_dword(dev_priv->bridge_dev, reg + 4, &temp_hi); in intel_alloc_mchbar_resource()
141 pci_read_config_dword(dev_priv->bridge_dev, reg, &temp_lo); in intel_alloc_mchbar_resource()
152 dev_priv->mch_res.name = "i915 MCHBAR"; in intel_alloc_mchbar_resource()
153 dev_priv->mch_res.flags = IORESOURCE_MEM; in intel_alloc_mchbar_resource()
154 ret = pci_bus_alloc_resource(dev_priv->bridge_dev->bus, in intel_alloc_mchbar_resource()
155 &dev_priv->mch_res, in intel_alloc_mchbar_resource()
159 dev_priv->bridge_dev); in intel_alloc_mchbar_resource()
161 drm_dbg(&dev_priv->drm, "failed bus alloc: %d\n", ret); in intel_alloc_mchbar_resource()
162 dev_priv->mch_res.start = 0; in intel_alloc_mchbar_resource()
166 if (GRAPHICS_VER(dev_priv) >= 4) in intel_alloc_mchbar_resource()
167 pci_write_config_dword(dev_priv->bridge_dev, reg + 4, in intel_alloc_mchbar_resource()
168 upper_32_bits(dev_priv->mch_res.start)); in intel_alloc_mchbar_resource()
170 pci_write_config_dword(dev_priv->bridge_dev, reg, in intel_alloc_mchbar_resource()
171 lower_32_bits(dev_priv->mch_res.start)); in intel_alloc_mchbar_resource()
177 intel_setup_mchbar(struct drm_i915_private *dev_priv) in intel_setup_mchbar() argument
179 int mchbar_reg = GRAPHICS_VER(dev_priv) >= 4 ? MCHBAR_I965 : MCHBAR_I915; in intel_setup_mchbar()
183 if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) in intel_setup_mchbar()
186 dev_priv->mchbar_need_disable = false; in intel_setup_mchbar()
188 if (IS_I915G(dev_priv) || IS_I915GM(dev_priv)) { in intel_setup_mchbar()
189 pci_read_config_dword(dev_priv->bridge_dev, DEVEN, &temp); in intel_setup_mchbar()
192 pci_read_config_dword(dev_priv->bridge_dev, mchbar_reg, &temp); in intel_setup_mchbar()
200 if (intel_alloc_mchbar_resource(dev_priv)) in intel_setup_mchbar()
203 dev_priv->mchbar_need_disable = true; in intel_setup_mchbar()
206 if (IS_I915G(dev_priv) || IS_I915GM(dev_priv)) { in intel_setup_mchbar()
207 pci_write_config_dword(dev_priv->bridge_dev, DEVEN, in intel_setup_mchbar()
210 pci_read_config_dword(dev_priv->bridge_dev, mchbar_reg, &temp); in intel_setup_mchbar()
211 pci_write_config_dword(dev_priv->bridge_dev, mchbar_reg, temp | 1); in intel_setup_mchbar()
216 intel_teardown_mchbar(struct drm_i915_private *dev_priv) in intel_teardown_mchbar() argument
218 int mchbar_reg = GRAPHICS_VER(dev_priv) >= 4 ? MCHBAR_I965 : MCHBAR_I915; in intel_teardown_mchbar()
220 if (dev_priv->mchbar_need_disable) { in intel_teardown_mchbar()
221 if (IS_I915G(dev_priv) || IS_I915GM(dev_priv)) { in intel_teardown_mchbar()
224 pci_read_config_dword(dev_priv->bridge_dev, DEVEN, in intel_teardown_mchbar()
227 pci_write_config_dword(dev_priv->bridge_dev, DEVEN, in intel_teardown_mchbar()
232 pci_read_config_dword(dev_priv->bridge_dev, mchbar_reg, in intel_teardown_mchbar()
235 pci_write_config_dword(dev_priv->bridge_dev, mchbar_reg, in intel_teardown_mchbar()
240 if (dev_priv->mch_res.start) in intel_teardown_mchbar()
241 release_resource(&dev_priv->mch_res); in intel_teardown_mchbar()
244 static int i915_workqueues_init(struct drm_i915_private *dev_priv) in i915_workqueues_init() argument
260 dev_priv->wq = alloc_ordered_workqueue("i915", 0); in i915_workqueues_init()
261 if (dev_priv->wq == NULL) in i915_workqueues_init()
264 dev_priv->display.hotplug.dp_wq = alloc_ordered_workqueue("i915-dp", 0); in i915_workqueues_init()
265 if (dev_priv->display.hotplug.dp_wq == NULL) in i915_workqueues_init()
271 destroy_workqueue(dev_priv->wq); in i915_workqueues_init()
273 drm_err(&dev_priv->drm, "Failed to allocate workqueues.\n"); in i915_workqueues_init()
278 static void i915_workqueues_cleanup(struct drm_i915_private *dev_priv) in i915_workqueues_cleanup() argument
280 destroy_workqueue(dev_priv->display.hotplug.dp_wq); in i915_workqueues_cleanup()
281 destroy_workqueue(dev_priv->wq); in i915_workqueues_cleanup()
294 static void intel_detect_preproduction_hw(struct drm_i915_private *dev_priv) in intel_detect_preproduction_hw() argument
298 pre |= IS_HSW_EARLY_SDV(dev_priv); in intel_detect_preproduction_hw()
299 pre |= IS_SKYLAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x6; in intel_detect_preproduction_hw()
300 pre |= IS_BROXTON(dev_priv) && INTEL_REVID(dev_priv) < 0xA; in intel_detect_preproduction_hw()
301 pre |= IS_KABYLAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x1; in intel_detect_preproduction_hw()
302 pre |= IS_GEMINILAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x3; in intel_detect_preproduction_hw()
303 pre |= IS_ICELAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x7; in intel_detect_preproduction_hw()
306 drm_err(&dev_priv->drm, "This is a pre-production stepping. " in intel_detect_preproduction_hw()
333 static int i915_driver_early_probe(struct drm_i915_private *dev_priv) in i915_driver_early_probe() argument
337 if (i915_inject_probe_failure(dev_priv)) in i915_driver_early_probe()
340 intel_device_info_subplatform_init(dev_priv); in i915_driver_early_probe()
341 intel_step_init(dev_priv); in i915_driver_early_probe()
343 intel_uncore_mmio_debug_init_early(dev_priv); in i915_driver_early_probe()
345 spin_lock_init(&dev_priv->irq_lock); in i915_driver_early_probe()
346 spin_lock_init(&dev_priv->gpu_error.lock); in i915_driver_early_probe()
347 mutex_init(&dev_priv->display.backlight.lock); in i915_driver_early_probe()
349 mutex_init(&dev_priv->sb_lock); in i915_driver_early_probe()
350 cpu_latency_qos_add_request(&dev_priv->sb_qos, PM_QOS_DEFAULT_VALUE); in i915_driver_early_probe()
352 mutex_init(&dev_priv->display.audio.mutex); in i915_driver_early_probe()
353 mutex_init(&dev_priv->display.wm.wm_mutex); in i915_driver_early_probe()
354 mutex_init(&dev_priv->display.pps.mutex); in i915_driver_early_probe()
355 mutex_init(&dev_priv->display.hdcp.comp_mutex); in i915_driver_early_probe()
356 spin_lock_init(&dev_priv->display.dkl.phy_lock); in i915_driver_early_probe()
358 i915_memcpy_init_early(dev_priv); in i915_driver_early_probe()
359 intel_runtime_pm_init_early(&dev_priv->runtime_pm); in i915_driver_early_probe()
361 ret = i915_workqueues_init(dev_priv); in i915_driver_early_probe()
365 ret = vlv_suspend_init(dev_priv); in i915_driver_early_probe()
369 ret = intel_region_ttm_device_init(dev_priv); in i915_driver_early_probe()
373 intel_wopcm_init_early(&dev_priv->wopcm); in i915_driver_early_probe()
375 ret = intel_root_gt_init_early(dev_priv); in i915_driver_early_probe()
379 i915_drm_clients_init(&dev_priv->clients, dev_priv); in i915_driver_early_probe()
381 i915_gem_init_early(dev_priv); in i915_driver_early_probe()
384 intel_detect_pch(dev_priv); in i915_driver_early_probe()
386 intel_pm_setup(dev_priv); in i915_driver_early_probe()
387 ret = intel_power_domains_init(dev_priv); in i915_driver_early_probe()
390 intel_irq_init(dev_priv); in i915_driver_early_probe()
391 intel_init_display_hooks(dev_priv); in i915_driver_early_probe()
392 intel_init_clock_gating_hooks(dev_priv); in i915_driver_early_probe()
394 intel_detect_preproduction_hw(dev_priv); in i915_driver_early_probe()
399 i915_gem_cleanup_early(dev_priv); in i915_driver_early_probe()
400 intel_gt_driver_late_release_all(dev_priv); in i915_driver_early_probe()
401 i915_drm_clients_fini(&dev_priv->clients); in i915_driver_early_probe()
403 intel_region_ttm_device_fini(dev_priv); in i915_driver_early_probe()
405 vlv_suspend_cleanup(dev_priv); in i915_driver_early_probe()
407 i915_workqueues_cleanup(dev_priv); in i915_driver_early_probe()
416 static void i915_driver_late_release(struct drm_i915_private *dev_priv) in i915_driver_late_release() argument
418 intel_irq_fini(dev_priv); in i915_driver_late_release()
419 intel_power_domains_cleanup(dev_priv); in i915_driver_late_release()
420 i915_gem_cleanup_early(dev_priv); in i915_driver_late_release()
421 intel_gt_driver_late_release_all(dev_priv); in i915_driver_late_release()
422 i915_drm_clients_fini(&dev_priv->clients); in i915_driver_late_release()
423 intel_region_ttm_device_fini(dev_priv); in i915_driver_late_release()
424 vlv_suspend_cleanup(dev_priv); in i915_driver_late_release()
425 i915_workqueues_cleanup(dev_priv); in i915_driver_late_release()
427 cpu_latency_qos_remove_request(&dev_priv->sb_qos); in i915_driver_late_release()
428 mutex_destroy(&dev_priv->sb_lock); in i915_driver_late_release()
430 i915_params_free(&dev_priv->params); in i915_driver_late_release()
442 static int i915_driver_mmio_probe(struct drm_i915_private *dev_priv) in i915_driver_mmio_probe() argument
447 if (i915_inject_probe_failure(dev_priv)) in i915_driver_mmio_probe()
450 ret = i915_get_bridge_dev(dev_priv); in i915_driver_mmio_probe()
454 for_each_gt(gt, dev_priv, i) { in i915_driver_mmio_probe()
459 ret = drmm_add_action_or_reset(&dev_priv->drm, in i915_driver_mmio_probe()
467 intel_setup_mchbar(dev_priv); in i915_driver_mmio_probe()
468 intel_device_info_runtime_init(dev_priv); in i915_driver_mmio_probe()
470 for_each_gt(gt, dev_priv, i) { in i915_driver_mmio_probe()
477 sanitize_gpu(dev_priv); in i915_driver_mmio_probe()
482 intel_teardown_mchbar(dev_priv); in i915_driver_mmio_probe()
491 static void i915_driver_mmio_release(struct drm_i915_private *dev_priv) in i915_driver_mmio_release() argument
493 intel_teardown_mchbar(dev_priv); in i915_driver_mmio_release()
574 static int i915_driver_hw_probe(struct drm_i915_private *dev_priv) in i915_driver_hw_probe() argument
576 struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev); in i915_driver_hw_probe()
580 if (i915_inject_probe_failure(dev_priv)) in i915_driver_hw_probe()
583 if (HAS_PPGTT(dev_priv)) { in i915_driver_hw_probe()
584 if (intel_vgpu_active(dev_priv) && in i915_driver_hw_probe()
585 !intel_vgpu_has_full_ppgtt(dev_priv)) { in i915_driver_hw_probe()
586 i915_report_error(dev_priv, in i915_driver_hw_probe()
592 if (HAS_EXECLISTS(dev_priv)) { in i915_driver_hw_probe()
598 if (intel_vgpu_active(dev_priv) && in i915_driver_hw_probe()
599 !intel_vgpu_has_hwsp_emulation(dev_priv)) { in i915_driver_hw_probe()
600 i915_report_error(dev_priv, in i915_driver_hw_probe()
607 intel_dram_edram_detect(dev_priv); in i915_driver_hw_probe()
609 ret = i915_set_dma_info(dev_priv); in i915_driver_hw_probe()
613 i915_perf_init(dev_priv); in i915_driver_hw_probe()
615 ret = intel_gt_assign_ggtt(to_gt(dev_priv)); in i915_driver_hw_probe()
619 ret = i915_ggtt_probe_hw(dev_priv); in i915_driver_hw_probe()
623 ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, dev_priv->drm.driver); in i915_driver_hw_probe()
627 ret = i915_ggtt_init_hw(dev_priv); in i915_driver_hw_probe()
631 ret = intel_memory_regions_hw_probe(dev_priv); in i915_driver_hw_probe()
635 ret = intel_gt_tiles_init(dev_priv); in i915_driver_hw_probe()
639 ret = i915_ggtt_enable_hw(dev_priv); in i915_driver_hw_probe()
641 drm_err(&dev_priv->drm, "failed to enable GGTT\n"); in i915_driver_hw_probe()
666 if (GRAPHICS_VER(dev_priv) >= 5) { in i915_driver_hw_probe()
668 drm_dbg(&dev_priv->drm, "can't enable MSI"); in i915_driver_hw_probe()
671 ret = intel_gvt_init(dev_priv); in i915_driver_hw_probe()
675 intel_opregion_setup(dev_priv); in i915_driver_hw_probe()
677 ret = i915_pcode_init(dev_priv); in i915_driver_hw_probe()
685 intel_dram_detect(dev_priv); in i915_driver_hw_probe()
687 intel_bw_init_hw(dev_priv); in i915_driver_hw_probe()
704 intel_memory_regions_driver_release(dev_priv); in i915_driver_hw_probe()
706 i915_ggtt_driver_release(dev_priv); in i915_driver_hw_probe()
707 i915_gem_drain_freed_objects(dev_priv); in i915_driver_hw_probe()
708 i915_ggtt_driver_late_release(dev_priv); in i915_driver_hw_probe()
710 i915_perf_fini(dev_priv); in i915_driver_hw_probe()
718 static void i915_driver_hw_remove(struct drm_i915_private *dev_priv) in i915_driver_hw_remove() argument
720 struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev); in i915_driver_hw_remove()
723 i915_perf_fini(dev_priv); in i915_driver_hw_remove()
740 static void i915_driver_register(struct drm_i915_private *dev_priv) in i915_driver_register() argument
742 struct drm_device *dev = &dev_priv->drm; in i915_driver_register()
746 i915_gem_driver_register(dev_priv); in i915_driver_register()
747 i915_pmu_register(dev_priv); in i915_driver_register()
749 intel_vgpu_register(dev_priv); in i915_driver_register()
753 drm_err(&dev_priv->drm, in i915_driver_register()
758 i915_debugfs_register(dev_priv); in i915_driver_register()
759 i915_setup_sysfs(dev_priv); in i915_driver_register()
762 i915_perf_register(dev_priv); in i915_driver_register()
764 for_each_gt(gt, dev_priv, i) in i915_driver_register()
767 intel_display_driver_register(dev_priv); in i915_driver_register()
769 intel_power_domains_enable(dev_priv); in i915_driver_register()
770 intel_runtime_pm_enable(&dev_priv->runtime_pm); in i915_driver_register()
774 if (i915_switcheroo_register(dev_priv)) in i915_driver_register()
775 drm_err(&dev_priv->drm, "Failed to register vga switcheroo!\n"); in i915_driver_register()
782 static void i915_driver_unregister(struct drm_i915_private *dev_priv) in i915_driver_unregister() argument
787 i915_switcheroo_unregister(dev_priv); in i915_driver_unregister()
791 intel_runtime_pm_disable(&dev_priv->runtime_pm); in i915_driver_unregister()
792 intel_power_domains_disable(dev_priv); in i915_driver_unregister()
794 intel_display_driver_unregister(dev_priv); in i915_driver_unregister()
796 for_each_gt(gt, dev_priv, i) in i915_driver_unregister()
799 i915_perf_unregister(dev_priv); in i915_driver_unregister()
800 i915_pmu_unregister(dev_priv); in i915_driver_unregister()
802 i915_teardown_sysfs(dev_priv); in i915_driver_unregister()
803 drm_dev_unplug(&dev_priv->drm); in i915_driver_unregister()
805 i915_gem_driver_unregister(dev_priv); in i915_driver_unregister()
815 static void i915_welcome_messages(struct drm_i915_private *dev_priv) in i915_welcome_messages() argument
823 INTEL_DEVID(dev_priv), in i915_welcome_messages()
824 INTEL_REVID(dev_priv), in i915_welcome_messages()
825 intel_platform_name(INTEL_INFO(dev_priv)->platform), in i915_welcome_messages()
826 intel_subplatform(RUNTIME_INFO(dev_priv), in i915_welcome_messages()
827 INTEL_INFO(dev_priv)->platform), in i915_welcome_messages()
828 GRAPHICS_VER(dev_priv)); in i915_welcome_messages()
830 intel_device_info_print(INTEL_INFO(dev_priv), in i915_welcome_messages()
831 RUNTIME_INFO(dev_priv), &p); in i915_welcome_messages()
832 i915_print_iommu_status(dev_priv, &p); in i915_welcome_messages()
833 for_each_gt(gt, dev_priv, i) in i915_welcome_messages()
838 drm_info(&dev_priv->drm, "DRM_I915_DEBUG enabled\n"); in i915_welcome_messages()
840 drm_info(&dev_priv->drm, "DRM_I915_DEBUG_GEM enabled\n"); in i915_welcome_messages()
842 drm_info(&dev_priv->drm, in i915_welcome_messages()
1022 struct drm_i915_private *dev_priv = to_i915(dev); in i915_driver_release() local
1023 struct intel_runtime_pm *rpm = &dev_priv->runtime_pm; in i915_driver_release()
1026 if (!dev_priv->do_release) in i915_driver_release()
1031 i915_gem_driver_release(dev_priv); in i915_driver_release()
1033 intel_memory_regions_driver_release(dev_priv); in i915_driver_release()
1034 i915_ggtt_driver_release(dev_priv); in i915_driver_release()
1035 i915_gem_drain_freed_objects(dev_priv); in i915_driver_release()
1036 i915_ggtt_driver_late_release(dev_priv); in i915_driver_release()
1038 i915_driver_mmio_release(dev_priv); in i915_driver_release()
1044 i915_driver_late_release(dev_priv); in i915_driver_release()
1094 static void intel_suspend_encoders(struct drm_i915_private *dev_priv) in intel_suspend_encoders() argument
1096 struct drm_device *dev = &dev_priv->drm; in intel_suspend_encoders()
1099 if (!HAS_DISPLAY(dev_priv)) in intel_suspend_encoders()
1109 static void intel_shutdown_encoders(struct drm_i915_private *dev_priv) in intel_shutdown_encoders() argument
1111 struct drm_device *dev = &dev_priv->drm; in intel_shutdown_encoders()
1114 if (!HAS_DISPLAY(dev_priv)) in intel_shutdown_encoders()
1165 static bool suspend_to_idle(struct drm_i915_private *dev_priv) in suspend_to_idle() argument
1189 struct drm_i915_private *dev_priv = to_i915(dev); in i915_drm_suspend() local
1190 struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev); in i915_drm_suspend()
1193 disable_rpm_wakeref_asserts(&dev_priv->runtime_pm); in i915_drm_suspend()
1197 intel_power_domains_disable(dev_priv); in i915_drm_suspend()
1198 if (HAS_DISPLAY(dev_priv)) in i915_drm_suspend()
1205 intel_dp_mst_suspend(dev_priv); in i915_drm_suspend()
1207 intel_runtime_pm_disable_interrupts(dev_priv); in i915_drm_suspend()
1208 intel_hpd_cancel_work(dev_priv); in i915_drm_suspend()
1210 intel_suspend_encoders(dev_priv); in i915_drm_suspend()
1212 intel_suspend_hw(dev_priv); in i915_drm_suspend()
1215 intel_dpt_suspend(dev_priv); in i915_drm_suspend()
1216 i915_ggtt_suspend(to_gt(dev_priv)->ggtt); in i915_drm_suspend()
1218 i915_save_display(dev_priv); in i915_drm_suspend()
1220 opregion_target_state = suspend_to_idle(dev_priv) ? PCI_D1 : PCI_D3cold; in i915_drm_suspend()
1221 intel_opregion_suspend(dev_priv, opregion_target_state); in i915_drm_suspend()
1225 dev_priv->suspend_count++; in i915_drm_suspend()
1227 intel_dmc_ucode_suspend(dev_priv); in i915_drm_suspend()
1229 enable_rpm_wakeref_asserts(&dev_priv->runtime_pm); in i915_drm_suspend()
1231 i915_gem_drain_freed_objects(dev_priv); in i915_drm_suspend()
1237 get_suspend_mode(struct drm_i915_private *dev_priv, bool hibernate) in get_suspend_mode() argument
1242 if (suspend_to_idle(dev_priv)) in get_suspend_mode()
1250 struct drm_i915_private *dev_priv = to_i915(dev); in i915_drm_suspend_late() local
1251 struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev); in i915_drm_suspend_late()
1252 struct intel_runtime_pm *rpm = &dev_priv->runtime_pm; in i915_drm_suspend_late()
1258 i915_gem_suspend_late(dev_priv); in i915_drm_suspend_late()
1260 for_each_gt(gt, dev_priv, i) in i915_drm_suspend_late()
1263 intel_power_domains_suspend(dev_priv, in i915_drm_suspend_late()
1264 get_suspend_mode(dev_priv, hibernation)); in i915_drm_suspend_late()
1266 intel_display_power_suspend_late(dev_priv); in i915_drm_suspend_late()
1268 ret = vlv_suspend_complete(dev_priv); in i915_drm_suspend_late()
1270 drm_err(&dev_priv->drm, "Suspend complete failed: %d\n", ret); in i915_drm_suspend_late()
1271 intel_power_domains_resume(dev_priv); in i915_drm_suspend_late()
1289 if (!(hibernation && GRAPHICS_VER(dev_priv) < 6)) in i915_drm_suspend_late()
1294 if (!dev_priv->uncore.user_forcewake_count) in i915_drm_suspend_late()
1321 struct drm_i915_private *dev_priv = to_i915(dev); in i915_drm_resume() local
1324 disable_rpm_wakeref_asserts(&dev_priv->runtime_pm); in i915_drm_resume()
1326 ret = i915_pcode_init(dev_priv); in i915_drm_resume()
1330 sanitize_gpu(dev_priv); in i915_drm_resume()
1332 ret = i915_ggtt_enable_hw(dev_priv); in i915_drm_resume()
1334 drm_err(&dev_priv->drm, "failed to re-enable GGTT\n"); in i915_drm_resume()
1336 i915_ggtt_resume(to_gt(dev_priv)->ggtt); in i915_drm_resume()
1338 intel_dpt_resume(dev_priv); in i915_drm_resume()
1340 intel_dmc_ucode_resume(dev_priv); in i915_drm_resume()
1342 i915_restore_display(dev_priv); in i915_drm_resume()
1343 intel_pps_unlock_regs_wa(dev_priv); in i915_drm_resume()
1345 intel_init_pch_refclk(dev_priv); in i915_drm_resume()
1357 intel_runtime_pm_enable_interrupts(dev_priv); in i915_drm_resume()
1359 if (HAS_DISPLAY(dev_priv)) in i915_drm_resume()
1362 i915_gem_resume(dev_priv); in i915_drm_resume()
1364 intel_modeset_init_hw(dev_priv); in i915_drm_resume()
1365 intel_init_clock_gating(dev_priv); in i915_drm_resume()
1366 intel_hpd_init(dev_priv); in i915_drm_resume()
1369 intel_dp_mst_resume(dev_priv); in i915_drm_resume()
1372 intel_hpd_poll_disable(dev_priv); in i915_drm_resume()
1373 if (HAS_DISPLAY(dev_priv)) in i915_drm_resume()
1376 intel_opregion_resume(dev_priv); in i915_drm_resume()
1380 intel_power_domains_enable(dev_priv); in i915_drm_resume()
1382 intel_gvt_resume(dev_priv); in i915_drm_resume()
1384 enable_rpm_wakeref_asserts(&dev_priv->runtime_pm); in i915_drm_resume()
1391 struct drm_i915_private *dev_priv = to_i915(dev); in i915_drm_resume_early() local
1392 struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev); in i915_drm_resume_early()
1418 drm_err(&dev_priv->drm, in i915_drm_resume_early()
1441 disable_rpm_wakeref_asserts(&dev_priv->runtime_pm); in i915_drm_resume_early()
1443 ret = vlv_resume_prepare(dev_priv, false); in i915_drm_resume_early()
1445 drm_err(&dev_priv->drm, in i915_drm_resume_early()
1448 for_each_gt(gt, dev_priv, i) { in i915_drm_resume_early()
1453 intel_display_power_resume_early(dev_priv); in i915_drm_resume_early()
1455 intel_power_domains_resume(dev_priv); in i915_drm_resume_early()
1457 enable_rpm_wakeref_asserts(&dev_priv->runtime_pm); in i915_drm_resume_early()
1629 struct drm_i915_private *dev_priv = kdev_to_i915(kdev); in intel_runtime_suspend() local
1630 struct intel_runtime_pm *rpm = &dev_priv->runtime_pm; in intel_runtime_suspend()
1634 if (drm_WARN_ON_ONCE(&dev_priv->drm, !HAS_RUNTIME_PM(dev_priv))) in intel_runtime_suspend()
1637 drm_dbg(&dev_priv->drm, "Suspending device\n"); in intel_runtime_suspend()
1645 i915_gem_runtime_suspend(dev_priv); in intel_runtime_suspend()
1647 for_each_gt(gt, dev_priv, i) in intel_runtime_suspend()
1650 intel_runtime_pm_disable_interrupts(dev_priv); in intel_runtime_suspend()
1652 for_each_gt(gt, dev_priv, i) in intel_runtime_suspend()
1655 intel_display_power_suspend(dev_priv); in intel_runtime_suspend()
1657 ret = vlv_suspend_complete(dev_priv); in intel_runtime_suspend()
1659 drm_err(&dev_priv->drm, in intel_runtime_suspend()
1661 intel_uncore_runtime_resume(&dev_priv->uncore); in intel_runtime_suspend()
1663 intel_runtime_pm_enable_interrupts(dev_priv); in intel_runtime_suspend()
1665 intel_gt_runtime_resume(to_gt(dev_priv)); in intel_runtime_suspend()
1675 if (intel_uncore_arm_unclaimed_mmio_detection(&dev_priv->uncore)) in intel_runtime_suspend()
1676 drm_err(&dev_priv->drm, in intel_runtime_suspend()
1685 if (IS_BROADWELL(dev_priv)) { in intel_runtime_suspend()
1692 intel_opregion_notify_adapter(dev_priv, PCI_D3hot); in intel_runtime_suspend()
1701 intel_opregion_notify_adapter(dev_priv, PCI_D1); in intel_runtime_suspend()
1704 assert_forcewakes_inactive(&dev_priv->uncore); in intel_runtime_suspend()
1706 if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv)) in intel_runtime_suspend()
1707 intel_hpd_poll_enable(dev_priv); in intel_runtime_suspend()
1709 drm_dbg(&dev_priv->drm, "Device suspended\n"); in intel_runtime_suspend()
1715 struct drm_i915_private *dev_priv = kdev_to_i915(kdev); in intel_runtime_resume() local
1716 struct intel_runtime_pm *rpm = &dev_priv->runtime_pm; in intel_runtime_resume()
1720 if (drm_WARN_ON_ONCE(&dev_priv->drm, !HAS_RUNTIME_PM(dev_priv))) in intel_runtime_resume()
1723 drm_dbg(&dev_priv->drm, "Resuming device\n"); in intel_runtime_resume()
1725 drm_WARN_ON_ONCE(&dev_priv->drm, atomic_read(&rpm->wakeref_count)); in intel_runtime_resume()
1728 intel_opregion_notify_adapter(dev_priv, PCI_D0); in intel_runtime_resume()
1730 if (intel_uncore_unclaimed_mmio(&dev_priv->uncore)) in intel_runtime_resume()
1731 drm_dbg(&dev_priv->drm, in intel_runtime_resume()
1734 intel_display_power_resume(dev_priv); in intel_runtime_resume()
1736 ret = vlv_resume_prepare(dev_priv, true); in intel_runtime_resume()
1738 for_each_gt(gt, dev_priv, i) in intel_runtime_resume()
1741 intel_runtime_pm_enable_interrupts(dev_priv); in intel_runtime_resume()
1747 for_each_gt(gt, dev_priv, i) in intel_runtime_resume()
1755 if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv)) { in intel_runtime_resume()
1756 intel_hpd_init(dev_priv); in intel_runtime_resume()
1757 intel_hpd_poll_disable(dev_priv); in intel_runtime_resume()
1760 skl_watermark_ipc_update(dev_priv); in intel_runtime_resume()
1765 drm_err(&dev_priv->drm, in intel_runtime_resume()
1768 drm_dbg(&dev_priv->drm, "Device resumed\n"); in intel_runtime_resume()