drm/nouveau/bus: remove cpu_coherent flag
authorAlexandre Courbot <gnurou@gmail.com>
Wed, 13 Jul 2016 06:29:36 +0000 (15:29 +0900)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 14 Jul 2016 01:55:18 +0000 (11:55 +1000)
This flag's only remaining function is to ignore the uncached flag for
BOs on coherent architectures.

However the reason for allocating an object uncache on a non-coherent
architecture (namely because the cost of doing explicit flushes/
invalidations is higher than the benefit of caching the data because
accesses are few and far between) should also apply on architectures for
which coherency is maintained implicitly. Thus allocate coherent objects
as uncached on all architectures.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvkm/core/device.h
drivers/gpu/drm/nouveau/nouveau_bo.c
drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c
drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c

index 6bc712f32c8b4a0850e7445c7bb2a096464cf90d..7ea8aa7ca40859b0bcdf4cca65f57e4ba1caacd9 100644 (file)
@@ -175,7 +175,6 @@ struct nvkm_device_func {
        void (*fini)(struct nvkm_device *, bool suspend);
        resource_size_t (*resource_addr)(struct nvkm_device *, unsigned bar);
        resource_size_t (*resource_size)(struct nvkm_device *, unsigned bar);
-       bool cpu_coherent;
 };
 
 struct nvkm_device_quirk {
index 711592798fe8f87a17714c277ca267b46410c886..fbb6036235feca28cf6c37aa07d977d3701fb442 100644 (file)
@@ -209,8 +209,7 @@ nouveau_bo_new(struct drm_device *dev, int size, int align,
        nvbo->tile_flags = tile_flags;
        nvbo->bo.bdev = &drm->ttm.bdev;
 
-       if (!nvxx_device(&drm->device)->func->cpu_coherent)
-               nvbo->force_coherent = flags & TTM_PL_FLAG_UNCACHED;
+       nvbo->force_coherent = flags & TTM_PL_FLAG_UNCACHED;
 
        nvbo->page_shift = 12;
        if (drm->client.vm) {
index 62ad0300cfa5ab0af8610773ae7d5c4b49e310bb..b1b693219db3f70edbf29ae5f508141937e84e42 100644 (file)
@@ -1614,7 +1614,6 @@ nvkm_device_pci_func = {
        .fini = nvkm_device_pci_fini,
        .resource_addr = nvkm_device_pci_resource_addr,
        .resource_size = nvkm_device_pci_resource_size,
-       .cpu_coherent = !IS_ENABLED(CONFIG_ARM),
 };
 
 int
index 9b638bd905ffa471e7cb0cfb04bf0d3274c211ce..939682f18788feda2d5b30b045140bc696e476db 100644 (file)
@@ -245,7 +245,6 @@ nvkm_device_tegra_func = {
        .fini = nvkm_device_tegra_fini,
        .resource_addr = nvkm_device_tegra_resource_addr,
        .resource_size = nvkm_device_tegra_resource_size,
-       .cpu_coherent = false,
 };
 
 int