backend-drm: store udev_device in drm_kms_device

find_primary_gpu() and open_specific_drm_device() are currently
returning the udev_device while modifying the passed in drm_device. To
stop the modification, these functions should return drm_kms_device
directly, but the udev_device is also needed.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
This commit is contained in:
Pekka Paalanen 2025-09-02 17:31:45 +03:00 committed by Derek Foreman
parent 201a62baab
commit 62931d2024
2 changed files with 3 additions and 0 deletions

View file

@ -180,6 +180,7 @@ struct drm_kms_device {
int id;
char *filename;
dev_t devnum;
struct udev_device *udev_device;
int fd;
struct weston_launcher *fd_owner;

View file

@ -4048,6 +4048,7 @@ drm_kms_device_destroy(struct drm_kms_device *kms_device)
if (kms_device->fd >= 0)
weston_launcher_close(kms_device->fd_owner, kms_device->fd);
udev_device_unref(kms_device->udev_device);
free(kms_device->filename);
free(kms_device);
}
@ -4200,6 +4201,7 @@ drm_kms_device_create(struct weston_launcher *launcher,
kms_device->id = id;
kms_device->filename = strdup(filename);
kms_device->devnum = devnum;
kms_device->udev_device = udev_device_ref(udev_device);
drmModeFreeResources(res);