Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aaee1d1e authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge branch 'linux-4.8' of git://github.com/skeggsb/linux into drm-fixes

nouveau: couple of fixes.

* 'linux-4.8' of git://github.com/skeggsb/linux:
  drm/nouveau: Revert "bus: remove cpu_coherent flag"
  drm/nouveau/fifo/nv04: avoid ramht race against cookie insertion
parents b86f9faa bad3d80f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -175,6 +175,7 @@ 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 {
+2 −1
Original line number Diff line number Diff line
@@ -209,6 +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->page_shift = 12;
+1 −0
Original line number Diff line number Diff line
@@ -1614,6 +1614,7 @@ 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
+1 −0
Original line number Diff line number Diff line
@@ -245,6 +245,7 @@ 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
+3 −0
Original line number Diff line number Diff line
@@ -37,7 +37,10 @@ nv04_fifo_dma_object_dtor(struct nvkm_fifo_chan *base, int cookie)
{
	struct nv04_fifo_chan *chan = nv04_fifo_chan(base);
	struct nvkm_instmem *imem = chan->fifo->base.engine.subdev.device->imem;

	mutex_lock(&chan->fifo->base.engine.subdev.mutex);
	nvkm_ramht_remove(imem->ramht, cookie);
	mutex_unlock(&chan->fifo->base.engine.subdev.mutex);
}

static int