Skip to content

Commit 4b2b5e1

Browse files
committed
drm: Move GEM memory managers into modules
DRM core uses the GEM base object to access GEM functionality. It does not depend on individual implementations. Move the code into modules. Also move the CMA framebuffer helpers into the CMA's module, as they're not usable without CMA. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20211020131941.15367-4-tzimmermann@suse.de
1 parent 72071be commit 4b2b5e1

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

drivers/gpu/drm/Kconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ config DRM_TTM_HELPER
212212
Helpers for ttm-based gem objects
213213

214214
config DRM_GEM_CMA_HELPER
215-
bool
215+
tristate
216216
depends on DRM
217217
help
218218
Choose this if you need the GEM CMA helper functions
@@ -225,7 +225,7 @@ config DRM_KMS_CMA_HELPER
225225
Choose this if you need the KMS CMA helper functions
226226

227227
config DRM_GEM_SHMEM_HELPER
228-
bool
228+
tristate
229229
depends on DRM && MMU
230230
help
231231
Choose this if you need the GEM shmem helper functions

drivers/gpu/drm/Makefile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ drm-$(CONFIG_DRM_LEGACY) += drm_agpsupport.o drm_bufs.o drm_context.o drm_dma.o
2424
drm_scatter.o drm_vm.o
2525
drm-$(CONFIG_DRM_LIB_RANDOM) += lib/drm_random.o
2626
drm-$(CONFIG_COMPAT) += drm_ioc32.o
27-
drm-$(CONFIG_DRM_GEM_CMA_HELPER) += drm_gem_cma_helper.o
28-
drm-$(CONFIG_DRM_GEM_SHMEM_HELPER) += drm_gem_shmem_helper.o
2927
drm-$(CONFIG_DRM_PANEL) += drm_panel.o
3028
drm-$(CONFIG_OF) += drm_of.o
3129
drm-$(CONFIG_PCI) += drm_pci.o
@@ -35,6 +33,13 @@ drm-$(CONFIG_DRM_PRIVACY_SCREEN) += drm_privacy_screen.o drm_privacy_screen_x86.
3533

3634
obj-$(CONFIG_DRM_DP_AUX_BUS) += drm_dp_aux_bus.o
3735

36+
drm_cma_helper-y := drm_gem_cma_helper.o
37+
drm_cma_helper-$(CONFIG_DRM_KMS_CMA_HELPER) += drm_fb_cma_helper.o
38+
obj-$(CONFIG_DRM_GEM_CMA_HELPER) += drm_cma_helper.o
39+
40+
drm_shmem_helper-y := drm_gem_shmem_helper.o
41+
obj-$(CONFIG_DRM_GEM_SHMEM_HELPER) += drm_shmem_helper.o
42+
3843
drm_vram_helper-y := drm_gem_vram_helper.o
3944
obj-$(CONFIG_DRM_VRAM_HELPER) += drm_vram_helper.o
4045

@@ -54,7 +59,6 @@ drm_kms_helper-y := drm_bridge_connector.o drm_crtc_helper.o drm_dp_helper.o \
5459

5560
drm_kms_helper-$(CONFIG_DRM_PANEL_BRIDGE) += bridge/panel.o
5661
drm_kms_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fb_helper.o
57-
drm_kms_helper-$(CONFIG_DRM_KMS_CMA_HELPER) += drm_fb_cma_helper.o
5862
drm_kms_helper-$(CONFIG_DRM_DP_AUX_CHARDEV) += drm_dp_aux_dev.o
5963
drm_kms_helper-$(CONFIG_DRM_DP_CEC) += drm_dp_cec.o
6064

drivers/gpu/drm/drm_gem_cma_helper.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <linux/dma-mapping.h>
1414
#include <linux/export.h>
1515
#include <linux/mm.h>
16+
#include <linux/module.h>
1617
#include <linux/mutex.h>
1718
#include <linux/slab.h>
1819

@@ -578,3 +579,6 @@ drm_gem_cma_prime_import_sg_table_vmap(struct drm_device *dev,
578579
return obj;
579580
}
580581
EXPORT_SYMBOL(drm_gem_cma_prime_import_sg_table_vmap);
582+
583+
MODULE_DESCRIPTION("DRM CMA memory-management helpers");
584+
MODULE_LICENSE("GPL");

drivers/gpu/drm/drm_gem_shmem_helper.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include <linux/dma-buf.h>
77
#include <linux/export.h>
8+
#include <linux/module.h>
89
#include <linux/mutex.h>
910
#include <linux/shmem_fs.h>
1011
#include <linux/slab.h>
@@ -774,3 +775,6 @@ drm_gem_shmem_prime_import_sg_table(struct drm_device *dev,
774775
return &shmem->base;
775776
}
776777
EXPORT_SYMBOL_GPL(drm_gem_shmem_prime_import_sg_table);
778+
779+
MODULE_DESCRIPTION("DRM SHMEM memory-management helpers");
780+
MODULE_LICENSE("GPL v2");

0 commit comments

Comments
 (0)