x86 PAT + write-combine should improve performance when
mmaped gems are directly accessed by CPU.
Change-Id: I4fcb41c207161f87a3f3d9ee60f773675c5f028d
Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
(cherry picked from commit
d89f3c6e059c6f51a5dd9945f2fb58b1fdff76c2)
* one will attempt to write to /dev/fb0 then he'll probably
* write to some GEM's memory, but we don't care.
*/
- vigs_fbdev->kptr = ioremap(vigs_dev->vram_base,
- vigs_gem_size(&fb_sfc->gem));
+ vigs_fbdev->kptr = ioremap_wc(vigs_dev->vram_base,
+ vigs_gem_size(&fb_sfc->gem));
if (!vigs_fbdev->kptr) {
goto fail4;
TTM_PL_FLAG_CACHED | TTM_PL_FLAG_TT | TTM_PL_FLAG_NO_EVICT;
} else if (type == VIGS_GEM_TYPE_EXECBUFFER) {
placements[0] =
- TTM_PL_FLAG_CACHED | TTM_PL_FLAG_PRIV0 | TTM_PL_FLAG_NO_EVICT;
+ TTM_PL_FLAG_WC | TTM_PL_FLAG_PRIV0 | TTM_PL_FLAG_NO_EVICT;
} else {
kfree(vigs_gem);
return -EINVAL;
}
placements[0] =
- TTM_PL_FLAG_CACHED | TTM_PL_FLAG_VRAM | TTM_PL_FLAG_NO_EVICT;
+ TTM_PL_FLAG_WC | TTM_PL_FLAG_VRAM | TTM_PL_FLAG_NO_EVICT;
memset(&placement, 0, sizeof(placement));
vigs_gem_kunmap(vigs_gem);
placements[0] =
- TTM_PL_FLAG_CACHED | TTM_PL_FLAG_VRAM;
+ TTM_PL_FLAG_WC | TTM_PL_FLAG_VRAM;
placements[1] =
TTM_PL_FLAG_CACHED | TTM_PL_FLAG_TT | TTM_PL_FLAG_NO_EVICT;
man->flags = TTM_MEMTYPE_FLAG_FIXED |
TTM_MEMTYPE_FLAG_MAPPABLE;
man->available_caching = TTM_PL_MASK_CACHING;
- man->default_caching = TTM_PL_FLAG_CACHED;
+ man->default_caching = TTM_PL_FLAG_WC;
break;
default:
DRM_ERROR("unsupported memory type: %u\n", (unsigned)type);
* It's GPU memory page fault. Move this buffer into VRAM.
*/
- placements[0] = TTM_PL_FLAG_CACHED | TTM_PL_FLAG_VRAM;
+ placements[0] = TTM_PL_FLAG_WC | TTM_PL_FLAG_VRAM;
memset(&placement, 0, sizeof(placement));