Fixes
 *) an implicit function declaration on mips,
 *) a defined but not used label on !CONFIG_INTEL_IOMMU
 *) Hopefully a couple of sparse warnings where we implicitly typecast
    integer to __le32 and vice versa.

Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
Reviewed-by: Brian Paul <brianp at vmware.com>
---
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c |    9 ++++++++-
 drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c |    7 +++++--
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 0b5c781..a278581 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -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;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c
index 6d09523..6ef0b03 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c
@@ -145,7 +145,9 @@ static void vmw_gmr_free_descriptors(struct device *dev, 
dma_addr_t desc_dma,
                }

                page_virtual = kmap_atomic(page);
-               desc_dma = page_virtual[desc_per_page].ppn << PAGE_SHIFT;
+               desc_dma = (dma_addr_t)
+                       le32_to_cpu(page_virtual[desc_per_page].ppn) <<
+                       PAGE_SHIFT;
                kunmap_atomic(page_virtual);

                __free_page(page);
@@ -217,7 +219,8 @@ static int vmw_gmr_build_descriptors(struct device *dev,
        desc_dma = 0;
        list_for_each_entry_reverse(page, desc_pages, lru) {
                page_virtual = kmap_atomic(page);
-               page_virtual[desc_per_page].ppn = desc_dma >> PAGE_SHIFT;
+               page_virtual[desc_per_page].ppn = cpu_to_le32
+                       (desc_dma >> PAGE_SHIFT);
                kunmap_atomic(page_virtual);
                desc_dma = dma_map_page(dev, page, 0, PAGE_SIZE,
                                        DMA_TO_DEVICE);
-- 
1.7.10.4

Reply via email to