drm/vmwgfx: Report vmwgfx version to vmware.log
authorSinclair Yeh <syeh@vmware.com>
Thu, 28 Apr 2016 02:11:18 +0000 (19:11 -0700)
committerThomas Hellstrom <thellstrom@vmware.com>
Fri, 20 May 2016 15:40:07 +0000 (17:40 +0200)
When tracking down a customer issue, it is useful to know exactly
which version of the vmwgfx they are using.  Since vmware.log is
often the only available debug log, report vmwgfx version in there.

Signed-off-by: Sinclair Yeh <syeh@vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
drivers/gpu/drm/vmwgfx/Makefile
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h

index d281575bbe11ae090460d75fb371c8d49da1a36d..473d00451b0ffff514380beebb0a181b4f6a80fc 100644 (file)
@@ -8,6 +8,6 @@ vmwgfx-y := vmwgfx_execbuf.o vmwgfx_gmr.o vmwgfx_kms.o vmwgfx_drv.o \
            vmwgfx_fence.o vmwgfx_dmabuf.o vmwgfx_scrn.o vmwgfx_context.o \
            vmwgfx_surface.o vmwgfx_prime.o vmwgfx_mob.o vmwgfx_shader.o \
            vmwgfx_cmdbuf_res.o vmwgfx_cmdbuf.o vmwgfx_stdu.o \
-           vmwgfx_cotable.o vmwgfx_so.o vmwgfx_binding.o
+           vmwgfx_cotable.o vmwgfx_so.o vmwgfx_binding.o vmwgfx_msg.o
 
 obj-$(CONFIG_DRM_VMWGFX) := vmwgfx.o
index e80497eb6c9c8cbc0c69046af25f3173a7875f4a..9fcd8200d485e61aae3ff8a0cbf4fd4289a6d54b 100644 (file)
@@ -1,6 +1,6 @@
 /**************************************************************************
  *
- * Copyright © 2009-2015 VMware, Inc., Palo Alto, CA., USA
+ * Copyright © 2009-2016 VMware, Inc., Palo Alto, CA., USA
  * All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
 #define VMW_MIN_INITIAL_WIDTH 800
 #define VMW_MIN_INITIAL_HEIGHT 600
 
+#ifndef VMWGFX_GIT_VERSION
+#define VMWGFX_GIT_VERSION "Unknown"
+#endif
+
+#define VMWGFX_REPO "In Tree"
+
 
 /**
  * Fully encoded drm commands. Might move to vmw_drm.h
@@ -613,6 +619,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
        uint32_t svga_id;
        enum vmw_res_type i;
        bool refuse_dma = false;
+       char host_log[100] = {0};
 
        dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL);
        if (unlikely(dev_priv == NULL)) {
@@ -874,6 +881,16 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
 
        DRM_INFO("DX: %s\n", dev_priv->has_dx ? "yes." : "no.");
 
+       snprintf(host_log, sizeof(host_log), "vmwgfx: %s-%s",
+               VMWGFX_REPO, VMWGFX_GIT_VERSION);
+       vmw_host_log(host_log);
+
+       memset(host_log, 0, sizeof(host_log));
+       snprintf(host_log, sizeof(host_log), "vmwgfx: Module Version: %d.%d.%d",
+               VMWGFX_DRIVER_MAJOR, VMWGFX_DRIVER_MINOR,
+               VMWGFX_DRIVER_PATCHLEVEL);
+       vmw_host_log(host_log);
+
        if (dev_priv->enable_fb) {
                vmw_fifo_resource_inc(dev_priv);
                vmw_svga_enable(dev_priv);
index 6db358a85b46e192bb1e85f1efbfa5405aca6bd3..1980e2a28265d195db5002977d39239f6b3251a9 100644 (file)
@@ -1235,4 +1235,10 @@ static inline void vmw_mmio_write(u32 value, u32 *addr)
 {
        WRITE_ONCE(*addr, value);
 }
+
+/**
+ * Add vmw_msg module function
+ */
+extern int vmw_host_log(const char *log);
+
 #endif