|
@@ -453,12 +453,13 @@ static void vmw_get_initial_size(struct vmw_private *dev_priv)
|
|
|
*/
|
|
|
static int vmw_dma_select_mode(struct vmw_private *dev_priv)
|
|
|
{
|
|
|
- const struct dma_map_ops *dma_ops = get_dma_ops(dev_priv->dev->dev);
|
|
|
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_bind] = "Giving up DMA mappings early."};
|
|
|
+#ifdef CONFIG_X86
|
|
|
+ const struct dma_map_ops *dma_ops = get_dma_ops(dev_priv->dev->dev);
|
|
|
|
|
|
#ifdef CONFIG_INTEL_IOMMU
|
|
|
if (intel_iommu_enabled) {
|
|
@@ -482,7 +483,9 @@ static int vmw_dma_select_mode(struct vmw_private *dev_priv)
|
|
|
dev_priv->map_mode = vmw_dma_map_populate;
|
|
|
#endif
|
|
|
|
|
|
+#ifdef CONFIG_INTEL_IOMMU
|
|
|
out_fixup:
|
|
|
+#endif
|
|
|
if (dev_priv->map_mode == vmw_dma_map_populate &&
|
|
|
vmw_restrict_iommu)
|
|
|
dev_priv->map_mode = vmw_dma_map_bind;
|
|
@@ -498,6 +501,10 @@ out_fixup:
|
|
|
return -EINVAL;
|
|
|
#endif
|
|
|
|
|
|
+#else /* CONFIG_X86 */
|
|
|
+ dev_priv->map_mode = vmw_dma_map_populate;
|
|
|
+#endif /* CONFIG_X86 */
|
|
|
+
|
|
|
DRM_INFO("DMA map mode: %s\n", names[dev_priv->map_mode]);
|
|
|
|
|
|
return 0;
|