evdi icon indicating copy to clipboard operation
evdi copied to clipboard

Regresion - Kernel 5.17.5-200.fc35.x86_64 - mode reject.

Open chiddekel opened this issue 2 years ago • 8 comments

On kernel 5.17.5-200.fc35.x86_64 mode rejection: (...) [W] evdi_mode_valid:75 Mode 1900x1200@60 rejected (...) Why default mode is 75 and not the range of for example starting from 60?

chiddekel avatar May 04 '22 07:05 chiddekel

I'm seeing the same mode rejection issue on 5.17.4-200.fc35.x86_64 when compiled from 39da217.

Why default mode is 75

The 75 quoted in the log line is the line number of the source file where evdi_mode_valid failed.

Olyol95 avatar May 06 '22 09:05 Olyol95

evdi->pixel_per_second_limit is being set to 3686400 on my machine, despite the connected device being capable of a much larger value. I suspect there's an issue somewhere with the assignment of the value, though I don't know enough about the project to contribute a concrete solution.

For now I have bodged it on my device by inserting the following on line 70 of module/evdi_connector.c.

return MODE_OK;

Olyol95 avatar May 06 '22 11:05 Olyol95

Same issue on kernel 5.18.0-arch1-1

mikefarmer01 avatar May 30 '22 17:05 mikefarmer01

I've the same issue with 5.18.5-200.fc36.x86_64 , evdi version 1.11.0

On first analyze, the internal mode_limit is computed with the refresh frequency and the the provided pixel_per_second_limit parameter in the mode is computed without the frequency.

a simple patch (which may not be the correct fix, I've not really searched for the root cause of the issue) is a vlid workaround on my env :

`diff --git i/module/evdi_connector.c w/module/evdi_connector.c index fae5ca2..3632e7b 100644 --- i/module/evdi_connector.c +++ w/module/evdi_connector.c @@ -66,7 +66,7 @@ static enum drm_mode_status evdi_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { struct evdi_device *evdi = connector->dev->dev_private;

  • uint32_t mode_limit = mode->hdisplay * mode->vdisplay * drm_mode_vrefresh(mode);
  • uint32_t mode_limit = mode->hdisplay * mode->vdisplay;

    if (evdi->pixel_per_second_limit == 0) return MODE_OK; `

castorls avatar Jun 20 '22 16:06 castorls

Meanwhile, i switched to a Thunderbolt 3 dock.
Don't know what your situation is, but you should consider moving away from DisplayLink as well.

mikefarmer01 avatar Jun 21 '22 20:06 mikefarmer01

Recompilation with newer evdi seems to fix the issue. There is an unofficial rpm here: https://github.com/displaylink-rpm/displaylink-rpm/issues/218#issuecomment-1160123098

pjboro avatar Jun 26 '22 09:06 pjboro

Confirm - evdi 1.12.0 work on Fedora 35 with kernel 5.18.11-100.fc35.x86_64.

chiddekel avatar Jul 23 '22 20:07 chiddekel

Meanwhile, i switched to a Thunderbolt 3 dock. Don't know what your situation is, but you should consider moving away from DisplayLink as well.

@mikefarmer01, I wish it were that simple for everyone. Not everybody has the luxury of Thunderbolt. In fact, many AMD CPUs don't support it.

zachspar avatar Jul 26 '22 18:07 zachspar