On 01.12.2020 17:10, myfreeweb wrote: > devd (really drm in the kernel) provides hotplug events (system DRM, type HOTPLUG). > libudev-devd translates these to UD_ACTION_HOTPLUG. > This works well with wlroots compositors at least. > How xorg does this I have no idea, as I don't use xorg. > If your xorg is built with DEVD instead of UDEV option, it shouldn't work, I don't recall anyone adding support for that there. > With UDEV it might work? Actually Xorg on FreeBSD with UDEV is compiled with --disable-config-udev-kms, thus the server never calls: udev_monitor_filter_add_match_subsystem_devtype for GPU devices, and thus libudev-devd doesn't forward kms events to the server. Actually Xorg doesn't even process them, even if the filter check is bypassed in libudev-devd (udev-monitor.c:261). Basically Xorg is missing bsd platform code for drm devices, on Linux the code that implements that can be found in: hw/xfree86/os-support/linux/lnx_platform.c Compiling the server with --enable-config-udev-kms, the server expects to have the following functions implemented xf86PlatformReprobeDevice, xf86PlatformDeviceProbe, DeleteGPUDeviceRequest and xf86PlatformDeviceCheckBusID. Those are fairly easy to implement to enable Xorg to listen to libudev-devd drm events and to re-configure the drm connectors. I have already some scratch code, will test more and probably send upstream. I will probably also add devd code for that, as I use xorg server with devd on my FreeBSD 12.x machines. Thanks, AliReceived on Wed Dec 02 2020 - 09:28:46 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:26 UTC