Valid DP connection without EDID?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux