sna: Report KMS driver version
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 6 Jun 2014 12:34:18 +0000 (13:34 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 6 Jun 2014 12:39:32 +0000 (13:39 +0100)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
src/intel_device.c
src/intel_driver.h
src/sna/sna_driver.c

index c1c6d84..610b223 100644 (file)
@@ -376,6 +376,16 @@ err_path:
        return -1;
 }
 
+int __intel_peek_fd(ScrnInfoPtr scrn)
+{
+       struct intel_device *dev;
+
+       dev = intel_device(scrn);
+       assert(dev && dev->fd != -1);
+
+       return dev->fd;
+}
+
 int intel_get_device(ScrnInfoPtr scrn)
 {
        struct intel_device *dev;
index 3dc640c..d295250 100644 (file)
@@ -125,6 +125,7 @@ void intel_detect_chipset(ScrnInfoPtr scrn, EntityInfoPtr ent);
 int intel_open_device(int entity_num,
                      const struct pci_device *pci,
                      struct xf86_platform_device *dev);
+int __intel_peek_fd(ScrnInfoPtr scrn);
 int intel_get_device(ScrnInfoPtr scrn);
 const char *intel_get_client_name(ScrnInfoPtr scrn);
 int intel_get_client_fd(ScrnInfoPtr scrn);
index b923236..3810090 100644 (file)
@@ -1276,9 +1276,31 @@ static void sna_leave_vt__hosted(VT_FUNC_ARGS_DECL)
 {
 }
 
-Bool sna_init_scrn(ScrnInfoPtr scrn, int entity_num)
+static void describe_kms(ScrnInfoPtr scrn)
+{
+       int fd = __intel_peek_fd(scrn);
+       drm_version_t version;
+       char name[128] = "";
+       char date[128] = "";
+
+       memset(&version, 0, sizeof(version));
+       version.name_len = sizeof(name) - 1;
+       version.name = name;
+       version.date_len = sizeof(date) - 1;
+       version.date = date;
+
+       if (drmIoctl(fd, DRM_IOCTL_VERSION, &version))
+               return;
+
+       xf86DrvMsg(scrn->scrnIndex, X_INFO,
+                  "Using Kernel Mode Setting driver: %s, version %d.%d.%d %s\n",
+                  version.name,
+                  version.version_major, version.version_minor, version.version_patchlevel,
+                  version.date);
+}
+
+static void describe_sna(ScrnInfoPtr scrn)
 {
-       DBG(("%s: entity_num=%d\n", __FUNCTION__, entity_num));
 #if defined(USE_GIT_DESCRIBE)
        xf86DrvMsg(scrn->scrnIndex, X_INFO,
                   "SNA compiled from %s\n", git_version);
@@ -1303,6 +1325,13 @@ Bool sna_init_scrn(ScrnInfoPtr scrn, int entity_num)
                   "SNA compiled with extra pixmap/damage validation\n");
 #endif
        DBG(("pixman version: %s\n", pixman_version_string()));
+}
+
+Bool sna_init_scrn(ScrnInfoPtr scrn, int entity_num)
+{
+       DBG(("%s: entity_num=%d\n", __FUNCTION__, entity_num));
+       describe_kms(scrn);
+       describe_sna(scrn);
 
        scrn->PreInit = sna_pre_init;
        scrn->ScreenInit = sna_screen_init;