if (!obj)
                return ERR_PTR(-ENOMEM);
 
+       shmem = to_drm_gem_shmem_obj(obj);
+
        if (!obj->funcs)
                obj->funcs = &drm_gem_shmem_funcs;
 
-       if (private)
+       if (private) {
                drm_gem_private_object_init(dev, obj, size);
-       else
+               shmem->map_wc = false; /* dma-buf mappings use always writecombine */
+       } else {
                ret = drm_gem_object_init(dev, obj, size);
+       }
        if (ret)
                goto err_free;
 
        if (ret)
                goto err_release;
 
-       shmem = to_drm_gem_shmem_obj(obj);
        mutex_init(&shmem->pages_lock);
        mutex_init(&shmem->vmap_lock);
        INIT_LIST_HEAD(&shmem->madv_list);
                if (ret)
                        goto err_zero_use;
 
-               if (!shmem->map_cached)
+               if (shmem->map_wc)
                        prot = pgprot_writecombine(prot);
                shmem->vaddr = vmap(shmem->pages, obj->size >> PAGE_SHIFT,
                                    VM_MAP, prot);
        shmem = kzalloc(sizeof(*shmem), GFP_KERNEL);
        if (!shmem)
                return NULL;
-       shmem->map_cached = true;
 
        return &shmem->base;
 }
 
        vma->vm_flags |= VM_MIXEDMAP | VM_DONTEXPAND;
        vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
-       if (!shmem->map_cached)
+       if (shmem->map_wc)
                vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
        vma->vm_ops = &drm_gem_shmem_vm_ops;
 
 
        INIT_LIST_HEAD(&obj->mappings.list);
        mutex_init(&obj->mappings.lock);
        obj->base.base.funcs = &panfrost_gem_funcs;
-       obj->base.map_cached = pfdev->coherent;
+       obj->base.map_wc = !pfdev->coherent;
 
        return &obj->base.base;
 }
 
        unsigned int vmap_use_count;
 
        /**
-        * @map_cached: map object cached (instead of using writecombine).
+        * @map_wc: map object write-combined (instead of using shmem defaults).
         */
-       bool map_cached;
+       bool map_wc;
 };
 
 #define to_drm_gem_shmem_obj(obj) \