Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Adam Jackson <ajax@redhat.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: mmarek@suse.cz, intel-gfx@lists.freedesktop.org
Subject: Re: Valid DP connection without EDID?
Date: Tue, 18 Sep 2012 10:04:33 -0400	[thread overview]
Message-ID: <1347977073.25266.78.camel@atropine> (raw)
In-Reply-To: <s5hr4pzoaqm.wl%tiwai@suse.de>


[-- Attachment #1.1: Type: text/plain, Size: 2717 bytes --]

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

[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 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

  reply	other threads:[~2012-09-18 14:04 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-14 14:19 Valid DP connection without EDID? Takashi Iwai
2012-09-14 15:25 ` Adam Jackson
2012-09-17  8:16   ` Takashi Iwai
2012-09-17  8:21     ` Dave Airlie
2012-09-17  8:28       ` Takashi Iwai
2012-09-17  9:11         ` Dave Airlie
2012-09-17  9:32           ` Takashi Iwai
2012-09-17 16:24             ` Adam Jackson
2012-09-18 11:01               ` Takashi Iwai
2012-09-18 14:04                 ` Adam Jackson [this message]
2012-09-18 14:32                   ` Takashi Iwai
2012-09-18 14:48                     ` Adam Jackson
2012-09-18 15:11                       ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1347977073.25266.78.camel@atropine \
    --to=ajax@redhat.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=mmarek@suse.cz \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox