linux/drivers/gpu/drm/omapdrm
Tomi Valkeinen 23b4822528 drm/omap: add OMAP_BO flags to affect buffer allocation
On SoCs with DMM/TILER, we have two ways to allocate buffers: normal
dma_alloc or via DMM (which basically functions as an IOMMU). DMM can
map 128MB at a time, and we only map the DMM buffers when they are used
(i.e. not at alloc time). If DMM is present, omapdrm always uses DMM.

There are use cases that require lots of big buffers that are being used
at the same time by different IPs. At the moment the userspace has a
hard maximum of 128MB.

This patch adds three new flags that can be used by the userspace to
solve the situation:

OMAP_BO_MEM_CONTIG: The driver will use dma_alloc to get the memory.
This can be used to avoid DMM if the userspace knows it needs more than
128M of memory at the same time.

OMAP_BO_MEM_DMM: The driver will use DMM to get the memory. There's not
much use for this flag at the moment, as on platforms with DMM it is
used by default, but it's here for completeness.

OMAP_BO_MEM_PIN: The driver will pin the memory at alloc time, and keep
it pinned. This can be used to 1) get an error at alloc time if DMM
space is full, and 2) get rid of the constant pin/unpin operations which
may have some effect on performance.

If none of the flags are given, the behavior is the same as currently.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191010120000.1421-9-jjhiblot@ti.com
2019-10-11 17:02:44 +03:00
..
displays drm/omap: displays: Remove unused panel drivers 2019-08-16 21:10:21 +02:00
dss drm/omap: hdmi4: fix use of uninitialized var 2019-10-04 11:30:28 +03:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
omap_connector.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
omap_connector.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
omap_crtc.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
omap_crtc.h drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
omap_debugfs.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
omap_dmm_priv.h drm/omap: partial workaround for DRA7xx DMM errata i878 2018-10-02 09:36:56 +03:00
omap_dmm_tiler.c drm/omap: partial workaround for DRA7xx DMM errata i878 2018-10-02 09:36:56 +03:00
omap_dmm_tiler.h drm/omap: remove OMAP_BO_TILED define 2019-10-11 17:02:32 +03:00
omap_drv.c Merge drm/drm-next into drm-misc-next 2019-10-03 16:38:50 +02:00
omap_drv.h Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
omap_encoder.c drm: Stop including drm_bridge.h from drm_crtc.h 2019-08-28 22:11:03 +02:00
omap_encoder.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
omap_fb.c drm/omap: remove OMAP_BO_TILED define 2019-10-11 17:02:32 +03:00
omap_fb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
omap_fbdev.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
omap_fbdev.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
omap_gem_dmabuf.c drm/omap: remove OMAP_BO_TILED define 2019-10-11 17:02:32 +03:00
omap_gem.c drm/omap: add OMAP_BO flags to affect buffer allocation 2019-10-11 17:02:44 +03:00
omap_gem.h Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
omap_irq.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
omap_irq.h drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
omap_plane.c drm/omap: Add 'alpha' and 'pixel blend mode' plane properties 2019-08-23 10:15:11 +03:00
omap_plane.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
tcm-sita.c drm/omap: silence unititialized variable warning 2018-05-07 10:19:11 -04:00
tcm.h drm: omapdrm: Use kernel integer types 2018-03-01 09:09:10 +02:00
TODO