Fixed bug 4624 - KMS/DRM fails on FreeBSD because /dev/dri/card* nodes are symlinks

Jan Martin Mikkelsen

Patch to scan /dev/dri based on names rather than file type

Loading KMS/DRM on FreeBSD fails because the "available" code in the driver checks for character device nodes under /dev/dri and the /dev/dri/card* files are symlinks rather than device nodes nodes on FreeBSD. The symlink points to /dev/drm/0.

The attached patch counts /dev/dri/card* entries rather than directory entries which are character devices.
This commit is contained in:
Sam Lantinga 2019-06-18 14:15:10 -07:00
parent d3bedda4df
commit 99abcbb2bc
1 changed files with 1 additions and 1 deletions

View File

@ -101,7 +101,7 @@ static int get_dricount(void)
folder = opendir(KMSDRM_DRI_PATH); folder = opendir(KMSDRM_DRI_PATH);
if (folder) { if (folder) {
while ((res = readdir(folder))) { while ((res = readdir(folder))) {
if (res->d_type == DT_CHR) { if (res->d_namlen > 4 && strncmp(res->d_name, "card", 4)) {
devcount++; devcount++;
} }
} }