Revert "backend/drm: fetch EDID manufacturer from udev_hwdb"

This reverts commit e646d882cf.

This commit has added a dependency on udev_hwdb. This API isn't
available on all platforms (e.g. FreeBSD), and further deepens
our udev dependency. A better solution is being worked on in [1].

[1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3638
This commit is contained in:
Simon Ser 2022-09-14 09:54:52 +02:00
parent 4152db92ef
commit d75b4d8e86
3 changed files with 74 additions and 56 deletions

View file

@ -1,7 +1,6 @@
#include <assert.h>
#include <errno.h>
#include <drm_fourcc.h>
#include <libudev.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -58,7 +57,6 @@ static void backend_destroy(struct wlr_backend *backend) {
finish_drm_resources(drm);
udev_hwdb_unref(drm->hwdb);
free(drm->name);
wlr_session_close_file(drm->session, drm->dev);
wl_event_source_remove(drm->drm_event);
@ -176,23 +174,6 @@ static void handle_parent_destroy(struct wl_listener *listener, void *data) {
backend_destroy(&drm->backend);
}
static struct udev_hwdb *create_udev_hwdb(void) {
struct udev *udev = udev_new();
if (!udev) {
wlr_log(WLR_ERROR, "udev_new failed");
return NULL;
}
struct udev_hwdb *hwdb = udev_hwdb_new(udev);
udev_unref(udev);
if (!hwdb) {
wlr_log(WLR_ERROR, "udev_hwdb_new failed");
return NULL;
}
return hwdb;
}
struct wlr_backend *wlr_drm_backend_create(struct wl_display *display,
struct wlr_session *session, struct wlr_device *dev,
struct wlr_backend *parent) {
@ -247,12 +228,6 @@ struct wlr_backend *wlr_drm_backend_create(struct wl_display *display,
drm->session_active.notify = handle_session_active;
wl_signal_add(&session->events.active, &drm->session_active);
drm->hwdb = create_udev_hwdb();
if (!drm->hwdb) {
wlr_log(WLR_INFO, "Failed to load udev_hwdb, "
"falling back to PnP IDs instead of manufacturer names");
}
if (!check_drm_features(drm)) {
goto error_event;
}
@ -304,7 +279,6 @@ error_mgpu_renderer:
error_resources:
finish_drm_resources(drm);
error_event:
udev_hwdb_unref(drm->hwdb);
wl_list_remove(&drm->session_active.link);
wl_event_source_remove(drm->drm_event);
error_fd: