Vega 56 failing to process EDID from VR Headset

James Dutton james.dutton at gmail.com
Fri Apr 15 08:49:33 UTC 2022


On Wed, 13 Apr 2022 at 08:11, Paul Menzel <pmenzel at molgen.mpg.de> wrote:
>
> Dear James,
>
> > I will do some more investigation. In addition to it not processing
> > the EDID particularly well...
> > Since my email, I have found out that it is failing to complete CR
> > (Clock Recovery) on Link 0,2, but it works on 1,3 at HBR2. All 4 Links
> > work at HBR1.   (I need the HBR2 working)
> > The CR negotiation in the code looks a bit wrong to me, so I will look
> > into that a bit more.
> > Looking at the current amdgpu source code   (I am using Mainline
> > kernel version 5.17.1), it appears to retry CR negotiation, but each
> > time it uses the same settings, rather than try different driver
> > parameters, as recommended in the DP standards and compliance test
> > documents.
>
> […]
>
> Awesome, that you review the code with your expertise. Though I suggest
> to look at and work on agd5f/amd-staging-drm-next [1], having the latest
> code for the driver.
>
Just a small update. I have CR negotiation working now.
I have found out what I suspected. Although the amdgpu driver has code
in it that looks like CR negotiation is implemented, it does not
actually do any negotiation at all.
I still have some work to do, to also get EQ negotiation working.
Once I have a patch that is tidy enough, I will raise a bug request
and attach the patch to it.
I am just pleased that this is a software problem, and not my screen at fault.

Someone mentioned that the amdgpu driver is DP compliance tested
periodically. In short, I don't think any of those Link negotiation DP
compliance tests are actually valid, based on what I have found, so it
might be sensible for the person who runs the Link negotiation DP
compliance test suite to double check it is actually doing its job.

Summary:  During CR negotiation, it only ever outputs a swing of 0,
and never 1,2 or 3 as it should.
So, my guess is only Screens on relatively short cables have ever
worked with the Linux amdgpu driver.
Although longer cables might work for some, it probably gets a bit hit
and miss for them.

Kind Regards

James


More information about the amd-gfx mailing list