linux/drivers/gpu/drm/nouveau
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
..
dispnv04 drm/nouveau: Constify function pointer structs 2015-12-15 13:47:45 +01:00
include drm/nouveau/pmu: remove whitelist for PGOB-exit WAR, enable by default 2015-12-09 10:33:47 +10:00
nvif drm/nouveau/nvif: device time mthd 2015-08-28 12:40:33 +10:00
nvkm drm/nouveau/instmem/gk20a: use DMA API CPU mapping 2016-01-11 11:17:40 +10:00
Kbuild drm/nouveau/pci: merge agp handling from nouveau drm 2015-08-28 12:40:49 +10:00
Kconfig drm/nouveau: merge nouveau_platform.ko into nouveau.ko 2015-01-22 12:15:09 +10:00
nouveau_abi16.c drm/nouveau/abi16: implement limited interoperability with usif/nvif 2015-11-03 15:02:18 +10:00
nouveau_abi16.h drm/nouveau/abi16: implement limited interoperability with usif/nvif 2015-11-03 15:02:18 +10:00
nouveau_acpi.c drm/nouveau/bios: return actual size of the buffer retrieved via _ROM 2015-11-25 15:31:21 +10:00
nouveau_acpi.h drm/nouveau/device: remove pci/platform_device from common struct 2015-08-28 12:40:49 +10:00
nouveau_backlight.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nouveau_bios.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nouveau_bios.h
nouveau_bo.c drm: Remove __OS_HAS_AGP 2015-09-30 10:44:48 +02:00
nouveau_bo.h drm/nouveau: finalise nvkm namespace switch (no binary change) 2015-01-22 12:18:07 +10:00
nouveau_chan.c drm/nouveau: remove unnecessary usage of object handles 2015-11-03 15:02:18 +10:00
nouveau_chan.h drm/nouveau: remove unnecessary usage of object handles 2015-11-03 15:02:18 +10:00
nouveau_connector.c drm/nouveau/kms: allow 225/297MHz pixel clocks for HDMI on Fermi/Kepler 2016-01-11 11:17:40 +10:00
nouveau_connector.h drm/nouveau: finalise nvkm namespace switch (no binary change) 2015-01-22 12:18:07 +10:00
nouveau_crtc.h drm/nouveau: Use private save/restore hooks for CRTCs 2015-12-08 16:13:49 +01:00
nouveau_debugfs.c
nouveau_debugfs.h
nouveau_display.c Linux 4.4-rc4 2015-12-08 11:04:26 +10:00
nouveau_display.h drm: Pass the user drm_mode_fb_cmd2 as const to .fb_create() 2015-11-24 11:47:38 +01:00
nouveau_dma.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nouveau_dma.h drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nouveau_dp.c drm/nouveau/i2c: transition pad/ports away from being based on nvkm_object 2015-08-28 12:40:29 +10:00
nouveau_drm.c drm: use dev_name as default unique name in drm_dev_alloc() 2015-12-15 13:56:06 +01:00
nouveau_drm.h drm/nouveau/nvif: allow userspace access to its own client object 2015-11-25 15:31:21 +10:00
nouveau_encoder.h drm: Constify drm_encoder_slave_funcs 2015-12-15 13:41:17 +01:00
nouveau_fbcon.c drm/nouveau/fbcon: take runpm reference when userspace has an open fd 2015-10-12 13:54:40 +10:00
nouveau_fbcon.h drm: Remove unused fbdev_list members 2015-11-24 11:41:52 +01:00
nouveau_fence.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nouveau_fence.h drm/nouveau/sw: turn flip completion into an event 2015-08-28 12:40:38 +10:00
nouveau_gem.c drm/nouveau/abi16: remove unused argument from nouveau_abi16_get() 2015-11-03 15:02:18 +10:00
nouveau_gem.h drm: Pass dma-buf as argument to gem_prime_import_sg_table 2014-09-30 14:04:00 +02:00
nouveau_hwmon.c drm/nouveau/therm: convert to new-style nvkm_subdev 2015-08-28 12:40:45 +10:00
nouveau_hwmon.h
nouveau_ioc32.c
nouveau_ioctl.h
nouveau_nvif.c drm/nouveau/client: tidy ctor/dtor interfaces 2015-08-28 12:40:30 +10:00
nouveau_platform.c drm/nouveau/gk20a: Add MODULE_FIRMWARE for gk20a 2016-01-11 11:17:40 +10:00
nouveau_platform.h drm/nouveau/tegra: merge platform setup from nouveau drm 2015-08-28 12:40:49 +10:00
nouveau_prime.c drm/nouveau: teach nouveau_bo_pin() how to force a contig vram allocation 2014-12-02 15:44:09 +10:00
nouveau_reg.h drm/nouveau/sw: rename from software (no binary change) 2015-01-22 12:17:47 +10:00
nouveau_sgdma.c drm/nouveau: finalise nvkm namespace switch (no binary change) 2015-01-22 12:18:07 +10:00
nouveau_sysfs.c drm/nouveau: remove unnecessary usage of object handles 2015-11-03 15:02:18 +10:00
nouveau_sysfs.h drm/nouveau: Display Nouveau boot options at launch 2014-09-15 22:24:58 +10:00
nouveau_ttm.c nouveau: don't call pci_dma_supported 2015-11-10 16:32:11 -08:00
nouveau_ttm.h
nouveau_usif.c drm/nouveau/nvif: allow userspace access to its own client object 2015-11-25 15:31:21 +10:00
nouveau_usif.h
nouveau_vga.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nouveau_vga.h
nv04_fbcon.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nv04_fence.c drm/nouveau/sw/nv04: replace direct context access with GetRef method 2015-08-28 12:40:37 +10:00
nv10_fence.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nv10_fence.h
nv17_fence.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nv50_display.c drm/nouveau/kms: no need to check for empty edid before drm_detect_hdmi_monitor 2016-01-11 11:17:40 +10:00
nv50_display.h
nv50_fbcon.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nv50_fence.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nv84_fence.c drm/nouveau/fifo: convert user classes to new-style nvkm_object 2015-08-28 12:40:40 +10:00
nvc0_fbcon.c drm/nouveau/nvif: simplify and tidy library interfaces 2015-08-28 12:40:32 +10:00
nvc0_fence.c