diff options
author | Adam Jackson <ajax@redhat.com> | 2012-09-20 16:42:44 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-10-02 12:06:07 -0400 |
commit | 7883dc55e126d49770dda49864831f5998ad12fb (patch) | |
tree | 148a1498cb440f089d2487d6d0dac4fa71cbb687 | |
parent | caf9ab24e352102ec9dc6df82c78c3a9082109d6 (diff) |
drm/dp: Document DP spec versions for various DPCD registers
Note with a comment anything newer than DP 1.1a.
Obviously this needs some work still...
Signed-off-by: Adam Jackson <ajax@redhat.com>
Acked-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | include/drm/drm_dp_helper.h | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h index f9888c3cb955..38ffcb4332aa 100644 --- a/include/drm/drm_dp_helper.h +++ b/include/drm/drm_dp_helper.h | |||
@@ -26,7 +26,19 @@ | |||
26 | #include <linux/types.h> | 26 | #include <linux/types.h> |
27 | #include <linux/i2c.h> | 27 | #include <linux/i2c.h> |
28 | 28 | ||
29 | /* From the VESA DisplayPort spec */ | 29 | /* |
30 | * Unless otherwise noted, all values are from the DP 1.1a spec. Note that | ||
31 | * DP and DPCD versions are independent. Differences from 1.0 are not noted, | ||
32 | * 1.0 devices basically don't exist in the wild. | ||
33 | * | ||
34 | * Abbreviations, in chronological order: | ||
35 | * | ||
36 | * eDP: Embedded DisplayPort version 1 | ||
37 | * DPI: DisplayPort Interoperability Guideline v1.1a | ||
38 | * 1.2: DisplayPort 1.2 | ||
39 | * | ||
40 | * 1.2 formally includes both eDP and DPI definitions. | ||
41 | */ | ||
30 | 42 | ||
31 | #define AUX_NATIVE_WRITE 0x8 | 43 | #define AUX_NATIVE_WRITE 0x8 |
32 | #define AUX_NATIVE_READ 0x9 | 44 | #define AUX_NATIVE_READ 0x9 |
@@ -53,7 +65,7 @@ | |||
53 | 65 | ||
54 | #define DP_MAX_LANE_COUNT 0x002 | 66 | #define DP_MAX_LANE_COUNT 0x002 |
55 | # define DP_MAX_LANE_COUNT_MASK 0x1f | 67 | # define DP_MAX_LANE_COUNT_MASK 0x1f |
56 | # define DP_TPS3_SUPPORTED (1 << 6) | 68 | # define DP_TPS3_SUPPORTED (1 << 6) /* 1.2 */ |
57 | # define DP_ENHANCED_FRAME_CAP (1 << 7) | 69 | # define DP_ENHANCED_FRAME_CAP (1 << 7) |
58 | 70 | ||
59 | #define DP_MAX_DOWNSPREAD 0x003 | 71 | #define DP_MAX_DOWNSPREAD 0x003 |
@@ -69,16 +81,16 @@ | |||
69 | /* 10b = TMDS or HDMI */ | 81 | /* 10b = TMDS or HDMI */ |
70 | /* 11b = Other */ | 82 | /* 11b = Other */ |
71 | # define DP_FORMAT_CONVERSION (1 << 3) | 83 | # define DP_FORMAT_CONVERSION (1 << 3) |
72 | # define DP_DETAILED_CAP_INFO_AVAILABLE (1 << 4) | 84 | # define DP_DETAILED_CAP_INFO_AVAILABLE (1 << 4) /* DPI */ |
73 | 85 | ||
74 | #define DP_MAIN_LINK_CHANNEL_CODING 0x006 | 86 | #define DP_MAIN_LINK_CHANNEL_CODING 0x006 |
75 | 87 | ||
76 | #define DP_DOWN_STREAM_PORT_COUNT 0x007 | 88 | #define DP_DOWN_STREAM_PORT_COUNT 0x007 |
77 | # define DP_PORT_COUNT_MASK 0x0f | 89 | # define DP_PORT_COUNT_MASK 0x0f |
78 | # define DP_MSA_TIMING_PAR_IGNORED (1 << 6) | 90 | # define DP_MSA_TIMING_PAR_IGNORED (1 << 6) /* eDP */ |
79 | # define DP_OUI_SUPPORT (1 << 7) | 91 | # define DP_OUI_SUPPORT (1 << 7) |
80 | 92 | ||
81 | #define DP_I2C_SPEED_CAP 0x00c | 93 | #define DP_I2C_SPEED_CAP 0x00c /* DPI */ |
82 | # define DP_I2C_SPEED_1K 0x01 | 94 | # define DP_I2C_SPEED_1K 0x01 |
83 | # define DP_I2C_SPEED_5K 0x02 | 95 | # define DP_I2C_SPEED_5K 0x02 |
84 | # define DP_I2C_SPEED_10K 0x04 | 96 | # define DP_I2C_SPEED_10K 0x04 |
@@ -86,16 +98,16 @@ | |||
86 | # define DP_I2C_SPEED_400K 0x10 | 98 | # define DP_I2C_SPEED_400K 0x10 |
87 | # define DP_I2C_SPEED_1M 0x20 | 99 | # define DP_I2C_SPEED_1M 0x20 |
88 | 100 | ||
89 | #define DP_EDP_CONFIGURATION_CAP 0x00d | 101 | #define DP_EDP_CONFIGURATION_CAP 0x00d /* XXX 1.2? */ |
90 | #define DP_TRAINING_AUX_RD_INTERVAL 0x00e | 102 | #define DP_TRAINING_AUX_RD_INTERVAL 0x00e /* XXX 1.2? */ |
91 | 103 | ||
92 | /* Multiple stream transport */ | 104 | /* Multiple stream transport */ |
93 | #define DP_MSTM_CAP 0x021 | 105 | #define DP_MSTM_CAP 0x021 /* 1.2 */ |
94 | # define DP_MST_CAP (1 << 0) | 106 | # define DP_MST_CAP (1 << 0) |
95 | 107 | ||
96 | #define DP_PSR_SUPPORT 0x070 | 108 | #define DP_PSR_SUPPORT 0x070 /* XXX 1.2? */ |
97 | # define DP_PSR_IS_SUPPORTED 1 | 109 | # define DP_PSR_IS_SUPPORTED 1 |
98 | #define DP_PSR_CAPS 0x071 | 110 | #define DP_PSR_CAPS 0x071 /* XXX 1.2? */ |
99 | # define DP_PSR_NO_TRAIN_ON_EXIT 1 | 111 | # define DP_PSR_NO_TRAIN_ON_EXIT 1 |
100 | # define DP_PSR_SETUP_TIME_330 (0 << 1) | 112 | # define DP_PSR_SETUP_TIME_330 (0 << 1) |
101 | # define DP_PSR_SETUP_TIME_275 (1 << 1) | 113 | # define DP_PSR_SETUP_TIME_275 (1 << 1) |
@@ -136,7 +148,7 @@ | |||
136 | #define DP_LINK_BW_SET 0x100 | 148 | #define DP_LINK_BW_SET 0x100 |
137 | # define DP_LINK_BW_1_62 0x06 | 149 | # define DP_LINK_BW_1_62 0x06 |
138 | # define DP_LINK_BW_2_7 0x0a | 150 | # define DP_LINK_BW_2_7 0x0a |
139 | # define DP_LINK_BW_5_4 0x14 | 151 | # define DP_LINK_BW_5_4 0x14 /* 1.2 */ |
140 | 152 | ||
141 | #define DP_LANE_COUNT_SET 0x101 | 153 | #define DP_LANE_COUNT_SET 0x101 |
142 | # define DP_LANE_COUNT_MASK 0x0f | 154 | # define DP_LANE_COUNT_MASK 0x0f |
@@ -146,7 +158,7 @@ | |||
146 | # define DP_TRAINING_PATTERN_DISABLE 0 | 158 | # define DP_TRAINING_PATTERN_DISABLE 0 |
147 | # define DP_TRAINING_PATTERN_1 1 | 159 | # define DP_TRAINING_PATTERN_1 1 |
148 | # define DP_TRAINING_PATTERN_2 2 | 160 | # define DP_TRAINING_PATTERN_2 2 |
149 | # define DP_TRAINING_PATTERN_3 3 | 161 | # define DP_TRAINING_PATTERN_3 3 /* 1.2 */ |
150 | # define DP_TRAINING_PATTERN_MASK 0x3 | 162 | # define DP_TRAINING_PATTERN_MASK 0x3 |
151 | 163 | ||
152 | # define DP_LINK_QUAL_PATTERN_DISABLE (0 << 2) | 164 | # define DP_LINK_QUAL_PATTERN_DISABLE (0 << 2) |
@@ -187,22 +199,22 @@ | |||
187 | 199 | ||
188 | #define DP_DOWNSPREAD_CTRL 0x107 | 200 | #define DP_DOWNSPREAD_CTRL 0x107 |
189 | # define DP_SPREAD_AMP_0_5 (1 << 4) | 201 | # define DP_SPREAD_AMP_0_5 (1 << 4) |
190 | # define DP_MSA_TIMING_PAR_IGNORE_EN (1 << 7) | 202 | # define DP_MSA_TIMING_PAR_IGNORE_EN (1 << 7) /* eDP */ |
191 | 203 | ||
192 | #define DP_MAIN_LINK_CHANNEL_CODING_SET 0x108 | 204 | #define DP_MAIN_LINK_CHANNEL_CODING_SET 0x108 |
193 | # define DP_SET_ANSI_8B10B (1 << 0) | 205 | # define DP_SET_ANSI_8B10B (1 << 0) |
194 | 206 | ||
195 | #define DP_I2C_SPEED_CONTROL_STATUS 0x109 | 207 | #define DP_I2C_SPEED_CONTROL_STATUS 0x109 /* DPI */ |
196 | /* bitmask as for DP_I2C_SPEED_CAP */ | 208 | /* bitmask as for DP_I2C_SPEED_CAP */ |
197 | 209 | ||
198 | #define DP_EDP_CONFIGURATION_SET 0x10a | 210 | #define DP_EDP_CONFIGURATION_SET 0x10a /* XXX 1.2? */ |
199 | 211 | ||
200 | #define DP_MSTM_CTRL 0x111 | 212 | #define DP_MSTM_CTRL 0x111 /* 1.2 */ |
201 | # define DP_MST_EN (1 << 0) | 213 | # define DP_MST_EN (1 << 0) |
202 | # define DP_UP_REQ_EN (1 << 1) | 214 | # define DP_UP_REQ_EN (1 << 1) |
203 | # define DP_UPSTREAM_IS_SRC (1 << 2) | 215 | # define DP_UPSTREAM_IS_SRC (1 << 2) |
204 | 216 | ||
205 | #define DP_PSR_EN_CFG 0x170 | 217 | #define DP_PSR_EN_CFG 0x170 /* XXX 1.2? */ |
206 | # define DP_PSR_ENABLE (1 << 0) | 218 | # define DP_PSR_ENABLE (1 << 0) |
207 | # define DP_PSR_MAIN_LINK_ACTIVE (1 << 1) | 219 | # define DP_PSR_MAIN_LINK_ACTIVE (1 << 1) |
208 | # define DP_PSR_CRC_VERIFICATION (1 << 2) | 220 | # define DP_PSR_CRC_VERIFICATION (1 << 2) |
@@ -277,14 +289,14 @@ | |||
277 | # define DP_SET_POWER_D0 0x1 | 289 | # define DP_SET_POWER_D0 0x1 |
278 | # define DP_SET_POWER_D3 0x2 | 290 | # define DP_SET_POWER_D3 0x2 |
279 | 291 | ||
280 | #define DP_PSR_ERROR_STATUS 0x2006 | 292 | #define DP_PSR_ERROR_STATUS 0x2006 /* XXX 1.2? */ |
281 | # define DP_PSR_LINK_CRC_ERROR (1 << 0) | 293 | # define DP_PSR_LINK_CRC_ERROR (1 << 0) |
282 | # define DP_PSR_RFB_STORAGE_ERROR (1 << 1) | 294 | # define DP_PSR_RFB_STORAGE_ERROR (1 << 1) |
283 | 295 | ||
284 | #define DP_PSR_ESI 0x2007 | 296 | #define DP_PSR_ESI 0x2007 /* XXX 1.2? */ |
285 | # define DP_PSR_CAPS_CHANGE (1 << 0) | 297 | # define DP_PSR_CAPS_CHANGE (1 << 0) |
286 | 298 | ||
287 | #define DP_PSR_STATUS 0x2008 | 299 | #define DP_PSR_STATUS 0x2008 /* XXX 1.2? */ |
288 | # define DP_PSR_SINK_INACTIVE 0 | 300 | # define DP_PSR_SINK_INACTIVE 0 |
289 | # define DP_PSR_SINK_ACTIVE_SRC_SYNCED 1 | 301 | # define DP_PSR_SINK_ACTIVE_SRC_SYNCED 1 |
290 | # define DP_PSR_SINK_ACTIVE_RFB 2 | 302 | # define DP_PSR_SINK_ACTIVE_RFB 2 |