diff options
author | Karol Herbst <karolherbst@gmail.com> | 2016-09-18 06:21:56 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2016-09-22 03:33:30 -0400 |
commit | bad3d80fd001d3b74ab8bb3d561bc4d1b08797d3 (patch) | |
tree | a7846936bf72ab6ea8817ce65b17aa0dfc7bee0c | |
parent | 666ca3d8f19082f40745d75f3cc7cc0200ee87e3 (diff) |
drm/nouveau: Revert "bus: remove cpu_coherent flag"
This reverts commit aff51175cdbf345740ec9203eff88e772af88059.
The commit caused fence timeouts within nvc0_screen_destroy and most likely
other places as well.
The most obvious effect is, that userspace processes take minutes to
actually quit.
Signed-off-by: Karol Herbst <karolherbst@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/include/nvkm/core/device.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_bo.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 1 |
4 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/device.h b/drivers/gpu/drm/nouveau/include/nvkm/core/device.h index 7ea8aa7ca408..6bc712f32c8b 100644 --- a/drivers/gpu/drm/nouveau/include/nvkm/core/device.h +++ b/drivers/gpu/drm/nouveau/include/nvkm/core/device.h | |||
@@ -175,6 +175,7 @@ struct nvkm_device_func { | |||
175 | void (*fini)(struct nvkm_device *, bool suspend); | 175 | void (*fini)(struct nvkm_device *, bool suspend); |
176 | resource_size_t (*resource_addr)(struct nvkm_device *, unsigned bar); | 176 | resource_size_t (*resource_addr)(struct nvkm_device *, unsigned bar); |
177 | resource_size_t (*resource_size)(struct nvkm_device *, unsigned bar); | 177 | resource_size_t (*resource_size)(struct nvkm_device *, unsigned bar); |
178 | bool cpu_coherent; | ||
178 | }; | 179 | }; |
179 | 180 | ||
180 | struct nvkm_device_quirk { | 181 | struct nvkm_device_quirk { |
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 6190035edfea..864323b19cf7 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c | |||
@@ -209,7 +209,8 @@ nouveau_bo_new(struct drm_device *dev, int size, int align, | |||
209 | nvbo->tile_flags = tile_flags; | 209 | nvbo->tile_flags = tile_flags; |
210 | nvbo->bo.bdev = &drm->ttm.bdev; | 210 | nvbo->bo.bdev = &drm->ttm.bdev; |
211 | 211 | ||
212 | nvbo->force_coherent = flags & TTM_PL_FLAG_UNCACHED; | 212 | if (!nvxx_device(&drm->device)->func->cpu_coherent) |
213 | nvbo->force_coherent = flags & TTM_PL_FLAG_UNCACHED; | ||
213 | 214 | ||
214 | nvbo->page_shift = 12; | 215 | nvbo->page_shift = 12; |
215 | if (drm->client.vm) { | 216 | if (drm->client.vm) { |
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c index b1b693219db3..62ad0300cfa5 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | |||
@@ -1614,6 +1614,7 @@ nvkm_device_pci_func = { | |||
1614 | .fini = nvkm_device_pci_fini, | 1614 | .fini = nvkm_device_pci_fini, |
1615 | .resource_addr = nvkm_device_pci_resource_addr, | 1615 | .resource_addr = nvkm_device_pci_resource_addr, |
1616 | .resource_size = nvkm_device_pci_resource_size, | 1616 | .resource_size = nvkm_device_pci_resource_size, |
1617 | .cpu_coherent = !IS_ENABLED(CONFIG_ARM), | ||
1617 | }; | 1618 | }; |
1618 | 1619 | ||
1619 | int | 1620 | int |
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c index 939682f18788..9b638bd905ff 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | |||
@@ -245,6 +245,7 @@ nvkm_device_tegra_func = { | |||
245 | .fini = nvkm_device_tegra_fini, | 245 | .fini = nvkm_device_tegra_fini, |
246 | .resource_addr = nvkm_device_tegra_resource_addr, | 246 | .resource_addr = nvkm_device_tegra_resource_addr, |
247 | .resource_size = nvkm_device_tegra_resource_size, | 247 | .resource_size = nvkm_device_tegra_resource_size, |
248 | .cpu_coherent = false, | ||
248 | }; | 249 | }; |
249 | 250 | ||
250 | int | 251 | int |