diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dpio_phy.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_dpio_phy.c | 122 |
1 files changed, 59 insertions, 63 deletions
diff --git a/drivers/gpu/drm/i915/intel_dpio_phy.c b/drivers/gpu/drm/i915/intel_dpio_phy.c index de38d014ed39..76473e9836c6 100644 --- a/drivers/gpu/drm/i915/intel_dpio_phy.c +++ b/drivers/gpu/drm/i915/intel_dpio_phy.c | |||
@@ -466,21 +466,21 @@ void bxt_ddi_phy_init(struct drm_i915_private *dev_priv, enum dpio_phy phy) | |||
466 | 466 | ||
467 | lockdep_assert_held(&dev_priv->power_domains.lock); | 467 | lockdep_assert_held(&dev_priv->power_domains.lock); |
468 | 468 | ||
469 | if (rcomp_phy != -1) { | 469 | was_enabled = true; |
470 | if (rcomp_phy != -1) | ||
470 | was_enabled = bxt_ddi_phy_is_enabled(dev_priv, rcomp_phy); | 471 | was_enabled = bxt_ddi_phy_is_enabled(dev_priv, rcomp_phy); |
471 | 472 | ||
472 | /* | 473 | /* |
473 | * We need to copy the GRC calibration value from rcomp_phy, | 474 | * We need to copy the GRC calibration value from rcomp_phy, |
474 | * so make sure it's powered up. | 475 | * so make sure it's powered up. |
475 | */ | 476 | */ |
476 | if (!was_enabled) | 477 | if (!was_enabled) |
477 | _bxt_ddi_phy_init(dev_priv, rcomp_phy); | 478 | _bxt_ddi_phy_init(dev_priv, rcomp_phy); |
478 | } | ||
479 | 479 | ||
480 | _bxt_ddi_phy_init(dev_priv, phy); | 480 | _bxt_ddi_phy_init(dev_priv, phy); |
481 | 481 | ||
482 | if (rcomp_phy != -1 && !was_enabled) | 482 | if (!was_enabled) |
483 | bxt_ddi_phy_uninit(dev_priv, phy_info->rcomp_phy); | 483 | bxt_ddi_phy_uninit(dev_priv, rcomp_phy); |
484 | } | 484 | } |
485 | 485 | ||
486 | static bool __printf(6, 7) | 486 | static bool __printf(6, 7) |
@@ -567,8 +567,7 @@ bool bxt_ddi_phy_verify_state(struct drm_i915_private *dev_priv, | |||
567 | } | 567 | } |
568 | 568 | ||
569 | uint8_t | 569 | uint8_t |
570 | bxt_ddi_phy_calc_lane_lat_optim_mask(struct intel_encoder *encoder, | 570 | bxt_ddi_phy_calc_lane_lat_optim_mask(uint8_t lane_count) |
571 | uint8_t lane_count) | ||
572 | { | 571 | { |
573 | switch (lane_count) { | 572 | switch (lane_count) { |
574 | case 1: | 573 | case 1: |
@@ -587,9 +586,8 @@ bxt_ddi_phy_calc_lane_lat_optim_mask(struct intel_encoder *encoder, | |||
587 | void bxt_ddi_phy_set_lane_optim_mask(struct intel_encoder *encoder, | 586 | void bxt_ddi_phy_set_lane_optim_mask(struct intel_encoder *encoder, |
588 | uint8_t lane_lat_optim_mask) | 587 | uint8_t lane_lat_optim_mask) |
589 | { | 588 | { |
590 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); | 589 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
591 | struct drm_i915_private *dev_priv = to_i915(dport->base.base.dev); | 590 | enum port port = encoder->port; |
592 | enum port port = dport->port; | ||
593 | enum dpio_phy phy; | 591 | enum dpio_phy phy; |
594 | enum dpio_channel ch; | 592 | enum dpio_channel ch; |
595 | int lane; | 593 | int lane; |
@@ -614,9 +612,8 @@ void bxt_ddi_phy_set_lane_optim_mask(struct intel_encoder *encoder, | |||
614 | uint8_t | 612 | uint8_t |
615 | bxt_ddi_phy_get_lane_lat_optim_mask(struct intel_encoder *encoder) | 613 | bxt_ddi_phy_get_lane_lat_optim_mask(struct intel_encoder *encoder) |
616 | { | 614 | { |
617 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); | 615 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
618 | struct drm_i915_private *dev_priv = to_i915(dport->base.base.dev); | 616 | enum port port = encoder->port; |
619 | enum port port = dport->port; | ||
620 | enum dpio_phy phy; | 617 | enum dpio_phy phy; |
621 | enum dpio_channel ch; | 618 | enum dpio_channel ch; |
622 | int lane; | 619 | int lane; |
@@ -642,7 +639,7 @@ void chv_set_phy_signal_level(struct intel_encoder *encoder, | |||
642 | { | 639 | { |
643 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); | 640 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
644 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); | 641 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); |
645 | struct intel_crtc *intel_crtc = to_intel_crtc(dport->base.base.crtc); | 642 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); |
646 | enum dpio_channel ch = vlv_dport_to_channel(dport); | 643 | enum dpio_channel ch = vlv_dport_to_channel(dport); |
647 | enum pipe pipe = intel_crtc->pipe; | 644 | enum pipe pipe = intel_crtc->pipe; |
648 | u32 val; | 645 | u32 val; |
@@ -734,11 +731,12 @@ void chv_set_phy_signal_level(struct intel_encoder *encoder, | |||
734 | } | 731 | } |
735 | 732 | ||
736 | void chv_data_lane_soft_reset(struct intel_encoder *encoder, | 733 | void chv_data_lane_soft_reset(struct intel_encoder *encoder, |
734 | const struct intel_crtc_state *crtc_state, | ||
737 | bool reset) | 735 | bool reset) |
738 | { | 736 | { |
739 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); | 737 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
740 | enum dpio_channel ch = vlv_dport_to_channel(enc_to_dig_port(&encoder->base)); | 738 | enum dpio_channel ch = vlv_dport_to_channel(enc_to_dig_port(&encoder->base)); |
741 | struct intel_crtc *crtc = to_intel_crtc(encoder->base.crtc); | 739 | struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); |
742 | enum pipe pipe = crtc->pipe; | 740 | enum pipe pipe = crtc->pipe; |
743 | uint32_t val; | 741 | uint32_t val; |
744 | 742 | ||
@@ -777,17 +775,16 @@ void chv_data_lane_soft_reset(struct intel_encoder *encoder, | |||
777 | } | 775 | } |
778 | } | 776 | } |
779 | 777 | ||
780 | void chv_phy_pre_pll_enable(struct intel_encoder *encoder) | 778 | void chv_phy_pre_pll_enable(struct intel_encoder *encoder, |
779 | const struct intel_crtc_state *crtc_state) | ||
781 | { | 780 | { |
782 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); | 781 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); |
783 | struct drm_device *dev = encoder->base.dev; | 782 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
784 | struct drm_i915_private *dev_priv = to_i915(dev); | 783 | struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); |
785 | struct intel_crtc *intel_crtc = | ||
786 | to_intel_crtc(encoder->base.crtc); | ||
787 | enum dpio_channel ch = vlv_dport_to_channel(dport); | 784 | enum dpio_channel ch = vlv_dport_to_channel(dport); |
788 | enum pipe pipe = intel_crtc->pipe; | 785 | enum pipe pipe = crtc->pipe; |
789 | unsigned int lane_mask = | 786 | unsigned int lane_mask = |
790 | intel_dp_unused_lane_mask(intel_crtc->config->lane_count); | 787 | intel_dp_unused_lane_mask(crtc_state->lane_count); |
791 | u32 val; | 788 | u32 val; |
792 | 789 | ||
793 | /* | 790 | /* |
@@ -803,7 +800,7 @@ void chv_phy_pre_pll_enable(struct intel_encoder *encoder) | |||
803 | mutex_lock(&dev_priv->sb_lock); | 800 | mutex_lock(&dev_priv->sb_lock); |
804 | 801 | ||
805 | /* Assert data lane reset */ | 802 | /* Assert data lane reset */ |
806 | chv_data_lane_soft_reset(encoder, true); | 803 | chv_data_lane_soft_reset(encoder, crtc_state, true); |
807 | 804 | ||
808 | /* program left/right clock distribution */ | 805 | /* program left/right clock distribution */ |
809 | if (pipe != PIPE_B) { | 806 | if (pipe != PIPE_B) { |
@@ -833,7 +830,7 @@ void chv_phy_pre_pll_enable(struct intel_encoder *encoder) | |||
833 | val |= CHV_PCS_USEDCLKCHANNEL; | 830 | val |= CHV_PCS_USEDCLKCHANNEL; |
834 | vlv_dpio_write(dev_priv, pipe, VLV_PCS01_DW8(ch), val); | 831 | vlv_dpio_write(dev_priv, pipe, VLV_PCS01_DW8(ch), val); |
835 | 832 | ||
836 | if (intel_crtc->config->lane_count > 2) { | 833 | if (crtc_state->lane_count > 2) { |
837 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS23_DW8(ch)); | 834 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS23_DW8(ch)); |
838 | val |= CHV_PCS_USEDCLKCHANNEL_OVRRIDE; | 835 | val |= CHV_PCS_USEDCLKCHANNEL_OVRRIDE; |
839 | if (pipe != PIPE_B) | 836 | if (pipe != PIPE_B) |
@@ -858,16 +855,15 @@ void chv_phy_pre_pll_enable(struct intel_encoder *encoder) | |||
858 | mutex_unlock(&dev_priv->sb_lock); | 855 | mutex_unlock(&dev_priv->sb_lock); |
859 | } | 856 | } |
860 | 857 | ||
861 | void chv_phy_pre_encoder_enable(struct intel_encoder *encoder) | 858 | void chv_phy_pre_encoder_enable(struct intel_encoder *encoder, |
859 | const struct intel_crtc_state *crtc_state) | ||
862 | { | 860 | { |
863 | struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); | 861 | struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); |
864 | struct intel_digital_port *dport = dp_to_dig_port(intel_dp); | 862 | struct intel_digital_port *dport = dp_to_dig_port(intel_dp); |
865 | struct drm_device *dev = encoder->base.dev; | 863 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
866 | struct drm_i915_private *dev_priv = to_i915(dev); | 864 | struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); |
867 | struct intel_crtc *intel_crtc = | ||
868 | to_intel_crtc(encoder->base.crtc); | ||
869 | enum dpio_channel ch = vlv_dport_to_channel(dport); | 865 | enum dpio_channel ch = vlv_dport_to_channel(dport); |
870 | int pipe = intel_crtc->pipe; | 866 | enum pipe pipe = crtc->pipe; |
871 | int data, i, stagger; | 867 | int data, i, stagger; |
872 | u32 val; | 868 | u32 val; |
873 | 869 | ||
@@ -878,16 +874,16 @@ void chv_phy_pre_encoder_enable(struct intel_encoder *encoder) | |||
878 | val &= ~DPIO_LANEDESKEW_STRAP_OVRD; | 874 | val &= ~DPIO_LANEDESKEW_STRAP_OVRD; |
879 | vlv_dpio_write(dev_priv, pipe, VLV_PCS01_DW11(ch), val); | 875 | vlv_dpio_write(dev_priv, pipe, VLV_PCS01_DW11(ch), val); |
880 | 876 | ||
881 | if (intel_crtc->config->lane_count > 2) { | 877 | if (crtc_state->lane_count > 2) { |
882 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS23_DW11(ch)); | 878 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS23_DW11(ch)); |
883 | val &= ~DPIO_LANEDESKEW_STRAP_OVRD; | 879 | val &= ~DPIO_LANEDESKEW_STRAP_OVRD; |
884 | vlv_dpio_write(dev_priv, pipe, VLV_PCS23_DW11(ch), val); | 880 | vlv_dpio_write(dev_priv, pipe, VLV_PCS23_DW11(ch), val); |
885 | } | 881 | } |
886 | 882 | ||
887 | /* Program Tx lane latency optimal setting*/ | 883 | /* Program Tx lane latency optimal setting*/ |
888 | for (i = 0; i < intel_crtc->config->lane_count; i++) { | 884 | for (i = 0; i < crtc_state->lane_count; i++) { |
889 | /* Set the upar bit */ | 885 | /* Set the upar bit */ |
890 | if (intel_crtc->config->lane_count == 1) | 886 | if (crtc_state->lane_count == 1) |
891 | data = 0x0; | 887 | data = 0x0; |
892 | else | 888 | else |
893 | data = (i == 1) ? 0x0 : 0x1; | 889 | data = (i == 1) ? 0x0 : 0x1; |
@@ -896,13 +892,13 @@ void chv_phy_pre_encoder_enable(struct intel_encoder *encoder) | |||
896 | } | 892 | } |
897 | 893 | ||
898 | /* Data lane stagger programming */ | 894 | /* Data lane stagger programming */ |
899 | if (intel_crtc->config->port_clock > 270000) | 895 | if (crtc_state->port_clock > 270000) |
900 | stagger = 0x18; | 896 | stagger = 0x18; |
901 | else if (intel_crtc->config->port_clock > 135000) | 897 | else if (crtc_state->port_clock > 135000) |
902 | stagger = 0xd; | 898 | stagger = 0xd; |
903 | else if (intel_crtc->config->port_clock > 67500) | 899 | else if (crtc_state->port_clock > 67500) |
904 | stagger = 0x7; | 900 | stagger = 0x7; |
905 | else if (intel_crtc->config->port_clock > 33750) | 901 | else if (crtc_state->port_clock > 33750) |
906 | stagger = 0x4; | 902 | stagger = 0x4; |
907 | else | 903 | else |
908 | stagger = 0x2; | 904 | stagger = 0x2; |
@@ -911,7 +907,7 @@ void chv_phy_pre_encoder_enable(struct intel_encoder *encoder) | |||
911 | val |= DPIO_TX2_STAGGER_MASK(0x1f); | 907 | val |= DPIO_TX2_STAGGER_MASK(0x1f); |
912 | vlv_dpio_write(dev_priv, pipe, VLV_PCS01_DW11(ch), val); | 908 | vlv_dpio_write(dev_priv, pipe, VLV_PCS01_DW11(ch), val); |
913 | 909 | ||
914 | if (intel_crtc->config->lane_count > 2) { | 910 | if (crtc_state->lane_count > 2) { |
915 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS23_DW11(ch)); | 911 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS23_DW11(ch)); |
916 | val |= DPIO_TX2_STAGGER_MASK(0x1f); | 912 | val |= DPIO_TX2_STAGGER_MASK(0x1f); |
917 | vlv_dpio_write(dev_priv, pipe, VLV_PCS23_DW11(ch), val); | 913 | vlv_dpio_write(dev_priv, pipe, VLV_PCS23_DW11(ch), val); |
@@ -924,7 +920,7 @@ void chv_phy_pre_encoder_enable(struct intel_encoder *encoder) | |||
924 | DPIO_TX1_STAGGER_MULT(6) | | 920 | DPIO_TX1_STAGGER_MULT(6) | |
925 | DPIO_TX2_STAGGER_MULT(0)); | 921 | DPIO_TX2_STAGGER_MULT(0)); |
926 | 922 | ||
927 | if (intel_crtc->config->lane_count > 2) { | 923 | if (crtc_state->lane_count > 2) { |
928 | vlv_dpio_write(dev_priv, pipe, VLV_PCS23_DW12(ch), | 924 | vlv_dpio_write(dev_priv, pipe, VLV_PCS23_DW12(ch), |
929 | DPIO_LANESTAGGER_STRAP(stagger) | | 925 | DPIO_LANESTAGGER_STRAP(stagger) | |
930 | DPIO_LANESTAGGER_STRAP_OVRD | | 926 | DPIO_LANESTAGGER_STRAP_OVRD | |
@@ -934,7 +930,7 @@ void chv_phy_pre_encoder_enable(struct intel_encoder *encoder) | |||
934 | } | 930 | } |
935 | 931 | ||
936 | /* Deassert data lane reset */ | 932 | /* Deassert data lane reset */ |
937 | chv_data_lane_soft_reset(encoder, false); | 933 | chv_data_lane_soft_reset(encoder, crtc_state, false); |
938 | 934 | ||
939 | mutex_unlock(&dev_priv->sb_lock); | 935 | mutex_unlock(&dev_priv->sb_lock); |
940 | } | 936 | } |
@@ -950,10 +946,11 @@ void chv_phy_release_cl2_override(struct intel_encoder *encoder) | |||
950 | } | 946 | } |
951 | } | 947 | } |
952 | 948 | ||
953 | void chv_phy_post_pll_disable(struct intel_encoder *encoder) | 949 | void chv_phy_post_pll_disable(struct intel_encoder *encoder, |
950 | const struct intel_crtc_state *old_crtc_state) | ||
954 | { | 951 | { |
955 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); | 952 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
956 | enum pipe pipe = to_intel_crtc(encoder->base.crtc)->pipe; | 953 | enum pipe pipe = to_intel_crtc(old_crtc_state->base.crtc)->pipe; |
957 | u32 val; | 954 | u32 val; |
958 | 955 | ||
959 | mutex_lock(&dev_priv->sb_lock); | 956 | mutex_lock(&dev_priv->sb_lock); |
@@ -991,7 +988,7 @@ void vlv_set_phy_signal_level(struct intel_encoder *encoder, | |||
991 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); | 988 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); |
992 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); | 989 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); |
993 | enum dpio_channel port = vlv_dport_to_channel(dport); | 990 | enum dpio_channel port = vlv_dport_to_channel(dport); |
994 | int pipe = intel_crtc->pipe; | 991 | enum pipe pipe = intel_crtc->pipe; |
995 | 992 | ||
996 | mutex_lock(&dev_priv->sb_lock); | 993 | mutex_lock(&dev_priv->sb_lock); |
997 | vlv_dpio_write(dev_priv, pipe, VLV_TX_DW5(port), 0x00000000); | 994 | vlv_dpio_write(dev_priv, pipe, VLV_TX_DW5(port), 0x00000000); |
@@ -1009,15 +1006,14 @@ void vlv_set_phy_signal_level(struct intel_encoder *encoder, | |||
1009 | mutex_unlock(&dev_priv->sb_lock); | 1006 | mutex_unlock(&dev_priv->sb_lock); |
1010 | } | 1007 | } |
1011 | 1008 | ||
1012 | void vlv_phy_pre_pll_enable(struct intel_encoder *encoder) | 1009 | void vlv_phy_pre_pll_enable(struct intel_encoder *encoder, |
1010 | const struct intel_crtc_state *crtc_state) | ||
1013 | { | 1011 | { |
1014 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); | 1012 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); |
1015 | struct drm_device *dev = encoder->base.dev; | 1013 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
1016 | struct drm_i915_private *dev_priv = to_i915(dev); | 1014 | struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); |
1017 | struct intel_crtc *intel_crtc = | ||
1018 | to_intel_crtc(encoder->base.crtc); | ||
1019 | enum dpio_channel port = vlv_dport_to_channel(dport); | 1015 | enum dpio_channel port = vlv_dport_to_channel(dport); |
1020 | int pipe = intel_crtc->pipe; | 1016 | enum pipe pipe = crtc->pipe; |
1021 | 1017 | ||
1022 | /* Program Tx lane resets to default */ | 1018 | /* Program Tx lane resets to default */ |
1023 | mutex_lock(&dev_priv->sb_lock); | 1019 | mutex_lock(&dev_priv->sb_lock); |
@@ -1037,15 +1033,15 @@ void vlv_phy_pre_pll_enable(struct intel_encoder *encoder) | |||
1037 | mutex_unlock(&dev_priv->sb_lock); | 1033 | mutex_unlock(&dev_priv->sb_lock); |
1038 | } | 1034 | } |
1039 | 1035 | ||
1040 | void vlv_phy_pre_encoder_enable(struct intel_encoder *encoder) | 1036 | void vlv_phy_pre_encoder_enable(struct intel_encoder *encoder, |
1037 | const struct intel_crtc_state *crtc_state) | ||
1041 | { | 1038 | { |
1042 | struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); | 1039 | struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); |
1043 | struct intel_digital_port *dport = dp_to_dig_port(intel_dp); | 1040 | struct intel_digital_port *dport = dp_to_dig_port(intel_dp); |
1044 | struct drm_device *dev = encoder->base.dev; | 1041 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
1045 | struct drm_i915_private *dev_priv = to_i915(dev); | 1042 | struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); |
1046 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); | ||
1047 | enum dpio_channel port = vlv_dport_to_channel(dport); | 1043 | enum dpio_channel port = vlv_dport_to_channel(dport); |
1048 | int pipe = intel_crtc->pipe; | 1044 | enum pipe pipe = crtc->pipe; |
1049 | u32 val; | 1045 | u32 val; |
1050 | 1046 | ||
1051 | mutex_lock(&dev_priv->sb_lock); | 1047 | mutex_lock(&dev_priv->sb_lock); |
@@ -1067,14 +1063,14 @@ void vlv_phy_pre_encoder_enable(struct intel_encoder *encoder) | |||
1067 | mutex_unlock(&dev_priv->sb_lock); | 1063 | mutex_unlock(&dev_priv->sb_lock); |
1068 | } | 1064 | } |
1069 | 1065 | ||
1070 | void vlv_phy_reset_lanes(struct intel_encoder *encoder) | 1066 | void vlv_phy_reset_lanes(struct intel_encoder *encoder, |
1067 | const struct intel_crtc_state *old_crtc_state) | ||
1071 | { | 1068 | { |
1072 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); | 1069 | struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); |
1073 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); | 1070 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
1074 | struct intel_crtc *intel_crtc = | 1071 | struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->base.crtc); |
1075 | to_intel_crtc(encoder->base.crtc); | ||
1076 | enum dpio_channel port = vlv_dport_to_channel(dport); | 1072 | enum dpio_channel port = vlv_dport_to_channel(dport); |
1077 | int pipe = intel_crtc->pipe; | 1073 | enum pipe pipe = crtc->pipe; |
1078 | 1074 | ||
1079 | mutex_lock(&dev_priv->sb_lock); | 1075 | mutex_lock(&dev_priv->sb_lock); |
1080 | vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(port), 0x00000000); | 1076 | vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(port), 0x00000000); |