Lines Matching defs:dev_priv

111 static int i915_workqueues_init(struct drm_i915_private *dev_priv)
127 dev_priv->wq = alloc_ordered_workqueue("i915", 0);
128 if (dev_priv->wq == NULL)
131 dev_priv->display.hotplug.dp_wq = alloc_ordered_workqueue("i915-dp", 0);
132 if (dev_priv->display.hotplug.dp_wq == NULL)
141 dev_priv->unordered_wq = alloc_workqueue("i915-unordered", 0, 0);
142 if (dev_priv->unordered_wq == NULL)
148 destroy_workqueue(dev_priv->display.hotplug.dp_wq);
150 destroy_workqueue(dev_priv->wq);
152 drm_err(&dev_priv->drm, "Failed to allocate workqueues.\n");
157 static void i915_workqueues_cleanup(struct drm_i915_private *dev_priv)
159 destroy_workqueue(dev_priv->unordered_wq);
160 destroy_workqueue(dev_priv->display.hotplug.dp_wq);
161 destroy_workqueue(dev_priv->wq);
174 static void intel_detect_preproduction_hw(struct drm_i915_private *dev_priv)
178 pre |= IS_HASWELL_EARLY_SDV(dev_priv);
179 pre |= IS_SKYLAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x6;
180 pre |= IS_BROXTON(dev_priv) && INTEL_REVID(dev_priv) < 0xA;
181 pre |= IS_KABYLAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x1;
182 pre |= IS_GEMINILAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x3;
183 pre |= IS_ICELAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x7;
184 pre |= IS_TIGERLAKE(dev_priv) && INTEL_REVID(dev_priv) < 0x1;
185 pre |= IS_DG1(dev_priv) && INTEL_REVID(dev_priv) < 0x1;
188 drm_err(&dev_priv->drm, "This is a pre-production stepping. "
207 * @dev_priv: device private
215 static int i915_driver_early_probe(struct drm_i915_private *dev_priv)
219 if (i915_inject_probe_failure(dev_priv))
222 intel_device_info_runtime_init_early(dev_priv);
224 intel_step_init(dev_priv);
226 intel_uncore_mmio_debug_init_early(dev_priv);
228 mtx_init(&dev_priv->irq_lock, IPL_TTY);
229 mtx_init(&dev_priv->gpu_error.lock, IPL_TTY);
230 rw_init(&dev_priv->display.backlight.lock, "blight");
232 rw_init(&dev_priv->sb_lock, "sb");
233 cpu_latency_qos_add_request(&dev_priv->sb_qos, PM_QOS_DEFAULT_VALUE);
235 rw_init(&dev_priv->display.audio.mutex, "daud");
236 rw_init(&dev_priv->display.wm.wm_mutex, "wmm");
237 rw_init(&dev_priv->display.pps.mutex, "ppsm");
238 rw_init(&dev_priv->display.hdcp.hdcp_mutex, "hdcpc");
240 i915_memcpy_init_early(dev_priv);
241 intel_runtime_pm_init_early(&dev_priv->runtime_pm);
243 ret = i915_workqueues_init(dev_priv);
247 ret = vlv_suspend_init(dev_priv);
252 dev_priv->bdev.iot = dev_priv->iot;
253 dev_priv->bdev.memt = dev_priv->bst;
254 dev_priv->bdev.dmat = dev_priv->dmat;
257 ret = intel_region_ttm_device_init(dev_priv);
261 ret = intel_root_gt_init_early(dev_priv);
265 i915_gem_init_early(dev_priv);
268 intel_detect_pch(dev_priv);
270 intel_irq_init(dev_priv);
271 intel_display_driver_early_probe(dev_priv);
272 intel_clock_gating_hooks_init(dev_priv);
274 intel_detect_preproduction_hw(dev_priv);
279 intel_region_ttm_device_fini(dev_priv);
281 vlv_suspend_cleanup(dev_priv);
283 i915_workqueues_cleanup(dev_priv);
290 * @dev_priv: device private
292 static void i915_driver_late_release(struct drm_i915_private *dev_priv)
294 intel_irq_fini(dev_priv);
295 intel_power_domains_cleanup(dev_priv);
296 i915_gem_cleanup_early(dev_priv);
297 intel_gt_driver_late_release_all(dev_priv);
298 intel_region_ttm_device_fini(dev_priv);
299 vlv_suspend_cleanup(dev_priv);
300 i915_workqueues_cleanup(dev_priv);
302 cpu_latency_qos_remove_request(&dev_priv->sb_qos);
303 mutex_destroy(&dev_priv->sb_lock);
305 i915_params_free(&dev_priv->params);
310 * @dev_priv: device private
317 static int i915_driver_mmio_probe(struct drm_i915_private *dev_priv)
322 if (i915_inject_probe_failure(dev_priv))
325 ret = intel_gmch_bridge_setup(dev_priv);
329 for_each_gt(gt, dev_priv, i) {
334 ret = drmm_add_action_or_reset(&dev_priv->drm,
342 intel_gmch_bar_setup(dev_priv);
343 intel_device_info_runtime_init(dev_priv);
345 for_each_gt(gt, dev_priv, i) {
352 sanitize_gpu(dev_priv);
357 intel_gmch_bar_teardown(dev_priv);
364 * @dev_priv: device private
366 static void i915_driver_mmio_release(struct drm_i915_private *dev_priv)
368 intel_gmch_bar_teardown(dev_priv);
444 * @dev_priv: device private
449 static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
451 struct pci_dev *pdev = dev_priv->drm.pdev;
454 if (i915_inject_probe_failure(dev_priv))
457 if (HAS_PPGTT(dev_priv)) {
458 if (intel_vgpu_active(dev_priv) &&
459 !intel_vgpu_has_full_ppgtt(dev_priv)) {
460 i915_report_error(dev_priv,
466 if (HAS_EXECLISTS(dev_priv)) {
472 if (intel_vgpu_active(dev_priv) &&
473 !intel_vgpu_has_hwsp_emulation(dev_priv)) {
474 i915_report_error(dev_priv,
481 intel_dram_edram_detect(dev_priv);
483 ret = i915_set_dma_info(dev_priv);
487 ret = i915_perf_init(dev_priv);
491 ret = i915_ggtt_probe_hw(dev_priv);
495 ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, dev_priv->drm.driver);
499 ret = i915_ggtt_init_hw(dev_priv);
507 ret = intel_gt_tiles_init(dev_priv);
511 ret = intel_memory_regions_hw_probe(dev_priv);
515 ret = i915_ggtt_enable_hw(dev_priv);
517 drm_err(&dev_priv->drm, "failed to enable GGTT\n");
542 if (GRAPHICS_VER(dev_priv) >= 5) {
544 drm_dbg(&dev_priv->drm, "can't enable MSI");
547 ret = intel_gvt_init(dev_priv);
551 intel_opregion_setup(dev_priv);
553 ret = i915_pcode_init(dev_priv);
561 intel_dram_detect(dev_priv);
563 intel_bw_init_hw(dev_priv);
568 intel_opregion_cleanup(dev_priv);
573 intel_memory_regions_driver_release(dev_priv);
575 i915_ggtt_driver_release(dev_priv);
576 i915_gem_drain_freed_objects(dev_priv);
577 i915_ggtt_driver_late_release(dev_priv);
579 i915_perf_fini(dev_priv);
585 * @dev_priv: device private
587 static void i915_driver_hw_remove(struct drm_i915_private *dev_priv)
589 struct pci_dev *pdev = dev_priv->drm.pdev;
591 i915_perf_fini(dev_priv);
593 intel_opregion_cleanup(dev_priv);
601 * @dev_priv: device private
606 static void i915_driver_register(struct drm_i915_private *dev_priv)
611 i915_gem_driver_register(dev_priv);
612 i915_pmu_register(dev_priv);
614 intel_vgpu_register(dev_priv);
617 if (drm_dev_register(&dev_priv->drm, 0)) {
618 drm_err(&dev_priv->drm,
623 i915_debugfs_register(dev_priv);
624 i915_setup_sysfs(dev_priv);
627 i915_perf_register(dev_priv);
629 for_each_gt(gt, dev_priv, i)
632 intel_pxp_debugfs_register(dev_priv->pxp);
634 i915_hwmon_register(dev_priv);
636 intel_display_driver_register(dev_priv);
638 intel_power_domains_enable(dev_priv);
639 intel_runtime_pm_enable(&dev_priv->runtime_pm);
643 if (i915_switcheroo_register(dev_priv))
644 drm_err(&dev_priv->drm, "Failed to register vga switcheroo!\n");
649 * @dev_priv: device private
651 static void i915_driver_unregister(struct drm_i915_private *dev_priv)
656 i915_switcheroo_unregister(dev_priv);
660 intel_runtime_pm_disable(&dev_priv->runtime_pm);
661 intel_power_domains_disable(dev_priv);
663 intel_display_driver_unregister(dev_priv);
665 intel_pxp_fini(dev_priv);
667 for_each_gt(gt, dev_priv, i)
670 i915_hwmon_unregister(dev_priv);
672 i915_perf_unregister(dev_priv);
673 i915_pmu_unregister(dev_priv);
675 i915_teardown_sysfs(dev_priv);
676 drm_dev_unplug(&dev_priv->drm);
678 i915_gem_driver_unregister(dev_priv);
688 static void i915_welcome_messages(struct drm_i915_private *dev_priv)
696 INTEL_DEVID(dev_priv),
697 INTEL_REVID(dev_priv),
698 intel_platform_name(INTEL_INFO(dev_priv)->platform),
699 intel_subplatform(RUNTIME_INFO(dev_priv),
700 INTEL_INFO(dev_priv)->platform),
701 GRAPHICS_VER(dev_priv));
703 intel_device_info_print(INTEL_INFO(dev_priv),
704 RUNTIME_INFO(dev_priv), &p);
705 intel_display_device_info_print(DISPLAY_INFO(dev_priv),
706 DISPLAY_RUNTIME_INFO(dev_priv), &p);
707 i915_print_iommu_status(dev_priv, &p);
708 for_each_gt(gt, dev_priv, i)
713 drm_info(&dev_priv->drm, "DRM_I915_DEBUG enabled\n");
715 drm_info(&dev_priv->drm, "DRM_I915_DEBUG_GEM enabled\n");
717 drm_info(&dev_priv->drm,
903 struct drm_i915_private *dev_priv = to_i915(dev);
904 struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
907 if (!dev_priv->do_release)
912 i915_gem_driver_release(dev_priv);
914 intel_memory_regions_driver_release(dev_priv);
915 i915_ggtt_driver_release(dev_priv);
916 i915_gem_drain_freed_objects(dev_priv);
917 i915_ggtt_driver_late_release(dev_priv);
919 i915_driver_mmio_release(dev_priv);
925 i915_driver_late_release(dev_priv);
974 static void intel_suspend_encoders(struct drm_i915_private *dev_priv)
978 if (!HAS_DISPLAY(dev_priv))
985 drm_modeset_lock_all(&dev_priv->drm);
986 for_each_intel_encoder(&dev_priv->drm, encoder)
989 drm_modeset_unlock_all(&dev_priv->drm);
991 for_each_intel_encoder(&dev_priv->drm, encoder)
996 static void intel_shutdown_encoders(struct drm_i915_private *dev_priv)
1000 if (!HAS_DISPLAY(dev_priv))
1007 drm_modeset_lock_all(&dev_priv->drm);
1008 for_each_intel_encoder(&dev_priv->drm, encoder)
1011 drm_modeset_unlock_all(&dev_priv->drm);
1013 for_each_intel_encoder(&dev_priv->drm, encoder)
1059 static bool suspend_to_idle(struct drm_i915_private *dev_priv)
1092 struct drm_i915_private *dev_priv = to_i915(dev);
1093 struct pci_dev *pdev = dev_priv->drm.pdev;
1096 disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
1100 intel_power_domains_disable(dev_priv);
1101 if (HAS_DISPLAY(dev_priv))
1106 intel_display_driver_suspend(dev_priv);
1108 intel_dp_mst_suspend(dev_priv);
1110 intel_runtime_pm_disable_interrupts(dev_priv);
1111 intel_hpd_cancel_work(dev_priv);
1113 intel_suspend_encoders(dev_priv);
1116 intel_dpt_suspend(dev_priv);
1117 i915_ggtt_suspend(to_gt(dev_priv)->ggtt);
1119 i915_save_display(dev_priv);
1121 opregion_target_state = suspend_to_idle(dev_priv) ? PCI_D1 : PCI_D3cold;
1122 intel_opregion_suspend(dev_priv, opregion_target_state);
1126 dev_priv->suspend_count++;
1128 intel_dmc_suspend(dev_priv);
1130 enable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
1132 i915_gem_drain_freed_objects(dev_priv);
1139 struct drm_i915_private *dev_priv = to_i915(dev);
1140 struct pci_dev *pdev = dev_priv->drm.pdev;
1141 struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
1144 bool s2idle = !hibernation && suspend_to_idle(dev_priv);
1148 intel_pxp_suspend(dev_priv->pxp);
1150 i915_gem_suspend_late(dev_priv);
1152 for_each_gt(gt, dev_priv, i)
1155 intel_power_domains_suspend(dev_priv, s2idle);
1157 intel_display_power_suspend_late(dev_priv);
1159 ret = vlv_suspend_complete(dev_priv);
1161 drm_err(&dev_priv->drm, "Suspend complete failed: %d\n", ret);
1162 intel_power_domains_resume(dev_priv);
1180 if (!(hibernation && GRAPHICS_VER(dev_priv) < 6))
1185 if (!dev_priv->uncore.user_forcewake_count)
1214 struct drm_i915_private *dev_priv = to_i915(dev);
1218 disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
1220 ret = i915_pcode_init(dev_priv);
1224 sanitize_gpu(dev_priv);
1226 ret = i915_ggtt_enable_hw(dev_priv);
1228 drm_err(&dev_priv->drm, "failed to re-enable GGTT\n");
1230 i915_ggtt_resume(to_gt(dev_priv)->ggtt);
1232 for_each_gt(gt, dev_priv, i)
1237 intel_dpt_resume(dev_priv);
1239 intel_dmc_resume(dev_priv);
1241 i915_restore_display(dev_priv);
1242 intel_pps_unlock_regs_wa(dev_priv);
1244 intel_init_pch_refclk(dev_priv);
1256 intel_runtime_pm_enable_interrupts(dev_priv);
1258 if (HAS_DISPLAY(dev_priv))
1261 i915_gem_resume(dev_priv);
1263 intel_display_driver_init_hw(dev_priv);
1265 intel_clock_gating_init(dev_priv);
1266 intel_hpd_init(dev_priv);
1269 intel_dp_mst_resume(dev_priv);
1270 intel_display_driver_resume(dev_priv);
1272 intel_hpd_poll_disable(dev_priv);
1273 if (HAS_DISPLAY(dev_priv))
1276 intel_opregion_resume(dev_priv);
1280 intel_power_domains_enable(dev_priv);
1282 intel_gvt_resume(dev_priv);
1284 enable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
1291 struct drm_i915_private *dev_priv = to_i915(dev);
1292 struct pci_dev *pdev = dev_priv->drm.pdev;
1318 drm_err(&dev_priv->drm,
1341 disable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
1343 ret = vlv_resume_prepare(dev_priv, false);
1345 drm_err(&dev_priv->drm,
1348 for_each_gt(gt, dev_priv, i) {
1353 intel_display_power_resume_early(dev_priv);
1355 intel_power_domains_resume(dev_priv);
1357 enable_rpm_wakeref_asserts(&dev_priv->runtime_pm);
1528 struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
1529 struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
1530 struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
1535 if (drm_WARN_ON_ONCE(&dev_priv->drm, !HAS_RUNTIME_PM(dev_priv)))
1538 drm_dbg(&dev_priv->drm, "Suspending device\n");
1546 i915_gem_runtime_suspend(dev_priv);
1548 intel_pxp_runtime_suspend(dev_priv->pxp);
1550 for_each_gt(gt, dev_priv, i)
1553 intel_runtime_pm_disable_interrupts(dev_priv);
1555 for_each_gt(gt, dev_priv, i)
1558 intel_display_power_suspend(dev_priv);
1560 ret = vlv_suspend_complete(dev_priv);
1562 drm_err(&dev_priv->drm,
1564 intel_uncore_runtime_resume(&dev_priv->uncore);
1566 intel_runtime_pm_enable_interrupts(dev_priv);
1568 for_each_gt(gt, dev_priv, i)
1579 if (intel_uncore_arm_unclaimed_mmio_detection(&dev_priv->uncore))
1580 drm_err(&dev_priv->drm,
1598 if (IS_BROADWELL(dev_priv)) {
1605 intel_opregion_notify_adapter(dev_priv, PCI_D3hot);
1614 intel_opregion_notify_adapter(dev_priv, PCI_D1);
1617 assert_forcewakes_inactive(&dev_priv->uncore);
1619 if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv))
1620 intel_hpd_poll_enable(dev_priv);
1622 drm_dbg(&dev_priv->drm, "Device suspended\n");
1628 struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
1629 struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
1630 struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
1635 if (drm_WARN_ON_ONCE(&dev_priv->drm, !HAS_RUNTIME_PM(dev_priv)))
1638 drm_dbg(&dev_priv->drm, "Resuming device\n");
1640 drm_WARN_ON_ONCE(&dev_priv->drm, atomic_read(&rpm->wakeref_count));
1643 intel_opregion_notify_adapter(dev_priv, PCI_D0);
1650 if (intel_uncore_unclaimed_mmio(&dev_priv->uncore))
1651 drm_dbg(&dev_priv->drm,
1654 intel_display_power_resume(dev_priv);
1656 ret = vlv_resume_prepare(dev_priv, true);
1658 for_each_gt(gt, dev_priv, i)
1661 intel_runtime_pm_enable_interrupts(dev_priv);
1667 for_each_gt(gt, dev_priv, i)
1670 intel_pxp_runtime_resume(dev_priv->pxp);
1677 if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv)) {
1678 intel_hpd_init(dev_priv);
1679 intel_hpd_poll_disable(dev_priv);
1682 skl_watermark_ipc_update(dev_priv);
1687 drm_err(&dev_priv->drm,
1690 drm_dbg(&dev_priv->drm, "Device resumed\n");
1973 struct inteldrm_softc *dev_priv = v;
1974 struct backlight_device *bd = dev_priv->backlight;
1975 struct rasops_info *ri = &dev_priv->ro;
2018 knote_locked(&dev_priv->drm.note, NOTE_CHANGE);
2040 struct inteldrm_softc *dev_priv = v;
2041 struct rasops_info *ri = &dev_priv->ro;
2049 struct inteldrm_softc *dev_priv = v;
2050 struct rasops_info *ri = &dev_priv->ro;
2059 struct inteldrm_softc *dev_priv = v;
2060 struct rasops_info *ri = &dev_priv->ro;
2065 dev_priv->switchcb = cb;
2066 dev_priv->switchcbarg = cbarg;
2067 dev_priv->switchcookie = cookie;
2069 task_add(systq, &dev_priv->switchtask);
2081 struct inteldrm_softc *dev_priv = v;
2082 struct rasops_info *ri = &dev_priv->ro;
2084 rasops_show_screen(ri, dev_priv->switchcookie, 0, NULL, NULL);
2085 intel_fbdev_restore_mode(dev_priv);
2087 if (dev_priv->switchcb)
2088 (*dev_priv->switchcb)(dev_priv->switchcbarg, 0, 0);
2094 struct inteldrm_softc *dev_priv = v;
2095 struct rasops_info *ri = &dev_priv->ro;
2101 intel_fbdev_restore_mode(dev_priv);
2107 struct inteldrm_softc *dev_priv = v;
2108 struct rasops_info *ri = &dev_priv->ro;
2116 struct inteldrm_softc *dev_priv = v;
2117 struct rasops_info *ri = &dev_priv->ro;
2125 struct inteldrm_softc *dev_priv = v;
2126 struct rasops_info *ri = &dev_priv->ro;
2134 struct inteldrm_softc *dev_priv = v;
2136 task_del(systq, &dev_priv->burner_task);
2139 dev_priv->burner_fblank = FB_BLANK_UNBLANK;
2142 dev_priv->burner_fblank = FB_BLANK_VSYNC_SUSPEND;
2144 dev_priv->burner_fblank = FB_BLANK_NORMAL;
2151 task_add(systq, &dev_priv->burner_task);
2157 struct inteldrm_softc *dev_priv = arg1;
2158 struct drm_device *dev = &dev_priv->drm;
2161 drm_fb_helper_blank(dev_priv->burner_fblank, helper->info);
2193 struct inteldrm_softc *dev_priv = v;
2194 struct rasops_info *ri = &dev_priv->ro;
2249 struct inteldrm_softc *dev_priv = (struct inteldrm_softc *)self;
2257 dev_priv->pa = pa;
2258 dev_priv->pc = pa->pa_pc;
2259 dev_priv->tag = pa->pa_tag;
2260 dev_priv->iot = pa->pa_iot;
2261 dev_priv->dmat = pa->pa_dmat;
2262 dev_priv->bst = pa->pa_memt;
2263 dev_priv->memex = pa->pa_memex;
2264 dev_priv->vga_regs = &dev_priv->bar;
2268 dev_priv->id = id;
2276 dev_priv->primary = 1;
2277 dev_priv->console = vga_is_console(pa->pa_iot, -1);
2283 dev_priv->primary = 1;
2284 dev_priv->console = efifb_is_console(pa);
2294 dev_priv->primary = 1;
2295 dev_priv->console = 1;
2303 dev = drm_attach_pci(&i915_drm_driver, pa, 0, dev_priv->primary,
2304 self, &dev_priv->drm);
2306 printf("%s: drm attach failed\n", dev_priv->sc_dev.dv_xname);
2310 pci_set_drvdata(dev->pdev, dev_priv);
2313 i915_params_copy(&dev_priv->params, &i915_modparams);
2314 dev_priv->params.request_timeout_ms = 0;
2315 dev_priv->params.enable_psr = 0;
2318 intel_device_info_driver_create(dev_priv, dev->pdev->device, info);
2321 if (GRAPHICS_VER(dev_priv) >= 12 &&
2322 (INTEL_INFO(dev_priv)->platform != INTEL_TIGERLAKE) &&
2323 (INTEL_INFO(dev_priv)->platform != INTEL_ROCKETLAKE) &&
2324 (INTEL_INFO(dev_priv)->platform != INTEL_XEHPSDV) &&
2325 (INTEL_INFO(dev_priv)->platform != INTEL_PONTEVECCHIO))
2326 dev_priv->params.enable_guc = ENABLE_GUC_LOAD_HUC;
2328 mmio_bar = (GRAPHICS_VER(dev_priv) == 2) ? 0x14 : 0x10;
2342 if (IS_DGFX(dev_priv) || GRAPHICS_VER_FULL(dev_priv) >= IP_VER(12, 70))
2344 else if (GRAPHICS_VER(dev_priv) >= 5)
2351 &dev_priv->vga_regs->bst, &dev_priv->vga_regs->bsh,
2352 &dev_priv->vga_regs->base, &dev_priv->vga_regs->size, mmio_size)) {
2354 dev_priv->sc_dev.dv_xname);
2357 dev_priv->uncore.regs = bus_space_vaddr(dev_priv->vga_regs->bst,
2358 dev_priv->vga_regs->bsh);
2359 if (dev_priv->uncore.regs == NULL) {
2361 dev_priv->sc_dev.dv_xname);
2366 if (GRAPHICS_VER(dev_priv) <= 5) {
2377 if (GRAPHICS_VER(dev_priv) < 5)
2380 if (pci_intr_map_msi(pa, &dev_priv->ih) != 0 &&
2381 pci_intr_map(pa, &dev_priv->ih) != 0) {
2383 dev_priv->sc_dev.dv_xname);
2387 printf("%s: %s, %s, gen %d\n", dev_priv->sc_dev.dv_xname,
2388 pci_intr_string(dev_priv->pc, dev_priv->ih),
2389 intel_platform_name(INTEL_INFO(dev_priv)->platform),
2390 GRAPHICS_VER(dev_priv));
2392 dev_priv->irqh = pci_intr_establish(dev_priv->pc, dev_priv->ih,
2393 IPL_TTY, inteldrm_intr, dev_priv, dev_priv->sc_dev.dv_xname);
2394 if (dev_priv->irqh == NULL) {
2396 dev_priv->sc_dev.dv_xname);
2400 intel_gmch_bridge_setup(dev_priv);
2401 intel_init_stolen_res(dev_priv);
2407 inteldrm_forcedetach(struct inteldrm_softc *dev_priv)
2410 struct pci_softc *psc = (struct pci_softc *)dev_priv->sc_dev.dv_parent;
2411 pcitag_t tag = dev_priv->tag;
2415 if (dev_priv->primary) {
2423 config_detach(&dev_priv->sc_dev, 0);
2433 struct inteldrm_softc *dev_priv = (struct inteldrm_softc *)self;
2434 struct rasops_info *ri = &dev_priv->ro;
2436 const struct pci_device_id *id = dev_priv->id;
2444 if (i915_driver_probe(dev_priv, id))
2450 printf("%s: %dx%d, %dbpp\n", dev_priv->sc_dev.dv_xname,
2462 ri->ri_hw = dev_priv;
2465 task_set(&dev_priv->switchtask, inteldrm_doswitch, dev_priv);
2466 task_set(&dev_priv->burner_task, inteldrm_burner_cb, dev_priv);
2475 aa.console = dev_priv->console;
2476 aa.primary = dev_priv->primary;
2479 aa.accesscookie = dev_priv;
2482 if (dev_priv->console) {
2503 inteldrm_forcedetach(dev_priv);
2515 struct inteldrm_softc *dev_priv = (struct inteldrm_softc *)self;
2516 struct drm_device *dev = &dev_priv->drm;
2527 if (dev_priv->display.wq.modeset == NULL)
2548 intel_fbdev_restore_mode(dev_priv);
2557 inteldrm_native_backlight(struct inteldrm_softc *dev_priv)
2559 struct drm_device *dev = &dev_priv->drm;
2595 if (dev_priv->backlight == NULL)
2596 dev_priv->backlight = bd;
2602 inteldrm_firmware_backlight(struct inteldrm_softc *dev_priv,
2605 struct drm_device *dev = &dev_priv->drm;
2643 inteldrm_init_backlight(struct inteldrm_softc *dev_priv)
2649 inteldrm_firmware_backlight(dev_priv, &dp);
2651 inteldrm_native_backlight(dev_priv);
2657 struct inteldrm_softc *dev_priv = arg;
2659 if (dev_priv->irq_handler)
2660 return dev_priv->irq_handler(0, dev_priv);