Lines Matching full:i915
80 void intel_display_driver_init_hw(struct drm_i915_private *i915) in intel_display_driver_init_hw() argument
84 if (!HAS_DISPLAY(i915)) in intel_display_driver_init_hw()
87 cdclk_state = to_intel_cdclk_state(i915->display.cdclk.obj.state); in intel_display_driver_init_hw()
89 intel_update_cdclk(i915); in intel_display_driver_init_hw()
90 intel_cdclk_dump_config(i915, &i915->display.cdclk.hw, "Current CDCLK"); in intel_display_driver_init_hw()
91 cdclk_state->logical = cdclk_state->actual = i915->display.cdclk.hw; in intel_display_driver_init_hw()
93 intel_display_wa_apply(i915); in intel_display_driver_init_hw()
112 static void intel_mode_config_init(struct drm_i915_private *i915) in intel_mode_config_init() argument
114 struct drm_mode_config *mode_config = &i915->drm.mode_config; in intel_mode_config_init()
116 drm_mode_config_init(&i915->drm); in intel_mode_config_init()
117 INIT_LIST_HEAD(&i915->display.global.obj_list); in intel_mode_config_init()
128 mode_config->async_page_flip = HAS_ASYNC_FLIPS(i915); in intel_mode_config_init()
134 if (DISPLAY_VER(i915) >= 7) { in intel_mode_config_init()
137 } else if (DISPLAY_VER(i915) >= 4) { in intel_mode_config_init()
140 } else if (DISPLAY_VER(i915) == 3) { in intel_mode_config_init()
148 if (IS_I845G(i915) || IS_I865G(i915)) { in intel_mode_config_init()
149 mode_config->cursor_width = IS_I845G(i915) ? 64 : 512; in intel_mode_config_init()
151 } else if (IS_I830(i915) || IS_I85X(i915) || in intel_mode_config_init()
152 IS_I915G(i915) || IS_I915GM(i915)) { in intel_mode_config_init()
161 static void intel_mode_config_cleanup(struct drm_i915_private *i915) in intel_mode_config_cleanup() argument
163 intel_atomic_global_obj_cleanup(i915); in intel_mode_config_cleanup()
164 drm_mode_config_cleanup(&i915->drm); in intel_mode_config_cleanup()
179 void intel_display_driver_early_probe(struct drm_i915_private *i915) in intel_display_driver_early_probe() argument
181 if (!HAS_DISPLAY(i915)) in intel_display_driver_early_probe()
184 spin_lock_init(&i915->display.fb_tracking.lock); in intel_display_driver_early_probe()
185 mutex_init(&i915->display.backlight.lock); in intel_display_driver_early_probe()
186 mutex_init(&i915->display.audio.mutex); in intel_display_driver_early_probe()
187 mutex_init(&i915->display.wm.wm_mutex); in intel_display_driver_early_probe()
188 mutex_init(&i915->display.pps.mutex); in intel_display_driver_early_probe()
189 mutex_init(&i915->display.hdcp.hdcp_mutex); in intel_display_driver_early_probe()
191 intel_display_irq_init(i915); in intel_display_driver_early_probe()
192 intel_dkl_phy_init(i915); in intel_display_driver_early_probe()
193 intel_color_init_hooks(i915); in intel_display_driver_early_probe()
194 intel_init_cdclk_hooks(i915); in intel_display_driver_early_probe()
195 intel_audio_hooks_init(i915); in intel_display_driver_early_probe()
196 intel_dpll_init_clock_hook(i915); in intel_display_driver_early_probe()
197 intel_init_display_hooks(i915); in intel_display_driver_early_probe()
198 intel_fdi_init_hook(i915); in intel_display_driver_early_probe()
202 int intel_display_driver_probe_noirq(struct drm_i915_private *i915) in intel_display_driver_probe_noirq() argument
206 if (i915_inject_probe_failure(i915)) in intel_display_driver_probe_noirq()
209 if (HAS_DISPLAY(i915)) { in intel_display_driver_probe_noirq()
210 ret = drm_vblank_init(&i915->drm, in intel_display_driver_probe_noirq()
211 INTEL_NUM_PIPES(i915)); in intel_display_driver_probe_noirq()
216 intel_bios_init(i915); in intel_display_driver_probe_noirq()
218 ret = intel_vga_register(i915); in intel_display_driver_probe_noirq()
223 ret = intel_power_domains_init(i915); in intel_display_driver_probe_noirq()
227 intel_pmdemand_init_early(i915); in intel_display_driver_probe_noirq()
229 intel_power_domains_init_hw(i915, false); in intel_display_driver_probe_noirq()
231 if (!HAS_DISPLAY(i915)) in intel_display_driver_probe_noirq()
234 intel_dmc_init(i915); in intel_display_driver_probe_noirq()
236 i915->display.wq.modeset = alloc_ordered_workqueue("i915_modeset", 0); in intel_display_driver_probe_noirq()
237 i915->display.wq.flip = alloc_workqueue("i915_flip", WQ_HIGHPRI | in intel_display_driver_probe_noirq()
240 intel_mode_config_init(i915); in intel_display_driver_probe_noirq()
242 ret = intel_cdclk_init(i915); in intel_display_driver_probe_noirq()
246 ret = intel_color_init(i915); in intel_display_driver_probe_noirq()
250 ret = intel_dbuf_init(i915); in intel_display_driver_probe_noirq()
254 ret = intel_bw_init(i915); in intel_display_driver_probe_noirq()
258 ret = intel_pmdemand_init(i915); in intel_display_driver_probe_noirq()
262 intel_init_quirks(i915); in intel_display_driver_probe_noirq()
264 intel_fbc_init(i915); in intel_display_driver_probe_noirq()
269 intel_dmc_fini(i915); in intel_display_driver_probe_noirq()
270 intel_power_domains_driver_remove(i915); in intel_display_driver_probe_noirq()
272 intel_vga_unregister(i915); in intel_display_driver_probe_noirq()
274 intel_bios_driver_remove(i915); in intel_display_driver_probe_noirq()
280 int intel_display_driver_probe_nogem(struct drm_i915_private *i915) in intel_display_driver_probe_nogem() argument
282 struct drm_device *dev = &i915->drm; in intel_display_driver_probe_nogem()
287 if (!HAS_DISPLAY(i915)) in intel_display_driver_probe_nogem()
290 intel_wm_init(i915); in intel_display_driver_probe_nogem()
292 intel_panel_sanitize_ssc(i915); in intel_display_driver_probe_nogem()
294 intel_pps_setup(i915); in intel_display_driver_probe_nogem()
296 intel_gmbus_setup(i915); in intel_display_driver_probe_nogem()
298 drm_dbg_kms(&i915->drm, "%d display pipe%s available.\n", in intel_display_driver_probe_nogem()
299 INTEL_NUM_PIPES(i915), in intel_display_driver_probe_nogem()
300 INTEL_NUM_PIPES(i915) > 1 ? "s" : ""); in intel_display_driver_probe_nogem()
302 for_each_pipe(i915, pipe) { in intel_display_driver_probe_nogem()
303 ret = intel_crtc_init(i915, pipe); in intel_display_driver_probe_nogem()
305 intel_mode_config_cleanup(i915); in intel_display_driver_probe_nogem()
310 intel_plane_possible_crtcs_init(i915); in intel_display_driver_probe_nogem()
311 intel_shared_dpll_init(i915); in intel_display_driver_probe_nogem()
312 intel_fdi_pll_freq_update(i915); in intel_display_driver_probe_nogem()
314 intel_update_czclk(i915); in intel_display_driver_probe_nogem()
315 intel_display_driver_init_hw(i915); in intel_display_driver_probe_nogem()
316 intel_dpll_update_ref_clks(i915); in intel_display_driver_probe_nogem()
318 intel_hdcp_component_init(i915); in intel_display_driver_probe_nogem()
320 if (i915->display.cdclk.max_cdclk_freq == 0) in intel_display_driver_probe_nogem()
321 intel_update_max_cdclk(i915); in intel_display_driver_probe_nogem()
323 intel_hti_init(i915); in intel_display_driver_probe_nogem()
326 intel_vga_disable(i915); in intel_display_driver_probe_nogem()
327 intel_setup_outputs(i915); in intel_display_driver_probe_nogem()
330 intel_modeset_setup_hw_state(i915, dev->mode_config.acquire_ctx); in intel_display_driver_probe_nogem()
331 intel_acpi_assign_connector_fwnodes(i915); in intel_display_driver_probe_nogem()
345 if (!HAS_GMCH(i915)) in intel_display_driver_probe_nogem()
346 ilk_wm_sanitize(i915); in intel_display_driver_probe_nogem()
352 int intel_display_driver_probe(struct drm_i915_private *i915) in intel_display_driver_probe() argument
356 if (!HAS_DISPLAY(i915)) in intel_display_driver_probe()
365 ret = intel_initial_commit(&i915->drm); in intel_display_driver_probe()
367 drm_dbg_kms(&i915->drm, "Initial modeset failed, %d\n", ret); in intel_display_driver_probe()
369 intel_overlay_setup(i915); in intel_display_driver_probe()
371 ret = intel_fbdev_init(&i915->drm); in intel_display_driver_probe()
376 intel_hpd_init(i915); in intel_display_driver_probe()
377 intel_hpd_poll_disable(i915); in intel_display_driver_probe()
379 skl_watermark_ipc_init(i915); in intel_display_driver_probe()
384 void intel_display_driver_register(struct drm_i915_private *i915) in intel_display_driver_register() argument
386 struct drm_printer p = drm_debug_printer("i915 display info:"); in intel_display_driver_register()
388 if (!HAS_DISPLAY(i915)) in intel_display_driver_register()
392 intel_opregion_register(i915); in intel_display_driver_register()
393 intel_acpi_video_register(i915); in intel_display_driver_register()
395 intel_audio_init(i915); in intel_display_driver_register()
397 intel_display_debugfs_register(i915); in intel_display_driver_register()
407 intel_fbdev_initial_config_async(i915); in intel_display_driver_register()
414 drm_kms_helper_poll_init(&i915->drm); in intel_display_driver_register()
416 intel_display_device_info_print(DISPLAY_INFO(i915), in intel_display_driver_register()
417 DISPLAY_RUNTIME_INFO(i915), &p); in intel_display_driver_register()
421 void intel_display_driver_remove(struct drm_i915_private *i915) in intel_display_driver_remove() argument
423 if (!HAS_DISPLAY(i915)) in intel_display_driver_remove()
426 flush_workqueue(i915->display.wq.flip); in intel_display_driver_remove()
427 flush_workqueue(i915->display.wq.modeset); in intel_display_driver_remove()
434 intel_dp_mst_suspend(i915); in intel_display_driver_remove()
438 void intel_display_driver_remove_noirq(struct drm_i915_private *i915) in intel_display_driver_remove_noirq() argument
440 if (!HAS_DISPLAY(i915)) in intel_display_driver_remove_noirq()
447 intel_hpd_poll_fini(i915); in intel_display_driver_remove_noirq()
450 intel_fbdev_fini(i915); in intel_display_driver_remove_noirq()
455 flush_workqueue(i915->unordered_wq); in intel_display_driver_remove_noirq()
457 intel_hdcp_component_fini(i915); in intel_display_driver_remove_noirq()
459 intel_mode_config_cleanup(i915); in intel_display_driver_remove_noirq()
461 intel_overlay_cleanup(i915); in intel_display_driver_remove_noirq()
463 intel_gmbus_teardown(i915); in intel_display_driver_remove_noirq()
465 destroy_workqueue(i915->display.wq.flip); in intel_display_driver_remove_noirq()
466 destroy_workqueue(i915->display.wq.modeset); in intel_display_driver_remove_noirq()
468 intel_fbc_cleanup(i915); in intel_display_driver_remove_noirq()
472 void intel_display_driver_remove_nogem(struct drm_i915_private *i915) in intel_display_driver_remove_nogem() argument
474 intel_dmc_fini(i915); in intel_display_driver_remove_nogem()
476 intel_power_domains_driver_remove(i915); in intel_display_driver_remove_nogem()
478 intel_vga_unregister(i915); in intel_display_driver_remove_nogem()
480 intel_bios_driver_remove(i915); in intel_display_driver_remove_nogem()
483 void intel_display_driver_unregister(struct drm_i915_private *i915) in intel_display_driver_unregister() argument
485 if (!HAS_DISPLAY(i915)) in intel_display_driver_unregister()
488 intel_fbdev_unregister(i915); in intel_display_driver_unregister()
489 intel_audio_deinit(i915); in intel_display_driver_unregister()
496 drm_kms_helper_poll_fini(&i915->drm); in intel_display_driver_unregister()
497 drm_atomic_helper_shutdown(&i915->drm); in intel_display_driver_unregister()
500 intel_opregion_unregister(i915); in intel_display_driver_unregister()
507 int intel_display_driver_suspend(struct drm_i915_private *i915) in intel_display_driver_suspend() argument
512 if (!HAS_DISPLAY(i915)) in intel_display_driver_suspend()
515 state = drm_atomic_helper_suspend(&i915->drm); in intel_display_driver_suspend()
518 drm_err(&i915->drm, "Suspending crtc's failed with %i\n", in intel_display_driver_suspend()
521 i915->display.restore.modeset_state = state; in intel_display_driver_suspend()
526 __intel_display_driver_resume(struct drm_i915_private *i915, in __intel_display_driver_resume() argument
534 intel_modeset_setup_hw_state(i915, ctx); in __intel_display_driver_resume()
535 intel_vga_redisable(i915); in __intel_display_driver_resume()
555 if (!HAS_GMCH(i915)) in __intel_display_driver_resume()
560 drm_WARN_ON(&i915->drm, ret == -EDEADLK); in __intel_display_driver_resume()
565 void intel_display_driver_resume(struct drm_i915_private *i915) in intel_display_driver_resume() argument
567 struct drm_atomic_state *state = i915->display.restore.modeset_state; in intel_display_driver_resume()
571 if (!HAS_DISPLAY(i915)) in intel_display_driver_resume()
574 i915->display.restore.modeset_state = NULL; in intel_display_driver_resume()
581 ret = drm_modeset_lock_all_ctx(&i915->drm, &ctx); in intel_display_driver_resume()
589 ret = __intel_display_driver_resume(i915, state, &ctx); in intel_display_driver_resume()
591 skl_watermark_ipc_update(i915); in intel_display_driver_resume()
596 drm_err(&i915->drm, in intel_display_driver_resume()