[PATCH 1/2] xfree86: Store kernel driver name in platform device attribute

Thierry Reding thierry.reding at gmail.com
Wed Feb 12 08:11:00 PST 2014


When opening a DRM device, query the version and store the driver name
as a new attribute for future reference.

Signed-off-by: Thierry Reding <treding at nvidia.com>
---
 hw/xfree86/os-support/linux/lnx_platform.c | 12 ++++++++++++
 include/hotplug.h                          |  2 ++
 2 files changed, 14 insertions(+)

diff --git a/hw/xfree86/os-support/linux/lnx_platform.c b/hw/xfree86/os-support/linux/lnx_platform.c
index 1865b31b9d02..a42909aef219 100644
--- a/hw/xfree86/os-support/linux/lnx_platform.c
+++ b/hw/xfree86/os-support/linux/lnx_platform.c
@@ -23,6 +23,7 @@ static Bool
 get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index)
 {
     drmSetVersion sv;
+    drmVersionPtr v;
     char *buf;
     int fd;
     int err = 0;
@@ -52,6 +53,17 @@ get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index)
     xf86_add_platform_device_attrib(delayed_index,
                                     ODEV_ATTRIB_BUSID, buf);
     drmFreeBusid(buf);
+
+    v = drmGetVersion(fd);
+    if (!v) {
+        ErrorF("getversion failed\n");
+        goto out;
+    }
+
+    xf86_add_platform_device_attrib(delayed_index, ODEV_ATTRIB_DRIVER,
+                                    v->name);
+    drmFreeVersion(v);
+
 out:
     close(fd);
     return (err == 0);
diff --git a/include/hotplug.h b/include/hotplug.h
index 29a22c4daee0..95fdc6ebe621 100644
--- a/include/hotplug.h
+++ b/include/hotplug.h
@@ -62,6 +62,8 @@ config_odev_free_attributes(struct OdevAttributes *attribs);
 #define ODEV_ATTRIB_SYSPATH 2
 /* DRI-style bus id */
 #define ODEV_ATTRIB_BUSID 3
+/* kernel driver name */
+#define ODEV_ATTRIB_DRIVER 4
 
 typedef void (*config_odev_probe_proc_ptr)(struct OdevAttributes *attribs);
 void config_odev_probe(config_odev_probe_proc_ptr probe_callback);
-- 
1.8.4.2



More information about the xorg-devel mailing list