User:Exkc/Displaylink

From postmarketOS Wiki

Welcome to exkc's personal note on Displaylink Here is how part of the probing work in udl afik

Udl.png

the overspec issue us cursed by 4 and vendor firmware descriptor issue issue is caused by 3


\*bsd's udl dont have probing system like linux udl thus they dont have overspec,vendor firmware descriptor issue which is good well um but the limitation is hardcoded in the bsd udl so it sucks

windows displaylink driver is able to read the limitation and set a cap on my uv16 even those uv16's usb2 vendor descriptor 0x5f is filled with 0 so there should be other way to probe displaylink instated of the linux udl way?


android displaylink app seem to able to do the same i think?it seem so it outputed 1080p via my NL571AA but it outputed 1680x1050 via my uv16.

hummm after more digging it seem the old udl displaylink-mod/displaylink libdlo dont have probing system that the modern udl has. (They all wont read/check usb descriptor it seem ) That probing system was introduced in https://github.com/torvalds/linux/commit/18dffdf8913ab9e4ac7403a624879a15afa5262e it is supposed to enhance EDID and mode handling support but it broke a ton of device support due the way of probing device thus best way to phobing device is needed.

Icon TODO: Make a better probing system by reverse engineering android displaylink app or the windows driver

Humm i thought my uv 16 is based is on a variant of dl-165 thus i thought the chip in it support 1920x1080 but sadly it is not . it turn out it is based on early dl chip. i tried to look for info about it in offical site but i couldn't found any info thus i assumed it use a variant of dl-165 . lucky recently i found a out pdf about those early dl chip.

wait my uv 16 is effaced by Unrecognized vendor firmware descriptor wouldn't that mean other early dl chip based one are also effaced by it.humm i remember i hardcoded the cap to 4k but udl won let me set my uv16 and my hp to 4k it only allow me to set it to 1920x1080 on them so udl only support 1920x1080 at maximum or there are another cap in hardware? let me get dl that support higher resolution ( higher then 1920x1080) humm the spec of those early chip seem to match with uv 16 12


humm libdlo displayed few image at 1920x1080 on my uv 16 and my hp but not as 4k (it has pluged into a 4k output i think maybe not?)


hummm I just made usb sniffer so time to do usb capture . Humm interesting windows driver seem to also read usb like udl and my uv 16 USB descriptor is actually fulled with 0 at the udl showed to me.Alr here is the descriptor of my uv 16+ and hp

User:Exkc/Displaylink/5fdescriptor

Humm it seem udl only read part of it acc to the log

Alr i got few more displaylink the window drivers seemed to able to read the limitation of them.Humm weird so window isn't only rely on the USB description 5f. I finally got a 4K output so i plug it into my Displaylinks humm why the xanar didn't list out the 4k resolution.Odd the edid does said it support 4k acc to some parse tool. (2k isnt supported acc to edid). Oddy enough I tried to setup a custom resolution via xrandr but no matter I tried it won't output with my custom resolution. Ah i found out the udl only support 2048x2048.

part of the udl_modeset.c

dev->mode_config.max_width = 2048;
dev->mode_config.max_height = 2048;

this 2 line make it only support 2048x2048. i tried changing those two line.yeah xranda finally listed up 4K in the output with my dl-1x0 based displaylinks but it didnt with my dl-1x5 based displaylinks .Weird

anyway let me try to set it to 4k with my dl-1x0 based displaylinks.the video stopped outputing.what?humm weird