[Intel-gfx] Valid DP connection without EDID?
Takashi Iwai
tiwai at suse.de
Mon Sep 17 11:32:18 CEST 2012
At Mon, 17 Sep 2012 19:11:34 +1000,
Dave Airlie wrote:
>
> On Mon, Sep 17, 2012 at 6:28 PM, Takashi Iwai <tiwai at suse.de> wrote:
> > At Mon, 17 Sep 2012 18:21:47 +1000,
> > Dave Airlie wrote:
> >>
> >> On Mon, Sep 17, 2012 at 6:16 PM, Takashi Iwai <tiwai at suse.de> wrote:
> >> > Hi Adam,
> >> >
> >> > At Fri, 14 Sep 2012 11:25:03 -0400,
> >> > Adam Jackson wrote:
> >> >>
> >> >> On 9/14/12 10:19 AM, Takashi Iwai wrote:
> >> >> > Hi,
> >> >> >
> >> >> > we've got a machine showing a ghost DP2 output on a docking station.
> >> >> > The docking station has only one DP port and it's connected to DP1.
> >> >> > As a result, we get an DP2 active output containing the bogus VESA
> >> >> > standard modes 1024x768, 800x600, 640x480 although it's not connected
> >> >> > at all.
> >> >> >
> >> >> > Looking a bit deeply on it, it seems that the connector gives actually
> >> >> > the valid DPCD. So intel_dp_detect() returns
> >> >> > connector_status_connected. But since there is no real connection,
> >> >> > EDID isn't obtained. Thus of course no valid modes set.
> >> >>
> >> >> Can you be more specific here? What DPCD does it return?
> >> >
> >> > It shows "DPCD: 110a820100030181"
> >>
> >> I don't see how it can be a floating port if something is answering
> >> DPCD, or how it could be a hardware problem. Like it doesn't seem
> >> likely they terminated the port with a special DP chip.
> >
> > The problem is that you have no DP output there in reality. So, when
> > you plug the docking station, GNOME sets up the screen with a bogus DP
> > output, either in an extended mode with a non-existing screen or a
> > clone mode with a wrong low resolution.
>
> Yes I understand the problem, I'm disagreeing with your diagnosis of
> what the problem is, since DPCD response means something is there.
> DPCD comes from the other end of the cable.
> >
> >> Though you'd have to decode the DPCD to see what it is.
> >
> > Hmm, but isn't it the check of EDID existence enough?
>
> No thats a hack, that we might use, but I can't imagine a DP->VGA with
> a EDID-less VGA device producing an EDID, whereas it will produce a
> DPCD.
>
> > Checking DPCD bits might work, but I have no exact spec of DPCD, so no
> > idea whether the above is really wrong or not.
>
> Is there a VGA port on the docking station, it might have a DP->VGA in
> it, or dual-link DVI port.
Ah, right, that's the missing piece!
It's a DP->VGA conversion indeed. Plugging to a VGA connector appears
as DP2. Oh well, I didn't think of this possibility at all.
But then this makes me wonder how to solve the problem at best.
It's obviously a bogus connection status returned from the driver.
DP2 advertises itself as if connected.
To summarize the behavior:
- When a docking station is plugged without VGA cable, kernel gives
the following error and provides DP2 with 1024x768:
[ 2.934754] [drm:intel_dp_i2c_aux_ch] *ERROR* too many retries, giving up
[ 2.937324] [drm:intel_dp_i2c_aux_ch] *ERROR* too many retries, giving up
....
[ 3.998943] [drm:intel_dp_complete_link_train] *ERROR* failed to train DP, aborting
- Now plug a VGA cable, kernel gives the following error repeatedly
[ 14.298251] [drm:intel_dp_i2c_aux_ch] *ERROR* too many retries, giving up
[ 14.300791] [drm:intel_dp_i2c_aux_ch] *ERROR* too many retries, giving up
and doesn't give proper modes.
- When you unplug and plug again the docking station with VGA cable
plugged, it probes the right modes. xranr gives:
DP2 connected 1920x1080+1366+0 (normal left inverted right x axis y axis) 510mm x 287mm
1920x1080 60.0*+
1680x1050 60.0
1680x945 60.0
1400x1050 74.9 60.0
1600x900 60.0
1280x1024 75.0 60.0
1440x900 75.0 59.9
1280x960 60.0
1366x768 60.0
1360x768 60.0
1280x800 74.9 59.8
1152x864 75.0
1280x768 74.9 59.9
1280x720 60.0
1024x768 75.1 70.1 60.0
1024x576 60.0
832x624 74.6
800x600 72.2 75.0 60.3 56.2
848x480 60.0
640x480 72.8 75.0 66.7 60.0
720x400 70.1
DP3 disconnected (normal left inverted right x axis y axis)
- Then unplug the VGA cable, it goes back to the old bogus modes.
DP2 connected 1920x1080+1366+0 (normal left inverted right x axis y axis) 510mm x 287mm
1024x768 60.0
800x600 60.3 56.2
848x480 60.0
640x480 59.9
DP3 disconnected (normal left inverted right x axis y axis)
1920x1080 (0xd7) 148.5MHz
h: width 1920 start 2008 end 2052 total 2200 skew 0 clock 67.5KHz
v: height 1080 start 1084 end 1089 total 1125 clock 60.0Hz
(This time DP3 shows also a strange state. It must be some side
effect of the failed probe...)
Takashi
More information about the Intel-gfx
mailing list