linux/drivers/gpu/drm/nouveau/nvkm/subdev
Alexandre Courbot b306712d92 drm/nouveau/instmem/gk20a: use DMA API CPU mapping
Commit 69c4938249 ("drm/nouveau/instmem/gk20a: use direct CPU access")
tried to be smart while using the DMA-API by managing the CPU mappings of
buffers allocated with the DMA-API by itself. In doing so, it relied
on dma_to_phys() which is an architecture-private function not
available everywhere. This broke the build on several architectures.

Since there is no reliable and portable way to obtain the physical
address of a DMA-API buffer, stop trying to be smart and just use the
CPU mapping that the DMA-API can provide. This means that buffers will
be CPU-mapped for all their life as opposed to when we need them, but
anyway using the DMA-API here is a fallback for when no IOMMU is
available so we should not expect optimal behavior.

This makes the IOMMU and DMA-API implementations of instmem diverge
enough that we should maybe put them into separate files...

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2016-01-11 11:17:40 +10:00
..
bar drm/nouveau/device: cleaner abstraction for device resource functions 2015-08-28 12:40:48 +10:00
bios drm/nouveau/bios/fan: hardcode the fan mode to linear 2015-12-18 09:01:22 +10:00
bus drm/nouveau/bus/hwsq: Implement VBLANK waiting heuristic 2015-11-03 15:02:18 +10:00
clk drm/nouveau/clk/g84: Enable reclocking for GDDR3 G94-G200 2015-11-03 15:02:18 +10:00
devinit drm/nouveau/device: cleaner abstraction for device resource functions 2015-08-28 12:40:48 +10:00
fb drm/nouveau/nvkm: add/remove 0's to make 7 (or 9)-nibble constants use 8 nibbles 2016-01-11 11:17:40 +10:00
fuse drm/nouveau/fuse: convert to new-style nvkm_subdev 2015-08-28 12:40:43 +10:00
gpio drm/nouveau/fb/ramgt215: Transform GPIO ramfuc method from FBVREF-specific to generic 2015-11-03 15:02:18 +10:00
i2c drm/nouveau/i2c: convert to new-style nvkm_subdev 2015-08-28 12:40:43 +10:00
ibus drm/nouveau/ibus/gf100: increase wait timeout to avoid read faults 2015-11-03 15:02:18 +10:00
instmem drm/nouveau/instmem/gk20a: use DMA API CPU mapping 2016-01-11 11:17:40 +10:00
ltc drm/nouveau/ltc/gf100: add flush/invalidate functions 2015-11-03 15:02:18 +10:00
mc drm/nouveau/mc: move device irq handling to platform-specific code 2015-08-28 12:40:48 +10:00
mmu drm/nouveau/device: remove pci/platform_device from common struct 2015-08-28 12:40:49 +10:00
mxm drm/nouveau/device: remove pci/platform_device from common struct 2015-08-28 12:40:49 +10:00
pci drm/nouveau/pci: Handle 5-bit and 8-bit tag field 2015-11-03 15:02:18 +10:00
pmu drm/nouveau/pmu: remove whitelist for PGOB-exit WAR, enable by default 2015-12-09 10:33:47 +10:00
therm drm/nouveau/nvkm: add/remove 0's to make 7 (or 9)-nibble constants use 8 nibbles 2016-01-11 11:17:40 +10:00
timer drm/nouveau/tmr: convert to new-style nvkm_subdev 2015-08-28 12:40:45 +10:00
volt drm/nouveau/volt/pwm/gk104: fix an off-by-one resulting in the voltage not being set 2015-11-25 15:37:45 +10:00
Kbuild drm/nouveau/pci: new subdev 2015-08-28 12:40:48 +10:00