Rev 6935 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6935 | Rev 6937 | ||
---|---|---|---|
Line 122... | Line 122... | ||
122 | }; |
122 | }; |
Line 123... | Line 123... | ||
123 | 123 | ||
124 | struct intel_fbdev { |
124 | struct intel_fbdev { |
125 | struct drm_fb_helper helper; |
125 | struct drm_fb_helper helper; |
126 | struct intel_framebuffer *fb; |
- | |
127 | struct list_head fbdev_list; |
- | |
128 | struct drm_display_mode *our_mode; |
126 | struct intel_framebuffer *fb; |
129 | int preferred_bpp; |
127 | int preferred_bpp; |
Line 130... | Line 128... | ||
130 | }; |
128 | }; |
131 | 129 | ||
Line 249... | Line 247... | ||
249 | struct drm_atomic_state base; |
247 | struct drm_atomic_state base; |
Line 250... | Line 248... | ||
250 | 248 | ||
251 | unsigned int cdclk; |
249 | unsigned int cdclk; |
252 | bool dpll_set; |
250 | bool dpll_set; |
- | 251 | struct intel_shared_dpll_config shared_dpll[I915_NUM_PLLS]; |
|
253 | struct intel_shared_dpll_config shared_dpll[I915_NUM_PLLS]; |
252 | struct intel_wm_config wm_config; |
Line 254... | Line 253... | ||
254 | }; |
253 | }; |
255 | 254 | ||
256 | struct intel_plane_state { |
255 | struct intel_plane_state { |
Line 279... | Line 278... | ||
279 | * update_scaler_plane. |
278 | * update_scaler_plane. |
280 | */ |
279 | */ |
281 | int scaler_id; |
280 | int scaler_id; |
Line 282... | Line 281... | ||
282 | 281 | ||
- | 282 | struct drm_intel_sprite_colorkey ckey; |
|
- | 283 | ||
- | 284 | /* async flip related structures */ |
|
283 | struct drm_intel_sprite_colorkey ckey; |
285 | struct drm_i915_gem_request *wait_req; |
Line 284... | Line 286... | ||
284 | }; |
286 | }; |
285 | 287 | ||
286 | struct intel_initial_plane_config { |
288 | struct intel_initial_plane_config { |
Line 333... | Line 335... | ||
333 | }; |
335 | }; |
Line 334... | Line 336... | ||
334 | 336 | ||
335 | /* drm_mode->private_flags */ |
337 | /* drm_mode->private_flags */ |
Line -... | Line 338... | ||
- | 338 | #define I915_MODE_FLAG_INHERITED 1 |
|
- | 339 | ||
- | 340 | struct intel_pipe_wm { |
|
- | 341 | struct intel_wm_level wm[5]; |
|
- | 342 | uint32_t linetime; |
|
- | 343 | bool fbc_wm_enabled; |
|
- | 344 | bool pipe_enabled; |
|
- | 345 | bool sprites_enabled; |
|
- | 346 | bool sprites_scaled; |
|
- | 347 | }; |
|
- | 348 | ||
- | 349 | struct skl_pipe_wm { |
|
- | 350 | struct skl_wm_level wm[8]; |
|
- | 351 | struct skl_wm_level trans_wm; |
|
- | 352 | uint32_t linetime; |
|
336 | #define I915_MODE_FLAG_INHERITED 1 |
353 | }; |
337 | 354 | ||
Line 338... | Line 355... | ||
338 | struct intel_crtc_state { |
355 | struct intel_crtc_state { |
339 | struct drm_crtc_state base; |
356 | struct drm_crtc_state base; |
Line 347... | Line 364... | ||
347 | * accordingly. |
364 | * accordingly. |
348 | */ |
365 | */ |
349 | #define PIPE_CONFIG_QUIRK_MODE_SYNC_FLAGS (1<<0) /* unreliable sync mode.flags */ |
366 | #define PIPE_CONFIG_QUIRK_MODE_SYNC_FLAGS (1<<0) /* unreliable sync mode.flags */ |
350 | unsigned long quirks; |
367 | unsigned long quirks; |
Line -... | Line 368... | ||
- | 368 | ||
351 | 369 | bool update_pipe; /* can a fast modeset be performed? */ |
|
- | 370 | bool disable_cxsr; |
|
Line 352... | Line 371... | ||
352 | bool update_pipe; |
371 | bool update_wm_pre, update_wm_post; /* watermarks are updated */ |
353 | 372 | ||
354 | /* Pipe source size (ie. panel fitter input size) |
373 | /* Pipe source size (ie. panel fitter input size) |
355 | * All planes will be positioned inside this space, |
374 | * All planes will be positioned inside this space, |
Line 375... | Line 394... | ||
375 | 394 | ||
376 | /* DP has a bunch of special case unfortunately, so mark the pipe |
395 | /* DP has a bunch of special case unfortunately, so mark the pipe |
377 | * accordingly. */ |
396 | * accordingly. */ |
Line -... | Line 397... | ||
- | 397 | bool has_dp_encoder; |
|
- | 398 | ||
- | 399 | /* DSI has special cases */ |
|
378 | bool has_dp_encoder; |
400 | bool has_dsi_encoder; |
379 | 401 | ||
Line 380... | Line 402... | ||
380 | /* Whether we should send NULL infoframes. Required for audio. */ |
402 | /* Whether we should send NULL infoframes. Required for audio. */ |
381 | bool has_hdmi_sink; |
403 | bool has_hdmi_sink; |
Line 467... | Line 489... | ||
467 | 489 | ||
Line 468... | Line 490... | ||
468 | struct intel_crtc_scaler_state scaler_state; |
490 | struct intel_crtc_scaler_state scaler_state; |
469 | 491 | ||
- | 492 | /* w/a for waiting 2 vblanks during crtc enable */ |
|
- | 493 | enum pipe hsw_workaround_pipe; |
|
- | 494 | ||
- | 495 | /* IVB sprite scaling w/a (WaCxSRDisabledForSpriteScaling:ivb) */ |
|
- | 496 | bool disable_lp_wm; |
|
- | 497 | ||
- | 498 | struct { |
|
- | 499 | /* |
|
- | 500 | * optimal watermarks, programmed post-vblank when this state |
|
- | 501 | * is committed |
|
- | 502 | */ |
|
- | 503 | union { |
|
- | 504 | struct intel_pipe_wm ilk; |
|
- | 505 | struct skl_pipe_wm skl; |
|
470 | /* w/a for waiting 2 vblanks during crtc enable */ |
506 | } optimal; |
Line 471... | Line 507... | ||
471 | enum pipe hsw_workaround_pipe; |
507 | } wm; |
472 | }; |
508 | }; |
473 | 509 | ||
Line 478... | Line 514... | ||
478 | uint8_t num_levels; |
514 | uint8_t num_levels; |
479 | uint8_t level; |
515 | uint8_t level; |
480 | bool cxsr; |
516 | bool cxsr; |
481 | }; |
517 | }; |
Line 482... | Line -... | ||
482 | - | ||
483 | struct intel_pipe_wm { |
- | |
484 | struct intel_wm_level wm[5]; |
- | |
485 | uint32_t linetime; |
- | |
486 | bool fbc_wm_enabled; |
- | |
487 | bool pipe_enabled; |
- | |
488 | bool sprites_enabled; |
- | |
489 | bool sprites_scaled; |
- | |
490 | }; |
- | |
491 | 518 | ||
492 | struct intel_mmio_flip { |
519 | struct intel_mmio_flip { |
493 | struct work_struct work; |
520 | struct work_struct work; |
494 | struct drm_i915_private *i915; |
521 | struct drm_i915_private *i915; |
495 | struct drm_i915_gem_request *req; |
522 | struct drm_i915_gem_request *req; |
496 | struct intel_crtc *crtc; |
- | |
497 | }; |
- | |
498 | - | ||
499 | struct skl_pipe_wm { |
- | |
500 | struct skl_wm_level wm[8]; |
- | |
501 | struct skl_wm_level trans_wm; |
523 | struct intel_crtc *crtc; |
502 | uint32_t linetime; |
524 | unsigned int rotation; |
Line 503... | Line 525... | ||
503 | }; |
525 | }; |
504 | 526 | ||
505 | /* |
527 | /* |
506 | * Tracking of operations that need to be performed at the beginning/end of an |
528 | * Tracking of operations that need to be performed at the beginning/end of an |
507 | * atomic commit, outside the atomic section where interrupts are disabled. |
529 | * atomic commit, outside the atomic section where interrupts are disabled. |
508 | * These are generally operations that grab mutexes or might otherwise sleep |
530 | * These are generally operations that grab mutexes or might otherwise sleep |
509 | * and thus can't be run with interrupts disabled. |
531 | * and thus can't be run with interrupts disabled. |
510 | */ |
532 | */ |
511 | struct intel_crtc_atomic_commit { |
- | |
512 | /* Sleepable operations to perform before commit */ |
533 | struct intel_crtc_atomic_commit { |
513 | bool wait_for_flips; |
534 | /* Sleepable operations to perform before commit */ |
514 | bool disable_fbc; |
- | |
515 | bool disable_ips; |
535 | bool disable_fbc; |
516 | bool disable_cxsr; |
- | |
517 | bool pre_disable_primary; |
- | |
Line 518... | Line 536... | ||
518 | bool update_wm_pre, update_wm_post; |
536 | bool disable_ips; |
519 | unsigned disabled_planes; |
537 | bool pre_disable_primary; |
520 | 538 | ||
521 | /* Sleepable operations to perform after commit */ |
539 | /* Sleepable operations to perform after commit */ |
Line 566... | Line 584... | ||
566 | bool pch_fifo_underrun_disabled; |
584 | bool pch_fifo_underrun_disabled; |
Line 567... | Line 585... | ||
567 | 585 | ||
568 | /* per-pipe watermark state */ |
586 | /* per-pipe watermark state */ |
569 | struct { |
587 | struct { |
- | 588 | /* watermarks currently being used */ |
|
570 | /* watermarks currently being used */ |
589 | union { |
571 | struct intel_pipe_wm active; |
590 | struct intel_pipe_wm ilk; |
572 | /* SKL wm values currently in use */ |
591 | struct skl_pipe_wm skl; |
573 | struct skl_pipe_wm skl_active; |
592 | } active; |
574 | /* allow CxSR on this pipe */ |
593 | /* allow CxSR on this pipe */ |
575 | bool cxsr_allowed; |
594 | bool cxsr_allowed; |
Line 576... | Line 595... | ||
576 | } wm; |
595 | } wm; |
Line 676... | Line 695... | ||
676 | #define to_intel_plane(x) container_of(x, struct intel_plane, base) |
695 | #define to_intel_plane(x) container_of(x, struct intel_plane, base) |
677 | #define to_intel_plane_state(x) container_of(x, struct intel_plane_state, base) |
696 | #define to_intel_plane_state(x) container_of(x, struct intel_plane_state, base) |
678 | #define intel_fb_obj(x) (x ? to_intel_framebuffer(x)->obj : NULL) |
697 | #define intel_fb_obj(x) (x ? to_intel_framebuffer(x)->obj : NULL) |
Line 679... | Line 698... | ||
679 | 698 | ||
680 | struct intel_hdmi { |
699 | struct intel_hdmi { |
681 | u32 hdmi_reg; |
700 | i915_reg_t hdmi_reg; |
682 | int ddc_bus; |
701 | int ddc_bus; |
683 | bool limited_color_range; |
702 | bool limited_color_range; |
684 | bool color_range_auto; |
703 | bool color_range_auto; |
685 | bool has_hdmi_sink; |
704 | bool has_hdmi_sink; |
Line 692... | Line 711... | ||
692 | enum hdmi_infoframe_type type, |
711 | enum hdmi_infoframe_type type, |
693 | const void *frame, ssize_t len); |
712 | const void *frame, ssize_t len); |
694 | void (*set_infoframes)(struct drm_encoder *encoder, |
713 | void (*set_infoframes)(struct drm_encoder *encoder, |
695 | bool enable, |
714 | bool enable, |
696 | const struct drm_display_mode *adjusted_mode); |
715 | const struct drm_display_mode *adjusted_mode); |
697 | bool (*infoframe_enabled)(struct drm_encoder *encoder); |
716 | bool (*infoframe_enabled)(struct drm_encoder *encoder, |
- | 717 | const struct intel_crtc_state *pipe_config); |
|
698 | }; |
718 | }; |
Line 699... | Line 719... | ||
699 | 719 | ||
700 | struct intel_dp_mst_encoder; |
720 | struct intel_dp_mst_encoder; |
Line 718... | Line 738... | ||
718 | /* Sets the m1_n1 and m2_n2 */ |
738 | /* Sets the m1_n1 and m2_n2 */ |
719 | M1_N1 = 0, |
739 | M1_N1 = 0, |
720 | M2_N2 |
740 | M2_N2 |
721 | }; |
741 | }; |
Line 722... | Line -... | ||
722 | - | ||
723 | struct sink_crc { |
- | |
724 | bool started; |
- | |
725 | u8 last_crc[6]; |
- | |
726 | int last_count; |
- | |
727 | }; |
- | |
728 | 742 | ||
729 | struct intel_dp { |
743 | struct intel_dp { |
730 | uint32_t output_reg; |
744 | i915_reg_t output_reg; |
- | 745 | i915_reg_t aux_ch_ctl_reg; |
|
731 | uint32_t aux_ch_ctl_reg; |
746 | i915_reg_t aux_ch_data_reg[5]; |
732 | uint32_t DP; |
747 | uint32_t DP; |
733 | int link_rate; |
748 | int link_rate; |
734 | uint8_t lane_count; |
749 | uint8_t lane_count; |
735 | bool has_audio; |
750 | bool has_audio; |
Line 740... | Line 755... | ||
740 | uint8_t psr_dpcd[EDP_PSR_RECEIVER_CAP_SIZE]; |
755 | uint8_t psr_dpcd[EDP_PSR_RECEIVER_CAP_SIZE]; |
741 | uint8_t downstream_ports[DP_MAX_DOWNSTREAM_PORTS]; |
756 | uint8_t downstream_ports[DP_MAX_DOWNSTREAM_PORTS]; |
742 | /* sink rates as reported by DP_SUPPORTED_LINK_RATES */ |
757 | /* sink rates as reported by DP_SUPPORTED_LINK_RATES */ |
743 | uint8_t num_sink_rates; |
758 | uint8_t num_sink_rates; |
744 | int sink_rates[DP_MAX_SUPPORTED_RATES]; |
759 | int sink_rates[DP_MAX_SUPPORTED_RATES]; |
745 | struct sink_crc sink_crc; |
- | |
746 | struct drm_dp_aux aux; |
760 | struct drm_dp_aux aux; |
747 | uint8_t train_set[4]; |
761 | uint8_t train_set[4]; |
748 | int panel_power_up_delay; |
762 | int panel_power_up_delay; |
749 | int panel_power_down_delay; |
763 | int panel_power_down_delay; |
750 | int panel_power_cycle_delay; |
764 | int panel_power_cycle_delay; |
Line 754... | Line 768... | ||
754 | bool want_panel_vdd; |
768 | bool want_panel_vdd; |
755 | unsigned long last_power_cycle; |
769 | unsigned long last_power_cycle; |
756 | unsigned long last_power_on; |
770 | unsigned long last_power_on; |
757 | unsigned long last_backlight_off; |
771 | unsigned long last_backlight_off; |
Line -... | Line 772... | ||
- | 772 | ||
- | 773 | struct notifier_block edp_notifier; |
|
758 | 774 | ||
759 | /* |
775 | /* |
760 | * Pipe whose power sequencer is currently locked into |
776 | * Pipe whose power sequencer is currently locked into |
761 | * this port. Only relevant on VLV/CHV. |
777 | * this port. Only relevant on VLV/CHV. |
762 | */ |
778 | */ |
Line 781... | Line 797... | ||
781 | uint32_t (*get_aux_send_ctl)(struct intel_dp *dp, |
797 | uint32_t (*get_aux_send_ctl)(struct intel_dp *dp, |
782 | bool has_aux_irq, |
798 | bool has_aux_irq, |
783 | int send_bytes, |
799 | int send_bytes, |
784 | uint32_t aux_clock_divider); |
800 | uint32_t aux_clock_divider); |
Line -... | Line 801... | ||
- | 801 | ||
- | 802 | /* This is called before a link training is starterd */ |
|
- | 803 | void (*prepare_link_retrain)(struct intel_dp *intel_dp); |
|
- | 804 | ||
- | 805 | bool train_set_valid; |
|
785 | 806 | ||
786 | /* Displayport compliance testing */ |
807 | /* Displayport compliance testing */ |
787 | unsigned long compliance_test_type; |
808 | unsigned long compliance_test_type; |
788 | unsigned long compliance_test_data; |
809 | unsigned long compliance_test_data; |
789 | bool compliance_test_active; |
810 | bool compliance_test_active; |
Line 795... | Line 816... | ||
795 | u32 saved_port_bits; |
816 | u32 saved_port_bits; |
796 | struct intel_dp dp; |
817 | struct intel_dp dp; |
797 | struct intel_hdmi hdmi; |
818 | struct intel_hdmi hdmi; |
798 | enum irqreturn (*hpd_pulse)(struct intel_digital_port *, bool); |
819 | enum irqreturn (*hpd_pulse)(struct intel_digital_port *, bool); |
799 | bool release_cl2_override; |
820 | bool release_cl2_override; |
- | 821 | /* for communication with audio component; protected by av_mutex */ |
|
- | 822 | const struct drm_connector *audio_connector; |
|
800 | }; |
823 | }; |
Line 801... | Line 824... | ||
801 | 824 | ||
802 | struct intel_dp_mst_encoder { |
825 | struct intel_dp_mst_encoder { |
803 | struct intel_encoder base; |
826 | struct intel_encoder base; |
Line 938... | Line 961... | ||
938 | bool enable); |
961 | bool enable); |
939 | void intel_cpu_fifo_underrun_irq_handler(struct drm_i915_private *dev_priv, |
962 | void intel_cpu_fifo_underrun_irq_handler(struct drm_i915_private *dev_priv, |
940 | enum pipe pipe); |
963 | enum pipe pipe); |
941 | void intel_pch_fifo_underrun_irq_handler(struct drm_i915_private *dev_priv, |
964 | void intel_pch_fifo_underrun_irq_handler(struct drm_i915_private *dev_priv, |
942 | enum transcoder pch_transcoder); |
965 | enum transcoder pch_transcoder); |
- | 966 | void intel_check_cpu_fifo_underruns(struct drm_i915_private *dev_priv); |
|
943 | void i9xx_check_fifo_underruns(struct drm_i915_private *dev_priv); |
967 | void intel_check_pch_fifo_underruns(struct drm_i915_private *dev_priv); |
Line 944... | Line 968... | ||
944 | 968 | ||
945 | /* i915_irq.c */ |
969 | /* i915_irq.c */ |
946 | void gen5_enable_gt_irq(struct drm_i915_private *dev_priv, uint32_t mask); |
970 | void gen5_enable_gt_irq(struct drm_i915_private *dev_priv, uint32_t mask); |
947 | void gen5_disable_gt_irq(struct drm_i915_private *dev_priv, uint32_t mask); |
971 | void gen5_disable_gt_irq(struct drm_i915_private *dev_priv, uint32_t mask); |
Line 969... | Line 993... | ||
969 | /* intel_crt.c */ |
993 | /* intel_crt.c */ |
970 | void intel_crt_init(struct drm_device *dev); |
994 | void intel_crt_init(struct drm_device *dev); |
Line 971... | Line 995... | ||
971 | 995 | ||
- | 996 | ||
- | 997 | /* intel_ddi.c */ |
|
972 | 998 | void intel_ddi_clk_select(struct intel_encoder *encoder, |
|
973 | /* intel_ddi.c */ |
999 | const struct intel_crtc_state *pipe_config); |
974 | void intel_prepare_ddi(struct drm_device *dev); |
1000 | void intel_prepare_ddi(struct drm_device *dev); |
975 | void hsw_fdi_link_train(struct drm_crtc *crtc); |
1001 | void hsw_fdi_link_train(struct drm_crtc *crtc); |
976 | void intel_ddi_init(struct drm_device *dev, enum port port); |
1002 | void intel_ddi_init(struct drm_device *dev, enum port port); |
Line 983... | Line 1009... | ||
983 | void intel_ddi_enable_pipe_clock(struct intel_crtc *intel_crtc); |
1009 | void intel_ddi_enable_pipe_clock(struct intel_crtc *intel_crtc); |
984 | void intel_ddi_disable_pipe_clock(struct intel_crtc *intel_crtc); |
1010 | void intel_ddi_disable_pipe_clock(struct intel_crtc *intel_crtc); |
985 | bool intel_ddi_pll_select(struct intel_crtc *crtc, |
1011 | bool intel_ddi_pll_select(struct intel_crtc *crtc, |
986 | struct intel_crtc_state *crtc_state); |
1012 | struct intel_crtc_state *crtc_state); |
987 | void intel_ddi_set_pipe_settings(struct drm_crtc *crtc); |
1013 | void intel_ddi_set_pipe_settings(struct drm_crtc *crtc); |
988 | void intel_ddi_prepare_link_retrain(struct drm_encoder *encoder); |
1014 | void intel_ddi_prepare_link_retrain(struct intel_dp *intel_dp); |
989 | bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector); |
1015 | bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector); |
990 | void intel_ddi_fdi_disable(struct drm_crtc *crtc); |
1016 | void intel_ddi_fdi_disable(struct drm_crtc *crtc); |
991 | void intel_ddi_get_config(struct intel_encoder *encoder, |
1017 | void intel_ddi_get_config(struct intel_encoder *encoder, |
992 | struct intel_crtc_state *pipe_config); |
1018 | struct intel_crtc_state *pipe_config); |
993 | struct intel_encoder * |
1019 | struct intel_encoder * |
Line 1051... | Line 1077... | ||
1051 | static inline void |
1077 | static inline void |
1052 | intel_wait_for_vblank(struct drm_device *dev, int pipe) |
1078 | intel_wait_for_vblank(struct drm_device *dev, int pipe) |
1053 | { |
1079 | { |
1054 | drm_wait_one_vblank(dev, pipe); |
1080 | drm_wait_one_vblank(dev, pipe); |
1055 | } |
1081 | } |
- | 1082 | static inline void |
|
- | 1083 | intel_wait_for_vblank_if_active(struct drm_device *dev, int pipe) |
|
- | 1084 | { |
|
- | 1085 | const struct intel_crtc *crtc = |
|
- | 1086 | to_intel_crtc(intel_get_crtc_for_pipe(dev, pipe)); |
|
- | 1087 | ||
- | 1088 | if (crtc->active) |
|
- | 1089 | intel_wait_for_vblank(dev, pipe); |
|
- | 1090 | } |
|
1056 | int ironlake_get_lanes_required(int target_clock, int link_bw, int bpp); |
1091 | int ironlake_get_lanes_required(int target_clock, int link_bw, int bpp); |
1057 | void vlv_wait_port_ready(struct drm_i915_private *dev_priv, |
1092 | void vlv_wait_port_ready(struct drm_i915_private *dev_priv, |
1058 | struct intel_digital_port *dport, |
1093 | struct intel_digital_port *dport, |
1059 | unsigned int expected_mask); |
1094 | unsigned int expected_mask); |
1060 | bool intel_get_load_detect_pipe(struct drm_connector *connector, |
1095 | bool intel_get_load_detect_pipe(struct drm_connector *connector, |
Line 1064... | Line 1099... | ||
1064 | void intel_release_load_detect_pipe(struct drm_connector *connector, |
1099 | void intel_release_load_detect_pipe(struct drm_connector *connector, |
1065 | struct intel_load_detect_pipe *old, |
1100 | struct intel_load_detect_pipe *old, |
1066 | struct drm_modeset_acquire_ctx *ctx); |
1101 | struct drm_modeset_acquire_ctx *ctx); |
1067 | int intel_pin_and_fence_fb_obj(struct drm_plane *plane, |
1102 | int intel_pin_and_fence_fb_obj(struct drm_plane *plane, |
1068 | struct drm_framebuffer *fb, |
1103 | struct drm_framebuffer *fb, |
1069 | const struct drm_plane_state *plane_state, |
1104 | const struct drm_plane_state *plane_state); |
1070 | struct intel_engine_cs *pipelined, |
- | |
1071 | struct drm_i915_gem_request **pipelined_request); |
- | |
1072 | struct drm_framebuffer * |
1105 | struct drm_framebuffer * |
1073 | __intel_framebuffer_create(struct drm_device *dev, |
1106 | __intel_framebuffer_create(struct drm_device *dev, |
1074 | struct drm_mode_fb_cmd2 *mode_cmd, |
1107 | struct drm_mode_fb_cmd2 *mode_cmd, |
1075 | struct drm_i915_gem_object *obj); |
1108 | struct drm_i915_gem_object *obj); |
1076 | void intel_prepare_page_flip(struct drm_device *dev, int plane); |
1109 | void intel_prepare_page_flip(struct drm_device *dev, int plane); |
Line 1147... | Line 1180... | ||
1147 | void broxton_ddi_phy_init(struct drm_device *dev); |
1180 | void broxton_ddi_phy_init(struct drm_device *dev); |
1148 | void broxton_ddi_phy_uninit(struct drm_device *dev); |
1181 | void broxton_ddi_phy_uninit(struct drm_device *dev); |
1149 | void bxt_enable_dc9(struct drm_i915_private *dev_priv); |
1182 | void bxt_enable_dc9(struct drm_i915_private *dev_priv); |
1150 | void bxt_disable_dc9(struct drm_i915_private *dev_priv); |
1183 | void bxt_disable_dc9(struct drm_i915_private *dev_priv); |
1151 | void skl_init_cdclk(struct drm_i915_private *dev_priv); |
1184 | void skl_init_cdclk(struct drm_i915_private *dev_priv); |
- | 1185 | int skl_sanitize_cdclk(struct drm_i915_private *dev_priv); |
|
1152 | void skl_uninit_cdclk(struct drm_i915_private *dev_priv); |
1186 | void skl_uninit_cdclk(struct drm_i915_private *dev_priv); |
- | 1187 | void skl_enable_dc6(struct drm_i915_private *dev_priv); |
|
- | 1188 | void skl_disable_dc6(struct drm_i915_private *dev_priv); |
|
1153 | void intel_dp_get_m_n(struct intel_crtc *crtc, |
1189 | void intel_dp_get_m_n(struct intel_crtc *crtc, |
1154 | struct intel_crtc_state *pipe_config); |
1190 | struct intel_crtc_state *pipe_config); |
1155 | void intel_dp_set_m_n(struct intel_crtc *crtc, enum link_m_n_set m_n); |
1191 | void intel_dp_set_m_n(struct intel_crtc *crtc, enum link_m_n_set m_n); |
1156 | int intel_dotclock_calculate(int link_freq, const struct intel_link_m_n *m_n); |
1192 | int intel_dotclock_calculate(int link_freq, const struct intel_link_m_n *m_n); |
1157 | void |
1193 | void |
Line 1168... | Line 1204... | ||
1168 | intel_display_port_power_domain(struct intel_encoder *intel_encoder); |
1204 | intel_display_port_power_domain(struct intel_encoder *intel_encoder); |
1169 | enum intel_display_power_domain |
1205 | enum intel_display_power_domain |
1170 | intel_display_port_aux_power_domain(struct intel_encoder *intel_encoder); |
1206 | intel_display_port_aux_power_domain(struct intel_encoder *intel_encoder); |
1171 | void intel_mode_from_pipe_config(struct drm_display_mode *mode, |
1207 | void intel_mode_from_pipe_config(struct drm_display_mode *mode, |
1172 | struct intel_crtc_state *pipe_config); |
1208 | struct intel_crtc_state *pipe_config); |
1173 | void intel_crtc_wait_for_pending_flips(struct drm_crtc *crtc); |
- | |
1174 | void intel_modeset_preclose(struct drm_device *dev, struct drm_file *file); |
1209 | void intel_modeset_preclose(struct drm_device *dev, struct drm_file *file); |
Line 1175... | Line 1210... | ||
1175 | 1210 | ||
1176 | int skl_update_scaler_crtc(struct intel_crtc_state *crtc_state); |
1211 | int skl_update_scaler_crtc(struct intel_crtc_state *crtc_state); |
Line 1183... | Line 1218... | ||
1183 | u32 skl_plane_ctl_format(uint32_t pixel_format); |
1218 | u32 skl_plane_ctl_format(uint32_t pixel_format); |
1184 | u32 skl_plane_ctl_tiling(uint64_t fb_modifier); |
1219 | u32 skl_plane_ctl_tiling(uint64_t fb_modifier); |
1185 | u32 skl_plane_ctl_rotation(unsigned int rotation); |
1220 | u32 skl_plane_ctl_rotation(unsigned int rotation); |
Line 1186... | Line 1221... | ||
1186 | 1221 | ||
1187 | /* intel_csr.c */ |
1222 | /* intel_csr.c */ |
1188 | void intel_csr_ucode_init(struct drm_device *dev); |
- | |
1189 | enum csr_state intel_csr_load_status_get(struct drm_i915_private *dev_priv); |
- | |
1190 | void intel_csr_load_status_set(struct drm_i915_private *dev_priv, |
- | |
1191 | enum csr_state state); |
1223 | void intel_csr_ucode_init(struct drm_i915_private *); |
1192 | void intel_csr_load_program(struct drm_device *dev); |
1224 | void intel_csr_load_program(struct drm_i915_private *); |
1193 | void intel_csr_ucode_fini(struct drm_device *dev); |
- | |
Line 1194... | Line 1225... | ||
1194 | void assert_csr_loaded(struct drm_i915_private *dev_priv); |
1225 | void intel_csr_ucode_fini(struct drm_i915_private *); |
1195 | 1226 | ||
1196 | /* intel_dp.c */ |
1227 | /* intel_dp.c */ |
1197 | bool intel_dp_init(struct drm_device *dev, int output_reg, enum port port); |
1228 | void intel_dp_init(struct drm_device *dev, i915_reg_t output_reg, enum port port); |
1198 | bool intel_dp_init_connector(struct intel_digital_port *intel_dig_port, |
1229 | bool intel_dp_init_connector(struct intel_digital_port *intel_dig_port, |
1199 | struct intel_connector *intel_connector); |
1230 | struct intel_connector *intel_connector); |
1200 | void intel_dp_set_link_params(struct intel_dp *intel_dp, |
1231 | void intel_dp_set_link_params(struct intel_dp *intel_dp, |
Line 1228... | Line 1259... | ||
1228 | void intel_edp_drrs_enable(struct intel_dp *intel_dp); |
1259 | void intel_edp_drrs_enable(struct intel_dp *intel_dp); |
1229 | void intel_edp_drrs_disable(struct intel_dp *intel_dp); |
1260 | void intel_edp_drrs_disable(struct intel_dp *intel_dp); |
1230 | void intel_edp_drrs_invalidate(struct drm_device *dev, |
1261 | void intel_edp_drrs_invalidate(struct drm_device *dev, |
1231 | unsigned frontbuffer_bits); |
1262 | unsigned frontbuffer_bits); |
1232 | void intel_edp_drrs_flush(struct drm_device *dev, unsigned frontbuffer_bits); |
1263 | void intel_edp_drrs_flush(struct drm_device *dev, unsigned frontbuffer_bits); |
- | 1264 | bool intel_digital_port_connected(struct drm_i915_private *dev_priv, |
|
- | 1265 | struct intel_digital_port *port); |
|
1233 | void hsw_dp_set_ddi_pll_sel(struct intel_crtc_state *pipe_config); |
1266 | void hsw_dp_set_ddi_pll_sel(struct intel_crtc_state *pipe_config); |
Line -... | Line 1267... | ||
- | 1267 | ||
- | 1268 | void |
|
- | 1269 | intel_dp_program_link_training_pattern(struct intel_dp *intel_dp, |
|
- | 1270 | uint8_t dp_train_pat); |
|
- | 1271 | void |
|
- | 1272 | intel_dp_set_signal_levels(struct intel_dp *intel_dp); |
|
- | 1273 | void intel_dp_set_idle_link_train(struct intel_dp *intel_dp); |
|
- | 1274 | uint8_t |
|
- | 1275 | intel_dp_voltage_max(struct intel_dp *intel_dp); |
|
- | 1276 | uint8_t |
|
- | 1277 | intel_dp_pre_emphasis_max(struct intel_dp *intel_dp, uint8_t voltage_swing); |
|
- | 1278 | void intel_dp_compute_rate(struct intel_dp *intel_dp, int port_clock, |
|
- | 1279 | uint8_t *link_bw, uint8_t *rate_select); |
|
- | 1280 | bool intel_dp_source_supports_hbr2(struct intel_dp *intel_dp); |
|
- | 1281 | bool |
|
- | 1282 | intel_dp_get_link_status(struct intel_dp *intel_dp, uint8_t link_status[DP_LINK_STATUS_SIZE]); |
|
1234 | 1283 | ||
1235 | /* intel_dp_mst.c */ |
1284 | /* intel_dp_mst.c */ |
1236 | int intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_id); |
1285 | int intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_id); |
1237 | void intel_dp_mst_encoder_cleanup(struct intel_digital_port *intel_dig_port); |
1286 | void intel_dp_mst_encoder_cleanup(struct intel_digital_port *intel_dig_port); |
1238 | /* intel_dsi.c */ |
1287 | /* intel_dsi.c */ |
Line 1244... | Line 1293... | ||
1244 | 1293 | ||
1245 | 1294 | ||
1246 | /* legacy fbdev emulation in intel_fbdev.c */ |
1295 | /* legacy fbdev emulation in intel_fbdev.c */ |
1247 | #ifdef CONFIG_DRM_FBDEV_EMULATION |
1296 | #ifdef CONFIG_DRM_FBDEV_EMULATION |
1248 | extern int intel_fbdev_init(struct drm_device *dev); |
1297 | extern int intel_fbdev_init(struct drm_device *dev); |
1249 | extern void intel_fbdev_initial_config(void *data, async_cookie_t cookie); |
1298 | extern void intel_fbdev_initial_config_async(struct drm_device *dev); |
1250 | extern void intel_fbdev_fini(struct drm_device *dev); |
1299 | extern void intel_fbdev_fini(struct drm_device *dev); |
1251 | extern void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous); |
1300 | extern void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous); |
1252 | extern void intel_fbdev_output_poll_changed(struct drm_device *dev); |
1301 | extern void intel_fbdev_output_poll_changed(struct drm_device *dev); |
1253 | extern void intel_fbdev_restore_mode(struct drm_device *dev); |
1302 | extern void intel_fbdev_restore_mode(struct drm_device *dev); |
1254 | #else |
1303 | #else |
1255 | static inline int intel_fbdev_init(struct drm_device *dev) |
1304 | static inline int intel_fbdev_init(struct drm_device *dev) |
1256 | { |
1305 | { |
Line 1257... | Line 1306... | ||
1257 | return 0; |
1306 | return 0; |
1258 | } |
1307 | } |
1259 | 1308 | ||
Line 1260... | Line 1309... | ||
1260 | static inline void intel_fbdev_initial_config(void *data, async_cookie_t cookie) |
1309 | static inline void intel_fbdev_initial_config_async(struct drm_device *dev) |
1261 | { |
1310 | { |
Line 1273... | Line 1322... | ||
1273 | { |
1322 | { |
1274 | } |
1323 | } |
1275 | #endif |
1324 | #endif |
Line 1276... | Line 1325... | ||
1276 | 1325 | ||
1277 | /* intel_fbc.c */ |
1326 | /* intel_fbc.c */ |
- | 1327 | bool intel_fbc_is_active(struct drm_i915_private *dev_priv); |
|
1278 | bool intel_fbc_enabled(struct drm_i915_private *dev_priv); |
1328 | void intel_fbc_deactivate(struct intel_crtc *crtc); |
1279 | void intel_fbc_update(struct drm_i915_private *dev_priv); |
1329 | void intel_fbc_update(struct intel_crtc *crtc); |
- | 1330 | void intel_fbc_init(struct drm_i915_private *dev_priv); |
|
1280 | void intel_fbc_init(struct drm_i915_private *dev_priv); |
1331 | void intel_fbc_enable(struct intel_crtc *crtc); |
1281 | void intel_fbc_disable(struct drm_i915_private *dev_priv); |
1332 | void intel_fbc_disable(struct drm_i915_private *dev_priv); |
1282 | void intel_fbc_disable_crtc(struct intel_crtc *crtc); |
1333 | void intel_fbc_disable_crtc(struct intel_crtc *crtc); |
1283 | void intel_fbc_invalidate(struct drm_i915_private *dev_priv, |
1334 | void intel_fbc_invalidate(struct drm_i915_private *dev_priv, |
1284 | unsigned int frontbuffer_bits, |
1335 | unsigned int frontbuffer_bits, |
1285 | enum fb_op_origin origin); |
1336 | enum fb_op_origin origin); |
1286 | void intel_fbc_flush(struct drm_i915_private *dev_priv, |
1337 | void intel_fbc_flush(struct drm_i915_private *dev_priv, |
1287 | unsigned int frontbuffer_bits, enum fb_op_origin origin); |
- | |
1288 | const char *intel_no_fbc_reason_str(enum no_fbc_reason reason); |
1338 | unsigned int frontbuffer_bits, enum fb_op_origin origin); |
Line 1289... | Line 1339... | ||
1289 | void intel_fbc_cleanup_cfb(struct drm_i915_private *dev_priv); |
1339 | void intel_fbc_cleanup_cfb(struct drm_i915_private *dev_priv); |
1290 | 1340 | ||
1291 | /* intel_hdmi.c */ |
1341 | /* intel_hdmi.c */ |
1292 | void intel_hdmi_init(struct drm_device *dev, int hdmi_reg, enum port port); |
1342 | void intel_hdmi_init(struct drm_device *dev, i915_reg_t hdmi_reg, enum port port); |
1293 | void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port, |
1343 | void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port, |
1294 | struct intel_connector *intel_connector); |
1344 | struct intel_connector *intel_connector); |
1295 | struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder); |
1345 | struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder); |
Line 1363... | Line 1413... | ||
1363 | unsigned frontbuffer_bits); |
1413 | unsigned frontbuffer_bits); |
Line 1364... | Line 1414... | ||
1364 | 1414 | ||
1365 | /* intel_runtime_pm.c */ |
1415 | /* intel_runtime_pm.c */ |
1366 | int intel_power_domains_init(struct drm_i915_private *); |
1416 | int intel_power_domains_init(struct drm_i915_private *); |
- | 1417 | void intel_power_domains_fini(struct drm_i915_private *); |
|
1367 | void intel_power_domains_fini(struct drm_i915_private *); |
1418 | void intel_power_domains_init_hw(struct drm_i915_private *dev_priv, bool resume); |
- | 1419 | void intel_power_domains_suspend(struct drm_i915_private *dev_priv); |
|
- | 1420 | void skl_pw1_misc_io_init(struct drm_i915_private *dev_priv); |
|
1368 | void intel_power_domains_init_hw(struct drm_i915_private *dev_priv); |
1421 | void skl_pw1_misc_io_fini(struct drm_i915_private *dev_priv); |
- | 1422 | void intel_runtime_pm_enable(struct drm_i915_private *dev_priv); |
|
- | 1423 | const char * |
|
Line 1369... | Line 1424... | ||
1369 | void intel_runtime_pm_enable(struct drm_i915_private *dev_priv); |
1424 | intel_display_power_domain_str(enum intel_display_power_domain domain); |
1370 | 1425 | ||
1371 | bool intel_display_power_is_enabled(struct drm_i915_private *dev_priv, |
1426 | bool intel_display_power_is_enabled(struct drm_i915_private *dev_priv, |
1372 | enum intel_display_power_domain domain); |
1427 | enum intel_display_power_domain domain); |
1373 | bool __intel_display_power_is_enabled(struct drm_i915_private *dev_priv, |
1428 | bool __intel_display_power_is_enabled(struct drm_i915_private *dev_priv, |
1374 | enum intel_display_power_domain domain); |
1429 | enum intel_display_power_domain domain); |
- | 1430 | void intel_display_power_get(struct drm_i915_private *dev_priv, |
|
- | 1431 | enum intel_display_power_domain domain); |
|
1375 | void intel_display_power_get(struct drm_i915_private *dev_priv, |
1432 | bool intel_display_power_get_if_enabled(struct drm_i915_private *dev_priv, |
1376 | enum intel_display_power_domain domain); |
1433 | enum intel_display_power_domain domain); |
- | 1434 | void intel_display_power_put(struct drm_i915_private *dev_priv, |
|
- | 1435 | enum intel_display_power_domain domain); |
|
- | 1436 | ||
- | 1437 | static inline void |
|
- | 1438 | assert_rpm_device_not_suspended(struct drm_i915_private *dev_priv) |
|
- | 1439 | { |
|
- | 1440 | WARN_ONCE(dev_priv->pm.suspended, |
|
- | 1441 | "Device suspended during HW access\n"); |
|
- | 1442 | } |
|
- | 1443 | ||
- | 1444 | static inline void |
|
- | 1445 | assert_rpm_wakelock_held(struct drm_i915_private *dev_priv) |
|
- | 1446 | { |
|
- | 1447 | assert_rpm_device_not_suspended(dev_priv); |
|
- | 1448 | /* FIXME: Needs to be converted back to WARN_ONCE, but currently causes |
|
- | 1449 | * too much noise. */ |
|
- | 1450 | if (!atomic_read(&dev_priv->pm.wakeref_count)) |
|
- | 1451 | DRM_DEBUG_DRIVER("RPM wakelock ref not held during HW access"); |
|
- | 1452 | } |
|
- | 1453 | ||
- | 1454 | static inline int |
|
- | 1455 | assert_rpm_atomic_begin(struct drm_i915_private *dev_priv) |
|
- | 1456 | { |
|
- | 1457 | int seq = atomic_read(&dev_priv->pm.atomic_seq); |
|
- | 1458 | ||
- | 1459 | assert_rpm_wakelock_held(dev_priv); |
|
- | 1460 | ||
- | 1461 | return seq; |
|
- | 1462 | } |
|
- | 1463 | ||
- | 1464 | static inline void |
|
- | 1465 | assert_rpm_atomic_end(struct drm_i915_private *dev_priv, int begin_seq) |
|
- | 1466 | { |
|
- | 1467 | WARN_ONCE(atomic_read(&dev_priv->pm.atomic_seq) != begin_seq, |
|
- | 1468 | "HW access outside of RPM atomic section\n"); |
|
- | 1469 | } |
|
- | 1470 | ||
- | 1471 | /** |
|
- | 1472 | * disable_rpm_wakeref_asserts - disable the RPM assert checks |
|
- | 1473 | * @dev_priv: i915 device instance |
|
- | 1474 | * |
|
- | 1475 | * This function disable asserts that check if we hold an RPM wakelock |
|
- | 1476 | * reference, while keeping the device-not-suspended checks still enabled. |
|
- | 1477 | * It's meant to be used only in special circumstances where our rule about |
|
- | 1478 | * the wakelock refcount wrt. the device power state doesn't hold. According |
|
- | 1479 | * to this rule at any point where we access the HW or want to keep the HW in |
|
- | 1480 | * an active state we must hold an RPM wakelock reference acquired via one of |
|
- | 1481 | * the intel_runtime_pm_get() helpers. Currently there are a few special spots |
|
- | 1482 | * where this rule doesn't hold: the IRQ and suspend/resume handlers, the |
|
- | 1483 | * forcewake release timer, and the GPU RPS and hangcheck works. All other |
|
- | 1484 | * users should avoid using this function. |
|
- | 1485 | * |
|
- | 1486 | * Any calls to this function must have a symmetric call to |
|
- | 1487 | * enable_rpm_wakeref_asserts(). |
|
- | 1488 | */ |
|
- | 1489 | static inline void |
|
- | 1490 | disable_rpm_wakeref_asserts(struct drm_i915_private *dev_priv) |
|
- | 1491 | { |
|
- | 1492 | atomic_inc(&dev_priv->pm.wakeref_count); |
|
- | 1493 | } |
|
- | 1494 | ||
- | 1495 | /** |
|
- | 1496 | * enable_rpm_wakeref_asserts - re-enable the RPM assert checks |
|
- | 1497 | * @dev_priv: i915 device instance |
|
- | 1498 | * |
|
- | 1499 | * This function re-enables the RPM assert checks after disabling them with |
|
- | 1500 | * disable_rpm_wakeref_asserts. It's meant to be used only in special |
|
- | 1501 | * circumstances otherwise its use should be avoided. |
|
- | 1502 | * |
|
- | 1503 | * Any calls to this function must have a symmetric call to |
|
- | 1504 | * disable_rpm_wakeref_asserts(). |
|
- | 1505 | */ |
|
- | 1506 | static inline void |
|
- | 1507 | enable_rpm_wakeref_asserts(struct drm_i915_private *dev_priv) |
|
- | 1508 | { |
|
- | 1509 | atomic_dec(&dev_priv->pm.wakeref_count); |
|
- | 1510 | } |
|
- | 1511 | ||
- | 1512 | /* TODO: convert users of these to rely instead on proper RPM refcounting */ |
|
- | 1513 | #define DISABLE_RPM_WAKEREF_ASSERTS(dev_priv) \ |
|
- | 1514 | disable_rpm_wakeref_asserts(dev_priv) |
|
- | 1515 | ||
- | 1516 | #define ENABLE_RPM_WAKEREF_ASSERTS(dev_priv) \ |
|
1377 | void intel_display_power_put(struct drm_i915_private *dev_priv, |
1517 | enable_rpm_wakeref_asserts(dev_priv) |
- | 1518 | ||
1378 | enum intel_display_power_domain domain); |
1519 | void intel_runtime_pm_get(struct drm_i915_private *dev_priv); |
1379 | void intel_runtime_pm_get(struct drm_i915_private *dev_priv); |
1520 | bool intel_runtime_pm_get_if_in_use(struct drm_i915_private *dev_priv); |
Line 1380... | Line 1521... | ||
1380 | void intel_runtime_pm_get_noresume(struct drm_i915_private *dev_priv); |
1521 | void intel_runtime_pm_get_noresume(struct drm_i915_private *dev_priv); |
Line 1391... | Line 1532... | ||
1391 | /* intel_pm.c */ |
1532 | /* intel_pm.c */ |
1392 | void intel_init_clock_gating(struct drm_device *dev); |
1533 | void intel_init_clock_gating(struct drm_device *dev); |
1393 | void intel_suspend_hw(struct drm_device *dev); |
1534 | void intel_suspend_hw(struct drm_device *dev); |
1394 | int ilk_wm_max_level(const struct drm_device *dev); |
1535 | int ilk_wm_max_level(const struct drm_device *dev); |
1395 | void intel_update_watermarks(struct drm_crtc *crtc); |
1536 | void intel_update_watermarks(struct drm_crtc *crtc); |
1396 | void intel_update_sprite_watermarks(struct drm_plane *plane, |
- | |
1397 | struct drm_crtc *crtc, |
- | |
1398 | uint32_t sprite_width, |
- | |
1399 | uint32_t sprite_height, |
- | |
1400 | int pixel_size, |
- | |
1401 | bool enabled, bool scaled); |
- | |
1402 | void intel_init_pm(struct drm_device *dev); |
1537 | void intel_init_pm(struct drm_device *dev); |
1403 | void intel_pm_setup(struct drm_device *dev); |
1538 | void intel_pm_setup(struct drm_device *dev); |
1404 | void intel_gpu_ips_init(struct drm_i915_private *dev_priv); |
1539 | void intel_gpu_ips_init(struct drm_i915_private *dev_priv); |
1405 | void intel_gpu_ips_teardown(void); |
1540 | void intel_gpu_ips_teardown(void); |
1406 | void intel_init_gt_powersave(struct drm_device *dev); |
1541 | void intel_init_gt_powersave(struct drm_device *dev); |
Line 1424... | Line 1559... | ||
1424 | void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv, |
1559 | void skl_ddb_get_hw_state(struct drm_i915_private *dev_priv, |
1425 | struct skl_ddb_allocation *ddb /* out */); |
1560 | struct skl_ddb_allocation *ddb /* out */); |
1426 | uint32_t ilk_pipe_pixel_rate(const struct intel_crtc_state *pipe_config); |
1561 | uint32_t ilk_pipe_pixel_rate(const struct intel_crtc_state *pipe_config); |
Line 1427... | Line 1562... | ||
1427 | 1562 | ||
1428 | /* intel_sdvo.c */ |
1563 | /* intel_sdvo.c */ |
- | 1564 | bool intel_sdvo_init(struct drm_device *dev, |
|
Line 1429... | Line 1565... | ||
1429 | bool intel_sdvo_init(struct drm_device *dev, uint32_t sdvo_reg, bool is_sdvob); |
1565 | i915_reg_t reg, enum port port); |
1430 | 1566 | ||
1431 | 1567 | ||
Line 1472... | Line 1608... | ||
1472 | struct drm_plane_state *intel_plane_duplicate_state(struct drm_plane *plane); |
1608 | struct drm_plane_state *intel_plane_duplicate_state(struct drm_plane *plane); |
1473 | void intel_plane_destroy_state(struct drm_plane *plane, |
1609 | void intel_plane_destroy_state(struct drm_plane *plane, |
1474 | struct drm_plane_state *state); |
1610 | struct drm_plane_state *state); |
1475 | extern const struct drm_plane_helper_funcs intel_plane_helper_funcs; |
1611 | extern const struct drm_plane_helper_funcs intel_plane_helper_funcs; |
Line -... | Line 1612... | ||
- | 1612 | ||
- | 1613 | int drm_core_init(void); |
|
- | 1614 | void set_fake_framebuffer(); |
|
- | 1615 | int kolibri_framebuffer_init(void *param); |
|
- | 1616 | void shmem_file_delete(struct file *filep); |
|
- | 1617 | void intel_fbdev_initial_config(void *data, async_cookie_t cookie); |
|
- | 1618 | int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, |
|
- | 1619 | struct drm_driver *driver); |
|
1476 | 1620 |