diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_drv.h')
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 410 |
1 files changed, 214 insertions, 196 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index e7fe5f1f72df..805dc923d2a5 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -514,81 +514,6 @@ struct intel_unpin_work { | |||
514 | bool enable_stall_check; | 514 | bool enable_stall_check; |
515 | }; | 515 | }; |
516 | 516 | ||
517 | int intel_pch_rawclk(struct drm_device *dev); | ||
518 | |||
519 | int intel_connector_update_modes(struct drm_connector *connector, | ||
520 | struct edid *edid); | ||
521 | int intel_ddc_get_modes(struct drm_connector *c, struct i2c_adapter *adapter); | ||
522 | |||
523 | extern void intel_attach_force_audio_property(struct drm_connector *connector); | ||
524 | extern void intel_attach_broadcast_rgb_property(struct drm_connector *connector); | ||
525 | |||
526 | extern bool intel_pipe_has_type(struct drm_crtc *crtc, int type); | ||
527 | extern void intel_crt_init(struct drm_device *dev); | ||
528 | extern void intel_hdmi_init(struct drm_device *dev, | ||
529 | int hdmi_reg, enum port port); | ||
530 | extern void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port, | ||
531 | struct intel_connector *intel_connector); | ||
532 | extern struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder); | ||
533 | extern bool intel_hdmi_compute_config(struct intel_encoder *encoder, | ||
534 | struct intel_crtc_config *pipe_config); | ||
535 | extern bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, | ||
536 | bool is_sdvob); | ||
537 | extern void intel_dvo_init(struct drm_device *dev); | ||
538 | extern void intel_tv_init(struct drm_device *dev); | ||
539 | extern void intel_mark_busy(struct drm_device *dev); | ||
540 | extern void intel_mark_fb_busy(struct drm_i915_gem_object *obj, | ||
541 | struct intel_ring_buffer *ring); | ||
542 | extern void intel_mark_idle(struct drm_device *dev); | ||
543 | extern void intel_lvds_init(struct drm_device *dev); | ||
544 | extern bool intel_dsi_init(struct drm_device *dev); | ||
545 | extern bool intel_is_dual_link_lvds(struct drm_device *dev); | ||
546 | extern void intel_dp_init(struct drm_device *dev, int output_reg, | ||
547 | enum port port); | ||
548 | extern bool intel_dp_init_connector(struct intel_digital_port *intel_dig_port, | ||
549 | struct intel_connector *intel_connector); | ||
550 | extern void intel_dp_init_link_config(struct intel_dp *intel_dp); | ||
551 | extern void intel_dp_start_link_train(struct intel_dp *intel_dp); | ||
552 | extern void intel_dp_complete_link_train(struct intel_dp *intel_dp); | ||
553 | extern void intel_dp_stop_link_train(struct intel_dp *intel_dp); | ||
554 | extern void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode); | ||
555 | extern void intel_dp_encoder_destroy(struct drm_encoder *encoder); | ||
556 | extern void intel_dp_check_link_status(struct intel_dp *intel_dp); | ||
557 | extern bool intel_dp_compute_config(struct intel_encoder *encoder, | ||
558 | struct intel_crtc_config *pipe_config); | ||
559 | extern bool intel_dpd_is_edp(struct drm_device *dev); | ||
560 | extern void ironlake_edp_backlight_on(struct intel_dp *intel_dp); | ||
561 | extern void ironlake_edp_backlight_off(struct intel_dp *intel_dp); | ||
562 | extern void ironlake_edp_panel_on(struct intel_dp *intel_dp); | ||
563 | extern void ironlake_edp_panel_off(struct intel_dp *intel_dp); | ||
564 | extern void ironlake_edp_panel_vdd_on(struct intel_dp *intel_dp); | ||
565 | extern void ironlake_edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync); | ||
566 | extern int intel_plane_init(struct drm_device *dev, enum pipe pipe, int plane); | ||
567 | extern void intel_flush_display_plane(struct drm_i915_private *dev_priv, | ||
568 | enum plane plane); | ||
569 | |||
570 | /* intel_panel.c */ | ||
571 | extern int intel_panel_init(struct intel_panel *panel, | ||
572 | struct drm_display_mode *fixed_mode); | ||
573 | extern void intel_panel_fini(struct intel_panel *panel); | ||
574 | |||
575 | extern void intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode, | ||
576 | struct drm_display_mode *adjusted_mode); | ||
577 | extern void intel_pch_panel_fitting(struct intel_crtc *crtc, | ||
578 | struct intel_crtc_config *pipe_config, | ||
579 | int fitting_mode); | ||
580 | extern void intel_gmch_panel_fitting(struct intel_crtc *crtc, | ||
581 | struct intel_crtc_config *pipe_config, | ||
582 | int fitting_mode); | ||
583 | extern void intel_panel_set_backlight(struct drm_device *dev, | ||
584 | u32 level, u32 max); | ||
585 | extern int intel_panel_setup_backlight(struct drm_connector *connector); | ||
586 | extern void intel_panel_enable_backlight(struct drm_device *dev, | ||
587 | enum pipe pipe); | ||
588 | extern void intel_panel_disable_backlight(struct drm_device *dev); | ||
589 | extern void intel_panel_destroy_backlight(struct drm_device *dev); | ||
590 | extern enum drm_connector_status intel_panel_detect(struct drm_device *dev); | ||
591 | |||
592 | struct intel_set_config { | 517 | struct intel_set_config { |
593 | struct drm_encoder **save_connector_encoders; | 518 | struct drm_encoder **save_connector_encoders; |
594 | struct drm_crtc **save_encoder_crtcs; | 519 | struct drm_crtc **save_encoder_crtcs; |
@@ -597,18 +522,14 @@ struct intel_set_config { | |||
597 | bool mode_changed; | 522 | bool mode_changed; |
598 | }; | 523 | }; |
599 | 524 | ||
600 | extern void intel_crtc_restore_mode(struct drm_crtc *crtc); | 525 | struct intel_load_detect_pipe { |
601 | extern void intel_crtc_load_lut(struct drm_crtc *crtc); | 526 | struct drm_framebuffer *release_fb; |
602 | extern void intel_crtc_update_dpms(struct drm_crtc *crtc); | 527 | bool load_detect_temp; |
603 | extern void intel_encoder_destroy(struct drm_encoder *encoder); | 528 | int dpms_mode; |
604 | extern void intel_connector_dpms(struct drm_connector *, int mode); | 529 | }; |
605 | extern bool intel_connector_get_hw_state(struct intel_connector *connector); | ||
606 | extern void intel_modeset_check_state(struct drm_device *dev); | ||
607 | extern void intel_plane_restore(struct drm_plane *plane); | ||
608 | extern void intel_plane_disable(struct drm_plane *plane); | ||
609 | |||
610 | 530 | ||
611 | static inline struct intel_encoder *intel_attached_encoder(struct drm_connector *connector) | 531 | static inline struct intel_encoder * |
532 | intel_attached_encoder(struct drm_connector *connector) | ||
612 | { | 533 | { |
613 | return to_intel_connector(connector)->encoder; | 534 | return to_intel_connector(connector)->encoder; |
614 | } | 535 | } |
@@ -636,73 +557,106 @@ hdmi_to_dig_port(struct intel_hdmi *intel_hdmi) | |||
636 | return container_of(intel_hdmi, struct intel_digital_port, hdmi); | 557 | return container_of(intel_hdmi, struct intel_digital_port, hdmi); |
637 | } | 558 | } |
638 | 559 | ||
560 | |||
561 | /* i915_irq.c */ | ||
562 | extern bool intel_set_cpu_fifo_underrun_reporting(struct drm_device *dev, | ||
563 | enum pipe pipe, | ||
564 | bool enable); | ||
565 | extern bool intel_set_pch_fifo_underrun_reporting(struct drm_device *dev, | ||
566 | enum transcoder pch_transcoder, | ||
567 | bool enable); | ||
568 | extern void ilk_enable_gt_irq(struct drm_i915_private *dev_priv, uint32_t mask); | ||
569 | extern void ilk_disable_gt_irq(struct drm_i915_private *dev_priv, | ||
570 | uint32_t mask); | ||
571 | extern void snb_enable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask); | ||
572 | extern void snb_disable_pm_irq(struct drm_i915_private *dev_priv, | ||
573 | uint32_t mask); | ||
574 | extern void hsw_pc8_disable_interrupts(struct drm_device *dev); | ||
575 | extern void hsw_pc8_restore_interrupts(struct drm_device *dev); | ||
576 | |||
577 | |||
578 | /* intel_crt.c */ | ||
579 | extern void intel_crt_init(struct drm_device *dev); | ||
580 | |||
581 | |||
582 | /* intel_ddi.c */ | ||
583 | extern void intel_prepare_ddi(struct drm_device *dev); | ||
584 | extern void hsw_fdi_link_train(struct drm_crtc *crtc); | ||
585 | extern void intel_ddi_init(struct drm_device *dev, enum port port); | ||
586 | extern enum port | ||
587 | intel_ddi_get_encoder_port(struct intel_encoder *intel_encoder); | ||
588 | extern bool intel_ddi_get_hw_state(struct intel_encoder *encoder, | ||
589 | enum pipe *pipe); | ||
590 | extern int intel_ddi_get_cdclk_freq(struct drm_i915_private *dev_priv); | ||
591 | extern void intel_ddi_pll_init(struct drm_device *dev); | ||
592 | extern void intel_ddi_enable_transcoder_func(struct drm_crtc *crtc); | ||
593 | extern void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv, | ||
594 | enum transcoder cpu_transcoder); | ||
595 | extern void intel_ddi_enable_pipe_clock(struct intel_crtc *intel_crtc); | ||
596 | extern void intel_ddi_disable_pipe_clock(struct intel_crtc *intel_crtc); | ||
597 | extern void intel_ddi_setup_hw_pll_state(struct drm_device *dev); | ||
598 | extern bool intel_ddi_pll_mode_set(struct drm_crtc *crtc); | ||
599 | extern void intel_ddi_put_crtc_pll(struct drm_crtc *crtc); | ||
600 | extern void intel_ddi_set_pipe_settings(struct drm_crtc *crtc); | ||
601 | extern void intel_ddi_prepare_link_retrain(struct drm_encoder *encoder); | ||
602 | extern bool | ||
603 | intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector); | ||
604 | extern void intel_ddi_fdi_disable(struct drm_crtc *crtc); | ||
605 | extern void intel_ddi_get_config(struct intel_encoder *encoder, | ||
606 | struct intel_crtc_config *pipe_config); | ||
607 | |||
608 | |||
609 | /* intel_display.c */ | ||
610 | int intel_pch_rawclk(struct drm_device *dev); | ||
611 | extern bool intel_pipe_has_type(struct drm_crtc *crtc, int type); | ||
612 | extern void intel_mark_busy(struct drm_device *dev); | ||
613 | extern void intel_mark_fb_busy(struct drm_i915_gem_object *obj, | ||
614 | struct intel_ring_buffer *ring); | ||
615 | extern void intel_mark_idle(struct drm_device *dev); | ||
616 | extern void intel_crtc_restore_mode(struct drm_crtc *crtc); | ||
617 | extern void intel_crtc_load_lut(struct drm_crtc *crtc); | ||
618 | extern void intel_crtc_update_dpms(struct drm_crtc *crtc); | ||
619 | extern void intel_encoder_destroy(struct drm_encoder *encoder); | ||
620 | extern void intel_connector_dpms(struct drm_connector *, int mode); | ||
621 | extern bool intel_connector_get_hw_state(struct intel_connector *connector); | ||
622 | extern void intel_modeset_check_state(struct drm_device *dev); | ||
639 | bool ibx_digital_port_connected(struct drm_i915_private *dev_priv, | 623 | bool ibx_digital_port_connected(struct drm_i915_private *dev_priv, |
640 | struct intel_digital_port *port); | 624 | struct intel_digital_port *port); |
641 | |||
642 | extern void intel_connector_attach_encoder(struct intel_connector *connector, | 625 | extern void intel_connector_attach_encoder(struct intel_connector *connector, |
643 | struct intel_encoder *encoder); | 626 | struct intel_encoder *encoder); |
644 | extern struct drm_encoder *intel_best_encoder(struct drm_connector *connector); | 627 | extern struct drm_encoder *intel_best_encoder(struct drm_connector *connector); |
645 | |||
646 | extern struct drm_display_mode *intel_crtc_mode_get(struct drm_device *dev, | 628 | extern struct drm_display_mode *intel_crtc_mode_get(struct drm_device *dev, |
647 | struct drm_crtc *crtc); | 629 | struct drm_crtc *crtc); |
648 | int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data, | 630 | int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data, |
649 | struct drm_file *file_priv); | 631 | struct drm_file *file_priv); |
650 | extern enum transcoder | 632 | extern enum transcoder |
651 | intel_pipe_to_cpu_transcoder(struct drm_i915_private *dev_priv, | 633 | intel_pipe_to_cpu_transcoder(struct drm_i915_private *dev_priv, enum pipe pipe); |
652 | enum pipe pipe); | ||
653 | extern void intel_wait_for_vblank(struct drm_device *dev, int pipe); | 634 | extern void intel_wait_for_vblank(struct drm_device *dev, int pipe); |
654 | extern void intel_wait_for_pipe_off(struct drm_device *dev, int pipe); | 635 | extern void intel_wait_for_pipe_off(struct drm_device *dev, int pipe); |
655 | extern int ironlake_get_lanes_required(int target_clock, int link_bw, int bpp); | 636 | extern int ironlake_get_lanes_required(int target_clock, int link_bw, int bpp); |
656 | extern void vlv_wait_port_ready(struct drm_i915_private *dev_priv, int port); | 637 | extern void vlv_wait_port_ready(struct drm_i915_private *dev_priv, int port); |
657 | |||
658 | struct intel_load_detect_pipe { | ||
659 | struct drm_framebuffer *release_fb; | ||
660 | bool load_detect_temp; | ||
661 | int dpms_mode; | ||
662 | }; | ||
663 | extern bool intel_get_load_detect_pipe(struct drm_connector *connector, | 638 | extern bool intel_get_load_detect_pipe(struct drm_connector *connector, |
664 | struct drm_display_mode *mode, | 639 | struct drm_display_mode *mode, |
665 | struct intel_load_detect_pipe *old); | 640 | struct intel_load_detect_pipe *old); |
666 | extern void intel_release_load_detect_pipe(struct drm_connector *connector, | 641 | extern void intel_release_load_detect_pipe(struct drm_connector *connector, |
667 | struct intel_load_detect_pipe *old); | 642 | struct intel_load_detect_pipe *old); |
668 | |||
669 | extern void intel_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green, | 643 | extern void intel_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green, |
670 | u16 blue, int regno); | 644 | u16 blue, int regno); |
671 | extern void intel_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green, | 645 | extern void intel_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green, |
672 | u16 *blue, int regno); | 646 | u16 *blue, int regno); |
673 | |||
674 | extern int intel_pin_and_fence_fb_obj(struct drm_device *dev, | 647 | extern int intel_pin_and_fence_fb_obj(struct drm_device *dev, |
675 | struct drm_i915_gem_object *obj, | 648 | struct drm_i915_gem_object *obj, |
676 | struct intel_ring_buffer *pipelined); | 649 | struct intel_ring_buffer *pipelined); |
677 | extern void intel_unpin_fb_obj(struct drm_i915_gem_object *obj); | 650 | extern void intel_unpin_fb_obj(struct drm_i915_gem_object *obj); |
678 | |||
679 | extern int intel_framebuffer_init(struct drm_device *dev, | 651 | extern int intel_framebuffer_init(struct drm_device *dev, |
680 | struct intel_framebuffer *ifb, | 652 | struct intel_framebuffer *ifb, |
681 | struct drm_mode_fb_cmd2 *mode_cmd, | 653 | struct drm_mode_fb_cmd2 *mode_cmd, |
682 | struct drm_i915_gem_object *obj); | 654 | struct drm_i915_gem_object *obj); |
683 | extern void intel_framebuffer_fini(struct intel_framebuffer *fb); | 655 | extern void intel_framebuffer_fini(struct intel_framebuffer *fb); |
684 | extern int intel_fbdev_init(struct drm_device *dev); | ||
685 | extern void intel_fbdev_initial_config(struct drm_device *dev); | ||
686 | extern void intel_fbdev_fini(struct drm_device *dev); | ||
687 | extern void intel_fbdev_set_suspend(struct drm_device *dev, int state); | ||
688 | extern void intel_prepare_page_flip(struct drm_device *dev, int plane); | 656 | extern void intel_prepare_page_flip(struct drm_device *dev, int plane); |
689 | extern void intel_finish_page_flip(struct drm_device *dev, int pipe); | 657 | extern void intel_finish_page_flip(struct drm_device *dev, int pipe); |
690 | extern void intel_finish_page_flip_plane(struct drm_device *dev, int plane); | 658 | extern void intel_finish_page_flip_plane(struct drm_device *dev, int plane); |
691 | 659 | struct intel_shared_dpll *intel_crtc_to_shared_dpll(struct intel_crtc *crtc); | |
692 | extern void intel_setup_overlay(struct drm_device *dev); | ||
693 | extern void intel_cleanup_overlay(struct drm_device *dev); | ||
694 | extern int intel_overlay_switch_off(struct intel_overlay *overlay); | ||
695 | extern int intel_overlay_put_image(struct drm_device *dev, void *data, | ||
696 | struct drm_file *file_priv); | ||
697 | extern int intel_overlay_attrs(struct drm_device *dev, void *data, | ||
698 | struct drm_file *file_priv); | ||
699 | |||
700 | extern void intel_fb_output_poll_changed(struct drm_device *dev); | ||
701 | extern void intel_fb_restore_mode(struct drm_device *dev); | ||
702 | |||
703 | struct intel_shared_dpll * | ||
704 | intel_crtc_to_shared_dpll(struct intel_crtc *crtc); | ||
705 | |||
706 | void assert_shared_dpll(struct drm_i915_private *dev_priv, | 660 | void assert_shared_dpll(struct drm_i915_private *dev_priv, |
707 | struct intel_shared_dpll *pll, | 661 | struct intel_shared_dpll *pll, |
708 | bool state); | 662 | bool state); |
@@ -720,46 +674,144 @@ extern void assert_pipe(struct drm_i915_private *dev_priv, enum pipe pipe, | |||
720 | bool state); | 674 | bool state); |
721 | #define assert_pipe_enabled(d, p) assert_pipe(d, p, true) | 675 | #define assert_pipe_enabled(d, p) assert_pipe(d, p, true) |
722 | #define assert_pipe_disabled(d, p) assert_pipe(d, p, false) | 676 | #define assert_pipe_disabled(d, p) assert_pipe(d, p, false) |
723 | |||
724 | extern void intel_init_clock_gating(struct drm_device *dev); | ||
725 | extern void intel_suspend_hw(struct drm_device *dev); | ||
726 | extern void intel_write_eld(struct drm_encoder *encoder, | 677 | extern void intel_write_eld(struct drm_encoder *encoder, |
727 | struct drm_display_mode *mode); | 678 | struct drm_display_mode *mode); |
728 | extern void intel_prepare_ddi(struct drm_device *dev); | ||
729 | extern void hsw_fdi_link_train(struct drm_crtc *crtc); | ||
730 | extern void intel_ddi_init(struct drm_device *dev, enum port port); | ||
731 | extern enum port intel_ddi_get_encoder_port(struct intel_encoder *intel_encoder); | ||
732 | |||
733 | /* For use by IVB LP watermark workaround in intel_sprite.c */ | ||
734 | extern void intel_update_watermarks(struct drm_crtc *crtc); | ||
735 | extern void intel_update_sprite_watermarks(struct drm_plane *plane, | ||
736 | struct drm_crtc *crtc, | ||
737 | uint32_t sprite_width, int pixel_size, | ||
738 | bool enabled, bool scaled); | ||
739 | |||
740 | extern unsigned long intel_gen4_compute_page_offset(int *x, int *y, | 679 | extern unsigned long intel_gen4_compute_page_offset(int *x, int *y, |
741 | unsigned int tiling_mode, | 680 | unsigned int tiling_mode, |
742 | unsigned int bpp, | 681 | unsigned int bpp, |
743 | unsigned int pitch); | 682 | unsigned int pitch); |
683 | extern void intel_display_handle_reset(struct drm_device *dev); | ||
684 | extern void hsw_disable_lcpll(struct drm_i915_private *dev_priv, | ||
685 | bool switch_to_fclk, bool allow_power_down); | ||
686 | extern void hsw_restore_lcpll(struct drm_i915_private *dev_priv); | ||
687 | extern void hsw_enable_pc8_work(struct work_struct *__work); | ||
688 | extern void hsw_enable_package_c8(struct drm_i915_private *dev_priv); | ||
689 | extern void hsw_disable_package_c8(struct drm_i915_private *dev_priv); | ||
690 | extern void intel_dp_get_m_n(struct intel_crtc *crtc, | ||
691 | struct intel_crtc_config *pipe_config); | ||
692 | extern int intel_dotclock_calculate(int link_freq, | ||
693 | const struct intel_link_m_n *m_n); | ||
694 | extern void | ||
695 | ironlake_check_encoder_dotclock(const struct intel_crtc_config *pipe_config, | ||
696 | int dotclock); | ||
697 | extern bool intel_crtc_active(struct drm_crtc *crtc); | ||
698 | extern void i915_disable_vga_mem(struct drm_device *dev); | ||
744 | 699 | ||
745 | extern int intel_sprite_set_colorkey(struct drm_device *dev, void *data, | ||
746 | struct drm_file *file_priv); | ||
747 | extern int intel_sprite_get_colorkey(struct drm_device *dev, void *data, | ||
748 | struct drm_file *file_priv); | ||
749 | 700 | ||
750 | /* Power-related functions, located in intel_pm.c */ | 701 | /* intel_dp.c */ |
702 | extern void intel_dp_init(struct drm_device *dev, int output_reg, | ||
703 | enum port port); | ||
704 | extern bool intel_dp_init_connector(struct intel_digital_port *intel_dig_port, | ||
705 | struct intel_connector *intel_connector); | ||
706 | extern void intel_dp_init_link_config(struct intel_dp *intel_dp); | ||
707 | extern void intel_dp_start_link_train(struct intel_dp *intel_dp); | ||
708 | extern void intel_dp_complete_link_train(struct intel_dp *intel_dp); | ||
709 | extern void intel_dp_stop_link_train(struct intel_dp *intel_dp); | ||
710 | extern void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode); | ||
711 | extern void intel_dp_encoder_destroy(struct drm_encoder *encoder); | ||
712 | extern void intel_dp_check_link_status(struct intel_dp *intel_dp); | ||
713 | extern bool intel_dp_compute_config(struct intel_encoder *encoder, | ||
714 | struct intel_crtc_config *pipe_config); | ||
715 | extern bool intel_dpd_is_edp(struct drm_device *dev); | ||
716 | extern void ironlake_edp_backlight_on(struct intel_dp *intel_dp); | ||
717 | extern void ironlake_edp_backlight_off(struct intel_dp *intel_dp); | ||
718 | extern void ironlake_edp_panel_on(struct intel_dp *intel_dp); | ||
719 | extern void ironlake_edp_panel_off(struct intel_dp *intel_dp); | ||
720 | extern void ironlake_edp_panel_vdd_on(struct intel_dp *intel_dp); | ||
721 | extern void ironlake_edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync); | ||
722 | extern void intel_edp_psr_enable(struct intel_dp *intel_dp); | ||
723 | extern void intel_edp_psr_disable(struct intel_dp *intel_dp); | ||
724 | extern void intel_edp_psr_update(struct drm_device *dev); | ||
725 | |||
726 | |||
727 | /* intel_dsi.c */ | ||
728 | extern bool intel_dsi_init(struct drm_device *dev); | ||
729 | |||
730 | |||
731 | /* intel_dvo.c */ | ||
732 | extern void intel_dvo_init(struct drm_device *dev); | ||
733 | |||
734 | |||
735 | /* intel_fb.c */ | ||
736 | extern int intel_fbdev_init(struct drm_device *dev); | ||
737 | extern void intel_fbdev_initial_config(struct drm_device *dev); | ||
738 | extern void intel_fbdev_fini(struct drm_device *dev); | ||
739 | extern void intel_fbdev_set_suspend(struct drm_device *dev, int state); | ||
740 | extern void intel_fb_output_poll_changed(struct drm_device *dev); | ||
741 | extern void intel_fb_restore_mode(struct drm_device *dev); | ||
742 | |||
743 | |||
744 | /* intel_hdmi.c */ | ||
745 | extern void intel_hdmi_init(struct drm_device *dev, | ||
746 | int hdmi_reg, enum port port); | ||
747 | extern void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port, | ||
748 | struct intel_connector *intel_connector); | ||
749 | extern struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder); | ||
750 | extern bool intel_hdmi_compute_config(struct intel_encoder *encoder, | ||
751 | struct intel_crtc_config *pipe_config); | ||
752 | |||
753 | |||
754 | /* intel_lvds.c */ | ||
755 | extern void intel_lvds_init(struct drm_device *dev); | ||
756 | extern bool intel_is_dual_link_lvds(struct drm_device *dev); | ||
757 | |||
758 | |||
759 | /* intel_modes.c */ | ||
760 | int intel_connector_update_modes(struct drm_connector *connector, | ||
761 | struct edid *edid); | ||
762 | int intel_ddc_get_modes(struct drm_connector *c, struct i2c_adapter *adapter); | ||
763 | extern void intel_attach_force_audio_property(struct drm_connector *connector); | ||
764 | extern void | ||
765 | intel_attach_broadcast_rgb_property(struct drm_connector *connector); | ||
766 | |||
767 | |||
768 | /* intel_overlay.c */ | ||
769 | extern void intel_setup_overlay(struct drm_device *dev); | ||
770 | extern void intel_cleanup_overlay(struct drm_device *dev); | ||
771 | extern int intel_overlay_switch_off(struct intel_overlay *overlay); | ||
772 | extern int intel_overlay_put_image(struct drm_device *dev, void *data, | ||
773 | struct drm_file *file_priv); | ||
774 | extern int intel_overlay_attrs(struct drm_device *dev, void *data, | ||
775 | struct drm_file *file_priv); | ||
776 | |||
777 | |||
778 | /* intel_panel.c */ | ||
779 | extern int intel_panel_init(struct intel_panel *panel, | ||
780 | struct drm_display_mode *fixed_mode); | ||
781 | extern void intel_panel_fini(struct intel_panel *panel); | ||
782 | extern void intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode, | ||
783 | struct drm_display_mode *adjusted_mode); | ||
784 | extern void intel_pch_panel_fitting(struct intel_crtc *crtc, | ||
785 | struct intel_crtc_config *pipe_config, | ||
786 | int fitting_mode); | ||
787 | extern void intel_gmch_panel_fitting(struct intel_crtc *crtc, | ||
788 | struct intel_crtc_config *pipe_config, | ||
789 | int fitting_mode); | ||
790 | extern void intel_panel_set_backlight(struct drm_device *dev, | ||
791 | u32 level, u32 max); | ||
792 | extern int intel_panel_setup_backlight(struct drm_connector *connector); | ||
793 | extern void intel_panel_enable_backlight(struct drm_device *dev, | ||
794 | enum pipe pipe); | ||
795 | extern void intel_panel_disable_backlight(struct drm_device *dev); | ||
796 | extern void intel_panel_destroy_backlight(struct drm_device *dev); | ||
797 | extern enum drm_connector_status intel_panel_detect(struct drm_device *dev); | ||
798 | |||
799 | |||
800 | /* intel_pm.c */ | ||
801 | extern void intel_init_clock_gating(struct drm_device *dev); | ||
802 | extern void intel_suspend_hw(struct drm_device *dev); | ||
803 | extern void intel_update_watermarks(struct drm_crtc *crtc); | ||
804 | extern void intel_update_sprite_watermarks(struct drm_plane *plane, | ||
805 | struct drm_crtc *crtc, | ||
806 | uint32_t sprite_width, int pixel_size, | ||
807 | bool enabled, bool scaled); | ||
751 | extern void intel_init_pm(struct drm_device *dev); | 808 | extern void intel_init_pm(struct drm_device *dev); |
752 | /* FBC */ | ||
753 | extern bool intel_fbc_enabled(struct drm_device *dev); | 809 | extern bool intel_fbc_enabled(struct drm_device *dev); |
754 | extern void intel_update_fbc(struct drm_device *dev); | 810 | extern void intel_update_fbc(struct drm_device *dev); |
755 | /* IPS */ | ||
756 | extern void intel_gpu_ips_init(struct drm_i915_private *dev_priv); | 811 | extern void intel_gpu_ips_init(struct drm_i915_private *dev_priv); |
757 | extern void intel_gpu_ips_teardown(void); | 812 | extern void intel_gpu_ips_teardown(void); |
758 | |||
759 | /* Power well */ | ||
760 | extern int i915_init_power_well(struct drm_device *dev); | 813 | extern int i915_init_power_well(struct drm_device *dev); |
761 | extern void i915_remove_power_well(struct drm_device *dev); | 814 | extern void i915_remove_power_well(struct drm_device *dev); |
762 | |||
763 | extern bool intel_display_power_enabled(struct drm_device *dev, | 815 | extern bool intel_display_power_enabled(struct drm_device *dev, |
764 | enum intel_display_power_domain domain); | 816 | enum intel_display_power_domain domain); |
765 | extern void intel_display_power_get(struct drm_device *dev, | 817 | extern void intel_display_power_get(struct drm_device *dev, |
@@ -773,62 +825,28 @@ extern void intel_enable_gt_powersave(struct drm_device *dev); | |||
773 | extern void intel_disable_gt_powersave(struct drm_device *dev); | 825 | extern void intel_disable_gt_powersave(struct drm_device *dev); |
774 | extern void ironlake_teardown_rc6(struct drm_device *dev); | 826 | extern void ironlake_teardown_rc6(struct drm_device *dev); |
775 | void gen6_update_ring_freq(struct drm_device *dev); | 827 | void gen6_update_ring_freq(struct drm_device *dev); |
828 | extern void intel_aux_display_runtime_get(struct drm_i915_private *dev_priv); | ||
829 | extern void intel_aux_display_runtime_put(struct drm_i915_private *dev_priv); | ||
776 | 830 | ||
777 | extern bool intel_ddi_get_hw_state(struct intel_encoder *encoder, | ||
778 | enum pipe *pipe); | ||
779 | extern int intel_ddi_get_cdclk_freq(struct drm_i915_private *dev_priv); | ||
780 | extern void intel_ddi_pll_init(struct drm_device *dev); | ||
781 | extern void intel_ddi_enable_transcoder_func(struct drm_crtc *crtc); | ||
782 | extern void intel_ddi_disable_transcoder_func(struct drm_i915_private *dev_priv, | ||
783 | enum transcoder cpu_transcoder); | ||
784 | extern void intel_ddi_enable_pipe_clock(struct intel_crtc *intel_crtc); | ||
785 | extern void intel_ddi_disable_pipe_clock(struct intel_crtc *intel_crtc); | ||
786 | extern void intel_ddi_setup_hw_pll_state(struct drm_device *dev); | ||
787 | extern bool intel_ddi_pll_mode_set(struct drm_crtc *crtc); | ||
788 | extern void intel_ddi_put_crtc_pll(struct drm_crtc *crtc); | ||
789 | extern void intel_ddi_set_pipe_settings(struct drm_crtc *crtc); | ||
790 | extern void intel_ddi_prepare_link_retrain(struct drm_encoder *encoder); | ||
791 | extern bool | ||
792 | intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector); | ||
793 | extern void intel_ddi_fdi_disable(struct drm_crtc *crtc); | ||
794 | 831 | ||
795 | extern void intel_display_handle_reset(struct drm_device *dev); | 832 | /* intel_sdvo.c */ |
796 | extern bool intel_set_cpu_fifo_underrun_reporting(struct drm_device *dev, | 833 | extern bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, |
797 | enum pipe pipe, | 834 | bool is_sdvob); |
798 | bool enable); | ||
799 | extern bool intel_set_pch_fifo_underrun_reporting(struct drm_device *dev, | ||
800 | enum transcoder pch_transcoder, | ||
801 | bool enable); | ||
802 | 835 | ||
803 | extern void intel_edp_psr_enable(struct intel_dp *intel_dp); | ||
804 | extern void intel_edp_psr_disable(struct intel_dp *intel_dp); | ||
805 | extern void intel_edp_psr_update(struct drm_device *dev); | ||
806 | extern void hsw_disable_lcpll(struct drm_i915_private *dev_priv, | ||
807 | bool switch_to_fclk, bool allow_power_down); | ||
808 | extern void hsw_restore_lcpll(struct drm_i915_private *dev_priv); | ||
809 | extern void ilk_enable_gt_irq(struct drm_i915_private *dev_priv, uint32_t mask); | ||
810 | extern void ilk_disable_gt_irq(struct drm_i915_private *dev_priv, | ||
811 | uint32_t mask); | ||
812 | extern void snb_enable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask); | ||
813 | extern void snb_disable_pm_irq(struct drm_i915_private *dev_priv, | ||
814 | uint32_t mask); | ||
815 | extern void hsw_enable_pc8_work(struct work_struct *__work); | ||
816 | extern void hsw_enable_package_c8(struct drm_i915_private *dev_priv); | ||
817 | extern void hsw_disable_package_c8(struct drm_i915_private *dev_priv); | ||
818 | extern void hsw_pc8_disable_interrupts(struct drm_device *dev); | ||
819 | extern void hsw_pc8_restore_interrupts(struct drm_device *dev); | ||
820 | extern void intel_aux_display_runtime_get(struct drm_i915_private *dev_priv); | ||
821 | extern void intel_aux_display_runtime_put(struct drm_i915_private *dev_priv); | ||
822 | extern void intel_dp_get_m_n(struct intel_crtc *crtc, | ||
823 | struct intel_crtc_config *pipe_config); | ||
824 | extern int intel_dotclock_calculate(int link_freq, | ||
825 | const struct intel_link_m_n *m_n); | ||
826 | extern void ironlake_check_encoder_dotclock(const struct intel_crtc_config *pipe_config, | ||
827 | int dotclock); | ||
828 | 836 | ||
829 | extern bool intel_crtc_active(struct drm_crtc *crtc); | 837 | /* intel_sprite.c */ |
830 | extern void i915_disable_vga_mem(struct drm_device *dev); | 838 | extern int intel_plane_init(struct drm_device *dev, enum pipe pipe, int plane); |
831 | extern void intel_ddi_get_config(struct intel_encoder *encoder, | 839 | extern void intel_flush_display_plane(struct drm_i915_private *dev_priv, |
832 | struct intel_crtc_config *pipe_config); | 840 | enum plane plane); |
841 | extern void intel_plane_restore(struct drm_plane *plane); | ||
842 | extern void intel_plane_disable(struct drm_plane *plane); | ||
843 | extern int intel_sprite_set_colorkey(struct drm_device *dev, void *data, | ||
844 | struct drm_file *file_priv); | ||
845 | extern int intel_sprite_get_colorkey(struct drm_device *dev, void *data, | ||
846 | struct drm_file *file_priv); | ||
847 | |||
848 | |||
849 | /* intel_tv.c */ | ||
850 | extern void intel_tv_init(struct drm_device *dev); | ||
833 | 851 | ||
834 | #endif /* __INTEL_DRV_H__ */ | 852 | #endif /* __INTEL_DRV_H__ */ |