drm/vmwgfx: Add SM4_1 flag
authorDeepak Rawat <drawat@vmware.com>
Wed, 20 Jun 2018 20:52:32 +0000 (13:52 -0700)
committerThomas Hellstrom <thellstrom@vmware.com>
Fri, 6 Jul 2018 18:16:07 +0000 (20:16 +0200)
A boolean flag in device private structure to specify if the device
support SM4_1.

Signed-off-by: Deepak Rawat <drawat@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h

index f2fad88e4c541241b9561983af0d7d7bf5599bd3..6cf81e19182f6b475081f149decad4ad7337917f 100644 (file)
@@ -916,9 +916,23 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
        if (ret)
                goto out_no_fifo;
 
+       if (dev_priv->has_dx) {
+               /*
+                * SVGA_CAP2_DX2 (DefineGBSurface_v3) is needed for SM4_1
+                * support
+                */
+               if ((dev_priv->capabilities2 & SVGA_CAP2_DX2) != 0) {
+                       vmw_write(dev_priv, SVGA_REG_DEV_CAP,
+                                       SVGA3D_DEVCAP_SM41);
+                       dev_priv->has_sm4_1 = vmw_read(dev_priv,
+                                                       SVGA_REG_DEV_CAP);
+               }
+       }
+
        DRM_INFO("DX: %s\n", dev_priv->has_dx ? "yes." : "no.");
-       DRM_INFO("Atomic: %s\n",
-                (dev->driver->driver_features & DRIVER_ATOMIC) ? "yes" : "no");
+       DRM_INFO("Atomic: %s\n", (dev->driver->driver_features & DRIVER_ATOMIC)
+                ? "yes." : "no.");
+       DRM_INFO("SM4_1: %s\n", dev_priv->has_sm4_1 ? "yes." : "no.");
 
        snprintf(host_log, sizeof(host_log), "vmwgfx: %s-%s",
                VMWGFX_REPO, VMWGFX_GIT_VERSION);
index 920365c0e9abca98ca59da0982b3aa9c9f4ad227..7bb08bac728e3b169df3d62da045d15c6bf64fdd 100644 (file)
@@ -398,6 +398,7 @@ struct vmw_private {
        spinlock_t cap_lock;
        bool has_dx;
        bool assume_16bpp;
+       bool has_sm4_1;
 
        /*
         * VGA registers.