From: Thierry Reding <[email protected]> When opening a DRM device, query the version and store the driver name as a new attribute for future reference.
Reviewed-by: Aaron Plattner <[email protected]> Signed-off-by: Thierry Reding <[email protected]> --- Changes in v2: - make error message when drmGetVersion() fails more readable 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..188dc5b769fa 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) { + xf86Msg(X_ERROR, "%s: failed to query DRM version\n", path); + 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 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
