89
89
#define INTEL_PCH_PPT_DEVICE_ID 0x1e00
90
90
#define INTEL_PCH_LPT_DEVICE_ID 0x8c00
91
91
#define INTEL_PCH_LPT_LP_DEVICE_ID 0x9c00
92
- #define INTEL_PCH_SPT_DEVICE_ID 0xA100
93
- #define INTEL_PCH_SPT_LP_DEVICE_ID 0x9D00
92
+ #define INTEL_PCH_SPT_DEVICE_ID 0xa100
93
+ #define INTEL_PCH_SPT_LP_DEVICE_ID 0x9d00
94
94
#define INTEL_PCH_P2X_DEVICE_ID 0x7100
95
95
#define INTEL_PCH_P3X_DEVICE_ID 0x7000
96
96
@@ -543,21 +543,21 @@ struct intel_free_graphics_memory {
543
543
#define PORT_TRANS_SEL_MASK (3<<29)
544
544
545
545
// on PCH we also have to set the transcoder
546
- #define INTEL_TRANSCODER_A_HTOTAL (0x0000 | REGS_SOUTH_TRANSCODER_PORT)
547
- #define INTEL_TRANSCODER_A_HBLANK (0x0004 | REGS_SOUTH_TRANSCODER_PORT)
548
- #define INTEL_TRANSCODER_A_HSYNC (0x0008 | REGS_SOUTH_TRANSCODER_PORT)
549
- #define INTEL_TRANSCODER_A_VTOTAL (0x000c | REGS_SOUTH_TRANSCODER_PORT)
550
- #define INTEL_TRANSCODER_A_VBLANK (0x0010 | REGS_SOUTH_TRANSCODER_PORT)
551
- #define INTEL_TRANSCODER_A_VSYNC (0x0014 | REGS_SOUTH_TRANSCODER_PORT)
552
- #define INTEL_TRANSCODER_B_HTOTAL (0x1000 | REGS_SOUTH_TRANSCODER_PORT)
553
- #define INTEL_TRANSCODER_B_HBLANK (0x1004 | REGS_SOUTH_TRANSCODER_PORT)
554
- #define INTEL_TRANSCODER_B_HSYNC (0x1008 | REGS_SOUTH_TRANSCODER_PORT)
555
- #define INTEL_TRANSCODER_B_VTOTAL (0x100c | REGS_SOUTH_TRANSCODER_PORT)
556
- #define INTEL_TRANSCODER_B_VBLANK (0x1010 | REGS_SOUTH_TRANSCODER_PORT)
557
- #define INTEL_TRANSCODER_B_VSYNC (0x1014 | REGS_SOUTH_TRANSCODER_PORT)
558
-
559
- #define INTEL_TRANSCODER_A_IMAGE_SIZE (0x001c | REGS_SOUTH_TRANSCODER_PORT)
560
- #define INTEL_TRANSCODER_B_IMAGE_SIZE (0x101c | REGS_SOUTH_TRANSCODER_PORT)
546
+ #define INTEL_TRANSCODER_A_HTOTAL (0x0000 | REGS_SOUTH_TRANSCODER_PORT)
547
+ #define INTEL_TRANSCODER_A_HBLANK (0x0004 | REGS_SOUTH_TRANSCODER_PORT)
548
+ #define INTEL_TRANSCODER_A_HSYNC (0x0008 | REGS_SOUTH_TRANSCODER_PORT)
549
+ #define INTEL_TRANSCODER_A_VTOTAL (0x000c | REGS_SOUTH_TRANSCODER_PORT)
550
+ #define INTEL_TRANSCODER_A_VBLANK (0x0010 | REGS_SOUTH_TRANSCODER_PORT)
551
+ #define INTEL_TRANSCODER_A_VSYNC (0x0014 | REGS_SOUTH_TRANSCODER_PORT)
552
+ #define INTEL_TRANSCODER_B_HTOTAL (0x1000 | REGS_SOUTH_TRANSCODER_PORT)
553
+ #define INTEL_TRANSCODER_B_HBLANK (0x1004 | REGS_SOUTH_TRANSCODER_PORT)
554
+ #define INTEL_TRANSCODER_B_HSYNC (0x1008 | REGS_SOUTH_TRANSCODER_PORT)
555
+ #define INTEL_TRANSCODER_B_VTOTAL (0x100c | REGS_SOUTH_TRANSCODER_PORT)
556
+ #define INTEL_TRANSCODER_B_VBLANK (0x1010 | REGS_SOUTH_TRANSCODER_PORT)
557
+ #define INTEL_TRANSCODER_B_VSYNC (0x1014 | REGS_SOUTH_TRANSCODER_PORT)
558
+
559
+ #define INTEL_TRANSCODER_A_IMAGE_SIZE (0x001c | REGS_SOUTH_TRANSCODER_PORT)
560
+ #define INTEL_TRANSCODER_B_IMAGE_SIZE (0x101c | REGS_SOUTH_TRANSCODER_PORT)
561
561
562
562
// TODO: Is there consolidation that could happen here with digital ports?
563
563
@@ -855,9 +855,26 @@ struct intel_free_graphics_memory {
855
855
#define PCH_FDI_RX_BASE_REGISTER 0xf0000
856
856
#define PCH_FDI_RX_PIPE_OFFSET 0x01000
857
857
#define PCH_FDI_RX_CONTROL 0x00c
858
+ #define PCH_FDI_RX_IIR 0x014
859
+ #define PCH_FDI_RX_IMR 0x018
860
+
858
861
#define FDI_RX_ENABLE (1 << 31)
859
862
#define FDI_RX_PLL_ENABLED (1 << 13)
860
863
864
+
865
+ // FDI_tX interrupt register
866
+ #define FDI_RX_INTER_LANE_ALIGN (1 << 10)
867
+ #define FDI_RX_SYMBOL_LOCK (1 << 9)
868
+ #define FDI_RX_BIT_LOCK (1 << 8)
869
+ #define FDI_RX_TRAIN_PATTERN_2_FAIL (1 << 7)
870
+ #define FDI_RX_FS_CODE_ERR (1 << 6)
871
+ #define FDI_RX_FE_CODE_ERR (1 << 5)
872
+ #define FDI_RX_SYMBOL_ERR_RATE_ABOVE (1 << 4)
873
+ #define FDI_RX_HDCP_LINK_FAIL (1 << 3)
874
+ #define FDI_RX_PIXEL_FIFO_OVERFLOW (1 << 2)
875
+ #define FDI_RX_CROSS_CLOCK_OVERFLOW (1 << 1)
876
+ #define FDI_RX_SYMBOL_QUEUE_OVERFLOW (1 << 0)
877
+
861
878
#define FDI_FS_ERRC_ENABLE (1 << 27)
862
879
#define FDI_FE_ERRC_ENABLE (1 << 26)
863
880
@@ -871,12 +888,37 @@ struct intel_free_graphics_memory {
871
888
#define FDI_RX_CLOCK_RAW (0 << 4)
872
889
#define FDI_RX_CLOCK_PCD (1 << 4)
873
890
874
- #define PCH_FDI_TX_BASE_REGISTER 0x60000
875
- #define PCH_FDI_TX_PIPE_OFFSET 0x01000
876
- #define PCH_FDI_TX_CONTROL 0x100
877
- #define FDI_TX_ENABLE (1 << 31)
878
- #define FDI_TX_ENHANCE_FRAME_ENABLE (1 << 18)
879
- #define FDI_TX_PLL_ENABLED (1 << 14)
891
+ #define PCH_FDI_TX_BASE_REGISTER 0x60000
892
+ #define PCH_FDI_TX_PIPE_OFFSET 0x01000
893
+ #define PCH_FDI_TX_CONTROL 0x100
894
+ #define FDI_TX_ENABLE (1 << 31)
895
+ #define FDI_LINK_TRAIN_PATTERN_1 (0 << 28)
896
+ #define FDI_LINK_TRAIN_PATTERN_2 (1 << 28)
897
+ #define FDI_LINK_TRAIN_PATTERN_IDLE (2 << 28)
898
+ #define FDI_LINK_TRAIN_NONE (3 << 28)
899
+ #define FDI_LINK_TRAIN_VOLTAGE_0_4V (0 << 25)
900
+ #define FDI_LINK_TRAIN_VOLTAGE_0_6V (1 << 25)
901
+ #define FDI_LINK_TRAIN_VOLTAGE_0_8V (2 << 25)
902
+ #define FDI_LINK_TRAIN_VOLTAGE_1_2V (3 << 25)
903
+ #define FDI_LINK_TRAIN_PRE_EMPHASIS_NONE (0 << 22)
904
+ #define FDI_LINK_TRAIN_PRE_EMPHASIS_1_5X (1 << 22)
905
+ #define FDI_LINK_TRAIN_PRE_EMPHASIS_2X (2 << 22)
906
+ #define FDI_LINK_TRAIN_PRE_EMPHASIS_3X (3 << 22)
907
+
908
+ // SNB A stepping
909
+ #define FDI_LINK_TRAIN_400MV_0DB_SNB_A (0x38 << 22)
910
+ #define FDI_LINK_TRAIN_400MV_6DB_SNB_A (0x02 << 22)
911
+ #define FDI_LINK_TRAIN_600MV_3_5DB_SNB_A (0x01 << 22)
912
+ #define FDI_LINK_TRAIN_800MV_0DB_SNB_A (0x00 << 22)
913
+
914
+ // SNB B stepping
915
+ #define FDI_LINK_TRAIN_400MV_0DB_SNB_B (0x00 << 22)
916
+ #define FDI_LINK_TRAIN_400MV_6DB_SNB_B (0x3a << 22)
917
+ #define FDI_LINK_TRAIN_600MV_3_5DB_SNB_B (0x39 << 22)
918
+ #define FDI_LINK_TRAIN_800MV_0DB_SNB_B (0x38 << 22)
919
+ #define FDI_LINK_TRAIN_VOL_EMP_MASK (0x3f << 22)
920
+ #define FDI_TX_ENHANCE_FRAME_ENABLE (1 << 18)
921
+ #define FDI_TX_PLL_ENABLED (1 << 14)
880
922
881
923
#define FDI_DP_PORT_WIDTH_SHIFT 19
882
924
#define FDI_DP_PORT_WIDTH_MASK (7 << FDI_DP_PORT_WIDTH_SHIFT)
@@ -887,35 +929,9 @@ struct intel_free_graphics_memory {
887
929
#define FDI_PLL_BIOS_1 0x46004
888
930
#define FDI_PLL_BIOS_2 0x46008
889
931
890
- #define FDI_LINK_TRAIN_PATTERN_1 (0 << 28)
891
- #define FDI_LINK_TRAIN_PATTERN_2 (1 << 28)
892
- #define FDI_LINK_TRAIN_PATTERN_IDLE (2 << 28)
893
- #define FDI_LINK_TRAIN_NONE (3 << 28)
894
- #define FDI_LINK_TRAIN_VOLTAGE_0_4V (0 << 25)
895
- #define FDI_LINK_TRAIN_VOLTAGE_0_6V (1 << 25)
896
- #define FDI_LINK_TRAIN_VOLTAGE_0_8V (2 << 25)
897
- #define FDI_LINK_TRAIN_VOLTAGE_1_2V (3 << 25)
898
- #define FDI_LINK_TRAIN_PRE_EMPHASIS_NONE (0 << 22)
899
- #define FDI_LINK_TRAIN_PRE_EMPHASIS_1_5X (1 << 22)
900
- #define FDI_LINK_TRAIN_PRE_EMPHASIS_2X (2 << 22)
901
- #define FDI_LINK_TRAIN_PRE_EMPHASIS_3X (3 << 22)
902
-
903
932
#define FDI_AUTO_TRAINING (1 << 10)
904
933
#define FDI_AUTO_TRAIN_DONE (1 << 1)
905
934
906
- // SNB A-stepping
907
- #define FDI_LINK_TRAIN_400MV_0DB_SNB_A (0x38 << 22)
908
- #define FDI_LINK_TRAIN_400MV_6DB_SNB_A (0x02 << 22)
909
- #define FDI_LINK_TRAIN_600MV_3_5DB_SNB_A (0x01 << 22)
910
- #define FDI_LINK_TRAIN_800MV_0DB_SNB_A (0x00 << 22)
911
-
912
- // SNB B-stepping
913
- #define FDI_LINK_TRAIN_400MV_0DB_SNB_B (0x00 << 22)
914
- #define FDI_LINK_TRAIN_400MV_6DB_SNB_B (0x3a << 22)
915
- #define FDI_LINK_TRAIN_600MV_3_5DB_SNB_B (0x39 << 22)
916
- #define FDI_LINK_TRAIN_800MV_0DB_SNB_B (0x38 << 22)
917
- #define FDI_LINK_TRAIN_VOL_EMP_MASK (0x3f << 22)
918
-
919
935
#define FDI_LINK_TRAIN_PATTERN_1_CPT (0 << 8)
920
936
#define FDI_LINK_TRAIN_PATTERN_2_CPT (1 << 8)
921
937
#define FDI_LINK_TRAIN_PATTERN_IDLE_CPT (2 << 8)
@@ -928,6 +944,11 @@ struct intel_free_graphics_memory {
928
944
#define FDI_LINK_TRAIN_PATTERN_IDLE_IVB (2 << 8)
929
945
#define FDI_LINK_TRAIN_NONE_IVB (3 << 8)
930
946
947
+ #define PCH_FDI_RXA_CHICKEN (0x200c | REGS_SOUTH_SHARED)
948
+ #define PCH_FDI_RXB_CHICKEN (0x2010 | REGS_SOUTH_SHARED)
949
+ #define FDI_RX_PHASE_SYNC_POINTER_EN (1 << 0)
950
+ #define FDI_RX_PHASE_SYNC_POINTER_OVR (1 << 1)
951
+
931
952
// CPU Panel Fitters - These are for IronLake and up and are the CPU internal
932
953
// panel fitters.
933
954
#define PCH_PANEL_FITTER_BASE_REGISTER 0x68000
0 commit comments