drm/vmwgfx: Don't send bad flags to the host
[pandora-kernel.git] / drivers / gpu / drm / vmwgfx / vmwgfx_resource.c
index e01db12..c7efbd4 100644 (file)
 #define VMW_RES_SURFACE ttm_driver_type1
 #define VMW_RES_STREAM ttm_driver_type2
 
+/* XXX: This isn't a real hardware flag, but just a hack for kernel to
+ * know about primary surfaces. Find a better way to accomplish this.
+ */
+#define SVGA3D_SURFACE_HINT_SCANOUT (1 << 9)
+
 struct vmw_user_context {
        struct ttm_base_object base;
        struct vmw_resource res;
@@ -599,8 +604,17 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data,
        if (unlikely(ret != 0))
                goto out_err1;
 
+       if (srf->flags & SVGA3D_SURFACE_HINT_SCANOUT) {
+               /* we should not send this flag down to hardware since
+                * its not a official one
+                */
+               srf->flags &= ~SVGA3D_SURFACE_HINT_SCANOUT;
+               srf->scanout = true;
+       } else {
+               srf->scanout = false;
+       }
 
-       if (srf->flags & (1 << 9) &&
+       if (srf->scanout &&
            srf->num_sizes == 1 &&
            srf->sizes[0].width == 64 &&
            srf->sizes[0].height == 64 &&