Merge branch 'vmwgfx-fixes-5.1' of git://people.freedesktop.org/~thomash/linux into...
authorDave Airlie <airlied@redhat.com>
Fri, 26 Apr 2019 00:30:17 +0000 (10:30 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 26 Apr 2019 00:31:26 +0000 (10:31 +1000)
A single fix for a layer violation requested by Cristoph.

Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Thomas Hellstrom <thellstrom@vmware.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190425204100.3982-1-thellstrom@vmware.com
1  2 
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c

index 6165fe2c4504de07d0626c92892293db75d7354c,2d066383d7fda3dc206b3723717a0ca9f54ff15f..1bfa353d995cf5bb7ca4c4d1ce8a46ba686e55d6
@@@ -545,30 -545,14 +545,14 @@@ static void vmw_get_initial_size(struc
        dev_priv->initial_height = height;
  }
  
- /**
-  * vmw_assume_iommu - Figure out whether coherent dma-remapping might be
-  * taking place.
-  * @dev: Pointer to the struct drm_device.
-  *
-  * Return: true if iommu present, false otherwise.
-  */
- static bool vmw_assume_iommu(struct drm_device *dev)
- {
-       const struct dma_map_ops *ops = get_dma_ops(dev->dev);
-       return !dma_is_direct(ops) && ops &&
-               ops->map_page != dma_direct_map_page;
- }
  /**
   * vmw_dma_select_mode - Determine how DMA mappings should be set up for this
   * system.
   *
   * @dev_priv: Pointer to a struct vmw_private
   *
-  * This functions tries to determine the IOMMU setup and what actions
-  * need to be taken by the driver to make system pages visible to the
-  * device.
+  * This functions tries to determine what actions need to be taken by the
+  * driver to make system pages visible to the device.
   * If this function decides that DMA is not possible, it returns -EINVAL.
   * The driver may then try to disable features of the device that require
   * DMA.
@@@ -578,23 -562,16 +562,16 @@@ static int vmw_dma_select_mode(struct v
        static const char *names[vmw_dma_map_max] = {
                [vmw_dma_phys] = "Using physical TTM page addresses.",
                [vmw_dma_alloc_coherent] = "Using coherent TTM pages.",
-               [vmw_dma_map_populate] = "Keeping DMA mappings.",
+               [vmw_dma_map_populate] = "Caching DMA mappings.",
                [vmw_dma_map_bind] = "Giving up DMA mappings early."};
  
        if (vmw_force_coherent)
                dev_priv->map_mode = vmw_dma_alloc_coherent;
-       else if (vmw_assume_iommu(dev_priv->dev))
-               dev_priv->map_mode = vmw_dma_map_populate;
-       else if (!vmw_force_iommu)
-               dev_priv->map_mode = vmw_dma_phys;
-       else if (IS_ENABLED(CONFIG_SWIOTLB) && swiotlb_nr_tbl())
-               dev_priv->map_mode = vmw_dma_alloc_coherent;
+       else if (vmw_restrict_iommu)
+               dev_priv->map_mode = vmw_dma_map_bind;
        else
                dev_priv->map_mode = vmw_dma_map_populate;
  
-       if (dev_priv->map_mode == vmw_dma_map_populate && vmw_restrict_iommu)
-               dev_priv->map_mode = vmw_dma_map_bind;
        /* No TTM coherent page pool? FIXME: Ask TTM instead! */
          if (!(IS_ENABLED(CONFIG_SWIOTLB) || IS_ENABLED(CONFIG_INTEL_IOMMU)) &&
            (dev_priv->map_mode == vmw_dma_alloc_coherent))
@@@ -1565,7 -1542,7 +1542,7 @@@ static const struct file_operations vmw
  };
  
  static struct drm_driver driver = {
 -      .driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED |
 +      .driver_features =
        DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER | DRIVER_ATOMIC,
        .load = vmw_driver_load,
        .unload = vmw_driver_unload,