[Intel-gfx] Valid DP connection without EDID?
Adam Jackson
ajax at redhat.com
Tue Sep 18 16:04:33 CEST 2012
On Tue, 2012-09-18 at 13:01 +0200, Takashi Iwai wrote:
> > I started a patch series for this a bit ago, I'll send it on
> > momentarily.
>
> Thanks! I evaluated it now (with a typo fix suggested by Jani).
> Unfortunately, it doesn't improve the situation.
>
> The fetch of downstream ports succeeds, and it gets 0x09. So, this
> indicates again it's a VGA downstream port. But that's all, so far.
> The 0x09 is reported no matter whether the VGA cable is plugged or
> not, so this can't be used as the detection of the downstream port
> plug state.
Sorry, there's a bug in the patch. link_configuration[0] is not
DP_SINK_COUNT, I have no idea why I thought it was. Try this on top of
the series:
===
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 9809c53..b6b9a18 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -2098,15 +2098,22 @@ intel_dp_detect_dpcd(struct intel_dp *intel_dp)
if (!intel_dp_get_dpcd(intel_dp))
return connector_status_disconnected;
-
+
/* if there's no downstream port, we're done */
if (!(dpcd[DP_DOWNSTREAMPORT_PRESENT] & DP_DWN_STRM_PORT_PRESENT))
return connector_status_connected;
/* If we're HPD-aware, SINK_COUNT changes dynamically */
hpd = !!(intel_dp->downstream_ports[0] & DP_DS_PORT_HPD);
- if (hpd && (intel_dp->link_configuration[0] & DP_SINK_COUNT_MASK))
- return connector_status_connected;
+ if (hpd) {
+ uint8_t sink_count;
+ if (!intel_dp_aux_native_read_retry(intel_dp, DP_SINK_COUNT,
+ &sink_count, 1))
+ return connector_status_unknown;
+ sink_count &= DP_SINK_COUNT_MASK;
+ return sink_count ? connector_status_connected
+ : connector_status_disconnected;
+ }
/* If no HPD, poke DDC gently */
if (drm_probe_ddc(&intel_dp->adapter))
===
If that doesn't work then the HPD-capable bit is useless - or if we're
lucky just needs quirking by branch OUI - and we should just fall
through to the drm_probe_ddc() path. What is the branch OUI, anyway?
There's a third possibility, which is that HPD does work but that we're
not doing enough to enable it. The DP 1.1a spec has a non-normative
appendix describing one way a device could go about doing that as an
optional feature, but the method described does not match how we're
currently handling sink-specific IRQs. I have no idea what the 1.2 spec
says on this point though.
- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20120918/8c8cecd5/attachment.sig>
More information about the Intel-gfx
mailing list