* [PATCH 0/7] Minor DisplayPort cleanup
@ 2011-07-12 21:37 Adam Jackson
2011-07-12 21:37 ` [PATCH 1/7] drm: Fill in more of the DisplayPort DPCD registers Adam Jackson
` (6 more replies)
0 siblings, 7 replies; 11+ messages in thread
From: Adam Jackson @ 2011-07-12 21:37 UTC (permalink / raw)
To: intel-gfx
Patch 1 is actually core drm, and independent of the rest of the series.
The rest vary among cosmetic cleanup, unifying the G4X/IRL paths, and
one corner-case change to be more strictly spec-compliant.
Tested on a Thinkpad T500 (GM45) with various DisplayPort attachments.
My X200 (with DP only on the dock) is still not especially reliable, but
I'm sure I'll figure something out.
- ajax
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/7] drm: Fill in more of the DisplayPort DPCD registers
2011-07-12 21:37 [PATCH 0/7] Minor DisplayPort cleanup Adam Jackson
@ 2011-07-12 21:37 ` Adam Jackson
2011-07-12 22:42 ` Keith Packard
2011-07-12 21:38 ` [PATCH 2/7] drm/i915/dp: Zero the DPCD data before connection probe Adam Jackson
` (5 subsequent siblings)
6 siblings, 1 reply; 11+ messages in thread
From: Adam Jackson @ 2011-07-12 21:37 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Adam Jackson <ajax@redhat.com>
---
include/drm/drm_dp_helper.h | 95 +++++++++++++++++++++++++++++++++---------
1 files changed, 74 insertions(+), 21 deletions(-)
diff --git a/include/drm/drm_dp_helper.h b/include/drm/drm_dp_helper.h
index 91567bb..940daa5 100644
--- a/include/drm/drm_dp_helper.h
+++ b/include/drm/drm_dp_helper.h
@@ -64,16 +64,38 @@
#define DP_DOWNSTREAMPORT_PRESENT 0x005
# define DP_DWN_STRM_PORT_PRESENT (1 << 0)
# define DP_DWN_STRM_PORT_TYPE_MASK 0x06
-/* 00b = DisplayPort */
-/* 01b = Analog */
-/* 10b = TMDS or HDMI */
-/* 11b = Other */
+# define DP_DWN_STRM_PORT_TYPE_DP (0 << 1)
+# define DP_DWN_STRM_PORT_TYPE_ANALOG (1 << 1)
+# define DP_DWN_STRM_PORT_TYPE_TMDS (2 << 1)
+# define DP_DWN_STRM_PORT_TYPE_OTHER (3 << 1)
# define DP_FORMAT_CONVERSION (1 << 3)
#define DP_MAIN_LINK_CHANNEL_CODING 0x006
+#define DP_DOWN_STREAM_PORT_COUNT 0x007
+# define DP_DWN_STREAM_PORT_COUNT_MASK 0x0f
+# define DP_OUI_SUPPORT (1 << 7)
+
+#define DP_RECEIVE_PORT0_CAP_0 0x008
+#define DP_RECEIVE_PORT0_CAP_1 0x009
+#define DP_RECEIVE_PORT1_CAP_0 0x00a
+#define DP_RECEIVE_PORT1_CAP_1 0x00b
+/* receiver port capabilities */
+# define DP_RECEIVE_PORT_CAP0_LOCAL_EDID_PRESENT (1 << 1)
+# define DP_RECEIVE_PORT_CAP0_ASSOCIATED_TO_PREVIOUS (1 << 2)
+# define DP_RECEIVE_PORT_CAP1_BUFFER_SIZE(x) ((x + 1) * 32)
+
#define DP_TRAINING_AUX_RD_INTERVAL 0x00e
+#define DP_DOWN_STREAM_PORT_CAP(x) (0x080 + (x & 0x7f))
+# define DP_DWN_STRM_PORT_TYPE_DP (0 << 0)
+# define DP_DWN_STRM_PORT_TYPE_VGA (1 << 0)
+# define DP_DWN_STRM_PORT_TYPE_DVI (2 << 0)
+# define DP_DWN_STRM_PORT_TYPE_HDMI (3 << 0)
+# define DP_DWN_STRM_PORT_TYPE_NON_EDID (4 << 0)
+# define DP_DWN_STRM_PORT_TYPE_MASK 0x07
+# define DP_DWN_STRM_PORT_HPD (1 << 3)
+
/* link configuration */
#define DP_LINK_BW_SET 0x100
# define DP_LINK_BW_1_62 0x06
@@ -85,21 +107,18 @@
# define DP_LANE_COUNT_ENHANCED_FRAME_EN (1 << 7)
#define DP_TRAINING_PATTERN_SET 0x102
-# define DP_TRAINING_PATTERN_DISABLE 0
-# define DP_TRAINING_PATTERN_1 1
-# define DP_TRAINING_PATTERN_2 2
-# define DP_TRAINING_PATTERN_3 3
+# define DP_TRAINING_PATTERN_DISABLE (0 << 0)
+# define DP_TRAINING_PATTERN_1 (1 << 0)
+# define DP_TRAINING_PATTERN_2 (2 << 0)
+# define DP_TRAINING_PATTERN_3 (3 << 0)
# define DP_TRAINING_PATTERN_MASK 0x3
-
# define DP_LINK_QUAL_PATTERN_DISABLE (0 << 2)
# define DP_LINK_QUAL_PATTERN_D10_2 (1 << 2)
# define DP_LINK_QUAL_PATTERN_ERROR_RATE (2 << 2)
# define DP_LINK_QUAL_PATTERN_PRBS7 (3 << 2)
# define DP_LINK_QUAL_PATTERN_MASK (3 << 2)
-
# define DP_RECOVERED_CLOCK_OUT_EN (1 << 4)
# define DP_LINK_SCRAMBLING_DISABLE (1 << 5)
-
# define DP_SYMBOL_ERROR_COUNT_BOTH (0 << 6)
# define DP_SYMBOL_ERROR_COUNT_DISPARITY (1 << 6)
# define DP_SYMBOL_ERROR_COUNT_SYMBOL (2 << 6)
@@ -109,7 +128,6 @@
#define DP_TRAINING_LANE1_SET 0x104
#define DP_TRAINING_LANE2_SET 0x105
#define DP_TRAINING_LANE3_SET 0x106
-
# define DP_TRAIN_VOLTAGE_SWING_MASK 0x3
# define DP_TRAIN_VOLTAGE_SWING_SHIFT 0
# define DP_TRAIN_MAX_SWING_REACHED (1 << 2)
@@ -117,13 +135,11 @@
# define DP_TRAIN_VOLTAGE_SWING_600 (1 << 0)
# define DP_TRAIN_VOLTAGE_SWING_800 (2 << 0)
# define DP_TRAIN_VOLTAGE_SWING_1200 (3 << 0)
-
# define DP_TRAIN_PRE_EMPHASIS_MASK (3 << 3)
# define DP_TRAIN_PRE_EMPHASIS_0 (0 << 3)
# define DP_TRAIN_PRE_EMPHASIS_3_5 (1 << 3)
# define DP_TRAIN_PRE_EMPHASIS_6 (2 << 3)
# define DP_TRAIN_PRE_EMPHASIS_9_5 (3 << 3)
-
# define DP_TRAIN_PRE_EMPHASIS_SHIFT 3
# define DP_TRAIN_MAX_PRE_EMPHASIS_REACHED (1 << 5)
@@ -133,6 +149,16 @@
#define DP_MAIN_LINK_CHANNEL_CODING_SET 0x108
# define DP_SET_ANSI_8B10B (1 << 0)
+#define DP_SINK_COUNT 0x200
+# define DP_SINK_COUNT_MASK 0x3f
+# define DP_SINK_CP_READY (1 << 6)
+
+#define DP_DEVICE_SERVICE_IRQ_VECTOR 0x201
+# define DP_IRQ_REMOTE_CONTROL_COMMAND_PENDING (1 << 0)
+# define DP_IRQ_AUTOMATED_TEST_REQUEST (1 << 1)
+# define DP_IRQ_CP_IRQ (1 << 2)
+# define DP_IRQ_SINK_SPECIFIC_IRQ (1 << 6)
+
#define DP_LANE0_1_STATUS 0x202
#define DP_LANE2_3_STATUS 0x203
# define DP_LANE_CR_DONE (1 << 0)
@@ -144,15 +170,13 @@
DP_LANE_SYMBOL_LOCKED)
#define DP_LANE_ALIGN_STATUS_UPDATED 0x204
-
-#define DP_INTERLANE_ALIGN_DONE (1 << 0)
-#define DP_DOWNSTREAM_PORT_STATUS_CHANGED (1 << 6)
-#define DP_LINK_STATUS_UPDATED (1 << 7)
+# define DP_INTERLANE_ALIGN_DONE (1 << 0)
+# define DP_DOWNSTREAM_PORT_STATUS_CHANGED (1 << 6)
+# define DP_LINK_STATUS_UPDATED (1 << 7)
#define DP_SINK_STATUS 0x205
-
-#define DP_RECEIVE_PORT_0_STATUS (1 << 0)
-#define DP_RECEIVE_PORT_1_STATUS (1 << 1)
+# define DP_RECEIVE_PORT_0_STATUS (1 << 0)
+# define DP_RECEIVE_PORT_1_STATUS (1 << 1)
#define DP_ADJUST_REQUEST_LANE0_1 0x206
#define DP_ADJUST_REQUEST_LANE2_3 0x207
@@ -165,6 +189,35 @@
# define DP_ADJUST_PRE_EMPHASIS_LANE1_MASK 0xc0
# define DP_ADJUST_PRE_EMPHASIS_LANE1_SHIFT 6
+#define DP_TRAINING_SCORE_LANE0 0x208
+#define DP_TRAINING_SCORE_LANE1 0x209
+#define DP_TRAINING_SCORE_LANE2 0x20a
+#define DP_TRAINING_SCORE_LANE3 0x20b
+
+/* register pairs for a 15-bit saturated error count */
+#define DP_SYMBOL_ERROR_COUNT_LANE0_LOW 0x210
+#define DP_SYMBOL_ERROR_COUNT_LANE0_HIGH 0x211
+#define DP_SYMBOL_ERROR_COUNT_LANE1_LOW 0x212
+#define DP_SYMBOL_ERROR_COUNT_LANE1_HIGH 0x213
+#define DP_SYMBOL_ERROR_COUNT_LANE2_LOW 0x214
+#define DP_SYMBOL_ERROR_COUNT_LANE2_HIGH 0x215
+#define DP_SYMBOL_ERROR_COUNT_LANE3_LOW 0x216
+#define DP_SYMBOL_ERROR_COUNT_LANE4_HIGH 0x217
+/* ... on the HIGH register */
+# define DP_SYMBOL_ERROR_COUNT_VALID (1 << 7)
+
+#define DP_SOURCE_IEEE_OUI_7_0 0x300
+#define DP_SOURCE_IEEE_OUI_15_8 0x301
+#define DP_SOURCE_IEEE_OUI_23_16 0x302
+
+#define DP_SINK_IEEE_OUI_7_0 0x400
+#define DP_SINK_IEEE_OUI_15_8 0x401
+#define DP_SINK_IEEE_OUI_23_16 0x402
+
+#define DP_BRANCH_IEEE_OUI_7_0 0x500
+#define DP_BRANCH_IEEE_OUI_15_8 0x501
+#define DP_BRANCH_IEEE_OUI_23_16 0x502
+
#define DP_SET_POWER 0x600
# define DP_SET_POWER_D0 0x1
# define DP_SET_POWER_D3 0x2
--
1.7.6
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/7] drm/i915/dp: Zero the DPCD data before connection probe
2011-07-12 21:37 [PATCH 0/7] Minor DisplayPort cleanup Adam Jackson
2011-07-12 21:37 ` [PATCH 1/7] drm: Fill in more of the DisplayPort DPCD registers Adam Jackson
@ 2011-07-12 21:38 ` Adam Jackson
2011-07-12 21:38 ` [PATCH 3/7] drm/i915/dp: Move DPCD dump to common code instead of PCH-only Adam Jackson
` (4 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Adam Jackson @ 2011-07-12 21:38 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Adam Jackson <ajax@redhat.com>
---
drivers/gpu/drm/i915/intel_dp.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index e2aced6..de24f31 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1673,6 +1673,7 @@ intel_dp_detect(struct drm_connector *connector, bool force)
struct edid *edid = NULL;
intel_dp->has_audio = false;
+ memset(intel_dp->dpcd, 0, sizeof(intel_dp->dpcd));
if (HAS_PCH_SPLIT(dev))
status = ironlake_dp_detect(intel_dp);
--
1.7.6
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/7] drm/i915/dp: Move DPCD dump to common code instead of PCH-only
2011-07-12 21:37 [PATCH 0/7] Minor DisplayPort cleanup Adam Jackson
2011-07-12 21:37 ` [PATCH 1/7] drm: Fill in more of the DisplayPort DPCD registers Adam Jackson
2011-07-12 21:38 ` [PATCH 2/7] drm/i915/dp: Zero the DPCD data before connection probe Adam Jackson
@ 2011-07-12 21:38 ` Adam Jackson
2011-07-12 21:38 ` [PATCH 4/7] drm/i915/dp: Read more DPCD registers on connection probe Adam Jackson
` (3 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Adam Jackson @ 2011-07-12 21:38 UTC (permalink / raw)
To: intel-gfx
No reason not to see this on g4x, after all.
Signed-off-by: Adam Jackson <ajax@redhat.com>
---
drivers/gpu/drm/i915/intel_dp.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index de24f31..0be85a0 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1615,8 +1615,6 @@ ironlake_dp_detect(struct intel_dp *intel_dp)
sizeof (intel_dp->dpcd));
if (ret && intel_dp->dpcd[DP_DPCD_REV] != 0)
status = connector_status_connected;
- DRM_DEBUG_KMS("DPCD: %hx%hx%hx%hx\n", intel_dp->dpcd[0],
- intel_dp->dpcd[1], intel_dp->dpcd[2], intel_dp->dpcd[3]);
return status;
}
@@ -1679,6 +1677,10 @@ intel_dp_detect(struct drm_connector *connector, bool force)
status = ironlake_dp_detect(intel_dp);
else
status = g4x_dp_detect(intel_dp);
+
+ DRM_DEBUG_KMS("DPCD: %hx%hx%hx%hx\n", intel_dp->dpcd[0],
+ intel_dp->dpcd[1], intel_dp->dpcd[2], intel_dp->dpcd[3]);
+
if (status != connector_status_connected)
return status;
--
1.7.6
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 4/7] drm/i915/dp: Read more DPCD registers on connection probe
2011-07-12 21:37 [PATCH 0/7] Minor DisplayPort cleanup Adam Jackson
` (2 preceding siblings ...)
2011-07-12 21:38 ` [PATCH 3/7] drm/i915/dp: Move DPCD dump to common code instead of PCH-only Adam Jackson
@ 2011-07-12 21:38 ` Adam Jackson
2011-07-12 21:38 ` [PATCH 5/7] drm/i915/dp: Better hexdump of DPCD Adam Jackson
` (2 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Adam Jackson @ 2011-07-12 21:38 UTC (permalink / raw)
To: intel-gfx
For parity with radeon and nouveau, and also because I suspect we're
going to need it to get format-conversion dongles right.
Signed-off-by: Adam Jackson <ajax@redhat.com>
---
drivers/gpu/drm/i915/intel_dp.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 0be85a0..2f0566b 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -52,7 +52,7 @@ struct intel_dp {
uint32_t color_range;
uint8_t link_bw;
uint8_t lane_count;
- uint8_t dpcd[4];
+ uint8_t dpcd[8];
struct i2c_adapter adapter;
struct i2c_algo_dp_aux_data algo;
bool is_pch_edp;
@@ -1678,8 +1678,10 @@ intel_dp_detect(struct drm_connector *connector, bool force)
else
status = g4x_dp_detect(intel_dp);
- DRM_DEBUG_KMS("DPCD: %hx%hx%hx%hx\n", intel_dp->dpcd[0],
- intel_dp->dpcd[1], intel_dp->dpcd[2], intel_dp->dpcd[3]);
+ DRM_DEBUG_KMS("DPCD: %hx%hx%hx%hx%hx%hx%hx%hx\n", intel_dp->dpcd[0],
+ intel_dp->dpcd[1], intel_dp->dpcd[2], intel_dp->dpcd[3],
+ intel_dp->dpcd[4], intel_dp->dpcd[5], intel_dp->dpcd[6],
+ intel_dp->dpcd[7]);
if (status != connector_status_connected)
return status;
--
1.7.6
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 5/7] drm/i915/dp: Better hexdump of DPCD
2011-07-12 21:37 [PATCH 0/7] Minor DisplayPort cleanup Adam Jackson
` (3 preceding siblings ...)
2011-07-12 21:38 ` [PATCH 4/7] drm/i915/dp: Read more DPCD registers on connection probe Adam Jackson
@ 2011-07-12 21:38 ` Adam Jackson
2011-07-12 21:38 ` [PATCH 6/7] drm/i915/dp: Retry DPCD fetch on G4X too Adam Jackson
2011-07-12 21:38 ` [PATCH 7/7] drm/i915/dp: Explicitly request 8/10 channel coding Adam Jackson
6 siblings, 0 replies; 11+ messages in thread
From: Adam Jackson @ 2011-07-12 21:38 UTC (permalink / raw)
To: intel-gfx
%hx alone prints 0 as "0", not "00".
Signed-off-by: Adam Jackson <ajax@redhat.com>
---
drivers/gpu/drm/i915/intel_dp.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 2f0566b..13bddd3 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1678,10 +1678,10 @@ intel_dp_detect(struct drm_connector *connector, bool force)
else
status = g4x_dp_detect(intel_dp);
- DRM_DEBUG_KMS("DPCD: %hx%hx%hx%hx%hx%hx%hx%hx\n", intel_dp->dpcd[0],
- intel_dp->dpcd[1], intel_dp->dpcd[2], intel_dp->dpcd[3],
- intel_dp->dpcd[4], intel_dp->dpcd[5], intel_dp->dpcd[6],
- intel_dp->dpcd[7]);
+ DRM_DEBUG_KMS("DPCD: %02hx%02hx%02hx%02hx%02hx%02hx%02hx%02hx\n",
+ intel_dp->dpcd[0], intel_dp->dpcd[1], intel_dp->dpcd[2],
+ intel_dp->dpcd[3], intel_dp->dpcd[4], intel_dp->dpcd[5],
+ intel_dp->dpcd[6], intel_dp->dpcd[7]);
if (status != connector_status_connected)
return status;
--
1.7.6
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 6/7] drm/i915/dp: Retry DPCD fetch on G4X too
2011-07-12 21:37 [PATCH 0/7] Minor DisplayPort cleanup Adam Jackson
` (4 preceding siblings ...)
2011-07-12 21:38 ` [PATCH 5/7] drm/i915/dp: Better hexdump of DPCD Adam Jackson
@ 2011-07-12 21:38 ` Adam Jackson
2011-07-12 21:38 ` [PATCH 7/7] drm/i915/dp: Explicitly request 8/10 channel coding Adam Jackson
6 siblings, 0 replies; 11+ messages in thread
From: Adam Jackson @ 2011-07-12 21:38 UTC (permalink / raw)
To: intel-gfx
Signed-off-by: Adam Jackson <ajax@redhat.com>
---
drivers/gpu/drm/i915/intel_dp.c | 33 +++++++++++++++------------------
1 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 13bddd3..9a0c3ca 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1596,10 +1596,22 @@ intel_dp_check_link_status(struct intel_dp *intel_dp)
}
static enum drm_connector_status
+i915_dp_detect_common(struct intel_dp *intel_dp)
+{
+ enum drm_connector_status status = connector_status_disconnected;
+
+ if (intel_dp_aux_native_read_retry(intel_dp, 0x000, intel_dp->dpcd,
+ sizeof (intel_dp->dpcd)) &&
+ (intel_dp->dpcd[DP_DPCD_REV] != 0))
+ status = connector_status_connected;
+
+ return status;
+}
+
+static enum drm_connector_status
ironlake_dp_detect(struct intel_dp *intel_dp)
{
enum drm_connector_status status;
- bool ret;
/* Can't disconnect eDP, but you can close the lid... */
if (is_edp(intel_dp)) {
@@ -1609,13 +1621,7 @@ ironlake_dp_detect(struct intel_dp *intel_dp)
return status;
}
- status = connector_status_disconnected;
- ret = intel_dp_aux_native_read_retry(intel_dp,
- 0x000, intel_dp->dpcd,
- sizeof (intel_dp->dpcd));
- if (ret && intel_dp->dpcd[DP_DPCD_REV] != 0)
- status = connector_status_connected;
- return status;
+ return i915_dp_detect_common(intel_dp);
}
static enum drm_connector_status
@@ -1623,7 +1629,6 @@ g4x_dp_detect(struct intel_dp *intel_dp)
{
struct drm_device *dev = intel_dp->base.base.dev;
struct drm_i915_private *dev_priv = dev->dev_private;
- enum drm_connector_status status;
uint32_t temp, bit;
switch (intel_dp->output_reg) {
@@ -1645,15 +1650,7 @@ g4x_dp_detect(struct intel_dp *intel_dp)
if ((temp & bit) == 0)
return connector_status_disconnected;
- status = connector_status_disconnected;
- if (intel_dp_aux_native_read(intel_dp, 0x000, intel_dp->dpcd,
- sizeof (intel_dp->dpcd)) == sizeof (intel_dp->dpcd))
- {
- if (intel_dp->dpcd[DP_DPCD_REV] != 0)
- status = connector_status_connected;
- }
-
- return status;
+ return i915_dp_detect_common(intel_dp);
}
/**
--
1.7.6
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 7/7] drm/i915/dp: Explicitly request 8/10 channel coding
2011-07-12 21:37 [PATCH 0/7] Minor DisplayPort cleanup Adam Jackson
` (5 preceding siblings ...)
2011-07-12 21:38 ` [PATCH 6/7] drm/i915/dp: Retry DPCD fetch on G4X too Adam Jackson
@ 2011-07-12 21:38 ` Adam Jackson
2011-07-12 22:43 ` Keith Packard
6 siblings, 1 reply; 11+ messages in thread
From: Adam Jackson @ 2011-07-12 21:38 UTC (permalink / raw)
To: intel-gfx
It's not clear what a sink would do if you wrote zero to this register -
which I guess would mean "I don't support any channel encodings, good
luck" - but let's not find out.
Signed-off-by: Adam Jackson <ajax@redhat.com>
---
drivers/gpu/drm/i915/intel_dp.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 9a0c3ca..1c3a36f 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -769,6 +769,7 @@ intel_dp_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode,
memset(intel_dp->link_configuration, 0, DP_LINK_CONFIGURATION_SIZE);
intel_dp->link_configuration[0] = intel_dp->link_bw;
intel_dp->link_configuration[1] = intel_dp->lane_count;
+ intel_dp->link_configuration[8] = DP_SET_ANSI_8B10B;
/*
* Check for DPCD version > 1.1 and enhanced framing support
--
1.7.6
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 1/7] drm: Fill in more of the DisplayPort DPCD registers
2011-07-12 21:37 ` [PATCH 1/7] drm: Fill in more of the DisplayPort DPCD registers Adam Jackson
@ 2011-07-12 22:42 ` Keith Packard
2012-01-17 16:07 ` Daniel Vetter
0 siblings, 1 reply; 11+ messages in thread
From: Keith Packard @ 2011-07-12 22:42 UTC (permalink / raw)
To: Adam Jackson, intel-gfx
[-- Attachment #1.1: Type: text/plain, Size: 1252 bytes --]
On Tue, 12 Jul 2011 17:37:59 -0400, Adam Jackson <ajax@redhat.com> wrote:
> Signed-off-by: Adam Jackson <ajax@redhat.com>
> +# define DP_DWN_STRM_PORT_TYPE_TMDS (2 << 1)
This could be labeled TYPE_DVI_OR_HDMI according to the DP 1.1a spec.
> -
I find the blank lines useful in this file; they separate lists of
values for different fields.
> -#define DP_INTERLANE_ALIGN_DONE (1 << 0)
> -#define DP_DOWNSTREAM_PORT_STATUS_CHANGED (1 << 6)
> -#define DP_LINK_STATUS_UPDATED (1 << 7)
> +# define DP_INTERLANE_ALIGN_DONE (1 << 0)
> +# define DP_DOWNSTREAM_PORT_STATUS_CHANGED (1 << 6)
> +# define DP_LINK_STATUS_UPDATED (1 << 7)
>
> #define DP_SINK_STATUS 0x205
> -
> -#define DP_RECEIVE_PORT_0_STATUS (1 << 0)
> -#define DP_RECEIVE_PORT_1_STATUS (1 << 1)
> +# define DP_RECEIVE_PORT_0_STATUS (1 << 0)
> +# define DP_RECEIVE_PORT_1_STATUS (1 << 1)
>
> #define DP_ADJUST_REQUEST_LANE0_1 0x206
> #define DP_ADJUST_REQUEST_LANE2_3 0x207
Please make a separate patch for whitespace cleanups...
Otherwise, these changes all match the DP 1.1a spec that I compared them
with.
Reviewed-by: Keith Packard <keithp@keithp.com>
--
keith.packard@intel.com
[-- Attachment #1.2: Type: application/pgp-signature, Size: 189 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 7/7] drm/i915/dp: Explicitly request 8/10 channel coding
2011-07-12 21:38 ` [PATCH 7/7] drm/i915/dp: Explicitly request 8/10 channel coding Adam Jackson
@ 2011-07-12 22:43 ` Keith Packard
0 siblings, 0 replies; 11+ messages in thread
From: Keith Packard @ 2011-07-12 22:43 UTC (permalink / raw)
To: Adam Jackson, intel-gfx
[-- Attachment #1.1: Type: text/plain, Size: 98 bytes --]
Patches 2-7:
Reviewed-by: Keith Packard <keithp@keithp.com>
--
keith.packard@intel.com
[-- Attachment #1.2: Type: application/pgp-signature, Size: 189 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/7] drm: Fill in more of the DisplayPort DPCD registers
2011-07-12 22:42 ` Keith Packard
@ 2012-01-17 16:07 ` Daniel Vetter
0 siblings, 0 replies; 11+ messages in thread
From: Daniel Vetter @ 2012-01-17 16:07 UTC (permalink / raw)
To: Keith Packard, Dave Airlie; +Cc: intel-gfx
On Tue, Jul 12, 2011 at 03:42:11PM -0700, Keith Packard wrote:
> On Tue, 12 Jul 2011 17:37:59 -0400, Adam Jackson <ajax@redhat.com> wrote:
> > Signed-off-by: Adam Jackson <ajax@redhat.com>
>
> > +# define DP_DWN_STRM_PORT_TYPE_TMDS (2 << 1)
>
> This could be labeled TYPE_DVI_OR_HDMI according to the DP 1.1a spec.
>
> > -
>
> I find the blank lines useful in this file; they separate lists of
> values for different fields.
>
>
> > -#define DP_INTERLANE_ALIGN_DONE (1 << 0)
> > -#define DP_DOWNSTREAM_PORT_STATUS_CHANGED (1 << 6)
> > -#define DP_LINK_STATUS_UPDATED (1 << 7)
> > +# define DP_INTERLANE_ALIGN_DONE (1 << 0)
> > +# define DP_DOWNSTREAM_PORT_STATUS_CHANGED (1 << 6)
> > +# define DP_LINK_STATUS_UPDATED (1 << 7)
> >
> > #define DP_SINK_STATUS 0x205
> > -
> > -#define DP_RECEIVE_PORT_0_STATUS (1 << 0)
> > -#define DP_RECEIVE_PORT_1_STATUS (1 << 1)
> > +# define DP_RECEIVE_PORT_0_STATUS (1 << 0)
> > +# define DP_RECEIVE_PORT_1_STATUS (1 << 1)
> >
> > #define DP_ADJUST_REQUEST_LANE0_1 0x206
> > #define DP_ADJUST_REQUEST_LANE2_3 0x207
>
> Please make a separate patch for whitespace cleanups...
>
> Otherwise, these changes all match the DP 1.1a spec that I compared them
> with.
>
> Reviewed-by: Keith Packard <keithp@keithp.com>
Noticed this one here while going through list archives. Doesn't apply
properly anymore though. Adam, Dave?
-Daniel
--
Daniel Vetter
Mail: daniel@ffwll.ch
Mobile: +41 (0)79 365 57 48
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-01-17 16:07 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-12 21:37 [PATCH 0/7] Minor DisplayPort cleanup Adam Jackson
2011-07-12 21:37 ` [PATCH 1/7] drm: Fill in more of the DisplayPort DPCD registers Adam Jackson
2011-07-12 22:42 ` Keith Packard
2012-01-17 16:07 ` Daniel Vetter
2011-07-12 21:38 ` [PATCH 2/7] drm/i915/dp: Zero the DPCD data before connection probe Adam Jackson
2011-07-12 21:38 ` [PATCH 3/7] drm/i915/dp: Move DPCD dump to common code instead of PCH-only Adam Jackson
2011-07-12 21:38 ` [PATCH 4/7] drm/i915/dp: Read more DPCD registers on connection probe Adam Jackson
2011-07-12 21:38 ` [PATCH 5/7] drm/i915/dp: Better hexdump of DPCD Adam Jackson
2011-07-12 21:38 ` [PATCH 6/7] drm/i915/dp: Retry DPCD fetch on G4X too Adam Jackson
2011-07-12 21:38 ` [PATCH 7/7] drm/i915/dp: Explicitly request 8/10 channel coding Adam Jackson
2011-07-12 22:43 ` Keith Packard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).