2017-11-01 15:07:57 +01:00
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
2015-10-29 09:36:23 +01:00
|
|
|
|
2008-05-29 10:09:59 +10:00
|
|
|
# Makefile for the drm device driver. This driver provides support for the
|
|
|
|
|
# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
|
|
|
|
|
|
2022-09-11 23:28:47 -06:00
|
|
|
CFLAGS-$(CONFIG_DRM_USE_DYNAMIC_DEBUG) += -DDYNAMIC_DEBUG_MODULE
|
|
|
|
|
|
2024-03-05 11:07:35 +02:00
|
|
|
# Unconditionally enable W=1 warnings locally
|
2025-10-23 22:01:36 +02:00
|
|
|
# --- begin copy-paste W=1 warnings from scripts/Makefile.warn
|
2024-03-05 11:07:35 +02:00
|
|
|
subdir-ccflags-y += -Wextra -Wunused -Wno-unused-parameter
|
|
|
|
|
subdir-ccflags-y += $(call cc-option, -Wrestrict)
|
|
|
|
|
subdir-ccflags-y += -Wmissing-format-attribute
|
|
|
|
|
subdir-ccflags-y += -Wold-style-definition
|
|
|
|
|
subdir-ccflags-y += -Wmissing-include-dirs
|
|
|
|
|
subdir-ccflags-y += $(call cc-option, -Wunused-but-set-variable)
|
|
|
|
|
subdir-ccflags-y += $(call cc-option, -Wunused-const-variable)
|
|
|
|
|
subdir-ccflags-y += $(call cc-option, -Wpacked-not-aligned)
|
|
|
|
|
subdir-ccflags-y += $(call cc-option, -Wformat-overflow)
|
|
|
|
|
# FIXME: fix -Wformat-truncation warnings and uncomment
|
|
|
|
|
#subdir-ccflags-y += $(call cc-option, -Wformat-truncation)
|
|
|
|
|
subdir-ccflags-y += $(call cc-option, -Wstringop-truncation)
|
|
|
|
|
# The following turn off the warnings enabled by -Wextra
|
|
|
|
|
ifeq ($(findstring 2, $(KBUILD_EXTRA_WARN)),)
|
|
|
|
|
subdir-ccflags-y += -Wno-missing-field-initializers
|
|
|
|
|
subdir-ccflags-y += -Wno-shift-negative-value
|
|
|
|
|
endif
|
|
|
|
|
ifeq ($(findstring 3, $(KBUILD_EXTRA_WARN)),)
|
|
|
|
|
subdir-ccflags-y += -Wno-sign-compare
|
|
|
|
|
endif
|
|
|
|
|
# --- end copy-paste
|
|
|
|
|
|
2024-03-05 11:07:36 +02:00
|
|
|
# Enable -Werror in CI and development
|
|
|
|
|
subdir-ccflags-$(CONFIG_DRM_WERROR) += -Werror
|
|
|
|
|
|
2022-10-11 17:08:30 +03:00
|
|
|
drm-y := \
|
|
|
|
|
drm_atomic.o \
|
|
|
|
|
drm_atomic_uapi.o \
|
|
|
|
|
drm_auth.o \
|
|
|
|
|
drm_blend.o \
|
|
|
|
|
drm_bridge.o \
|
|
|
|
|
drm_cache.o \
|
|
|
|
|
drm_color_mgmt.o \
|
2025-11-14 17:01:29 -07:00
|
|
|
drm_colorop.o \
|
2022-10-11 17:08:30 +03:00
|
|
|
drm_connector.o \
|
|
|
|
|
drm_crtc.o \
|
|
|
|
|
drm_displayid.o \
|
|
|
|
|
drm_drv.o \
|
|
|
|
|
drm_dumb_buffers.o \
|
|
|
|
|
drm_edid.o \
|
2023-10-31 12:16:43 +02:00
|
|
|
drm_eld.o \
|
2022-10-11 17:08:30 +03:00
|
|
|
drm_encoder.o \
|
|
|
|
|
drm_file.o \
|
|
|
|
|
drm_fourcc.o \
|
|
|
|
|
drm_framebuffer.o \
|
|
|
|
|
drm_gem.o \
|
|
|
|
|
drm_ioctl.o \
|
|
|
|
|
drm_lease.o \
|
|
|
|
|
drm_managed.o \
|
|
|
|
|
drm_mm.o \
|
|
|
|
|
drm_mode_config.o \
|
|
|
|
|
drm_mode_object.o \
|
|
|
|
|
drm_modes.o \
|
|
|
|
|
drm_modeset_lock.o \
|
|
|
|
|
drm_plane.o \
|
|
|
|
|
drm_prime.o \
|
|
|
|
|
drm_print.o \
|
|
|
|
|
drm_property.o \
|
2024-09-19 20:53:43 +02:00
|
|
|
drm_rect.o \
|
2022-10-11 17:08:30 +03:00
|
|
|
drm_syncobj.o \
|
|
|
|
|
drm_sysfs.o \
|
|
|
|
|
drm_trace_points.o \
|
|
|
|
|
drm_vblank.o \
|
|
|
|
|
drm_vblank_work.o \
|
|
|
|
|
drm_vma_manager.o \
|
|
|
|
|
drm_writeback.o
|
2024-10-14 10:55:25 +02:00
|
|
|
drm-$(CONFIG_DRM_CLIENT) += \
|
|
|
|
|
drm_client.o \
|
|
|
|
|
drm_client_event.o \
|
2025-11-10 16:44:22 +01:00
|
|
|
drm_client_modeset.o \
|
|
|
|
|
drm_client_sysrq.o
|
2008-05-29 10:09:59 +10:00
|
|
|
drm-$(CONFIG_COMPAT) += drm_ioc32.o
|
2013-08-30 13:36:43 +02:00
|
|
|
drm-$(CONFIG_DRM_PANEL) += drm_panel.o
|
2014-06-15 11:07:12 +01:00
|
|
|
drm-$(CONFIG_OF) += drm_of.o
|
2019-12-03 11:03:55 +01:00
|
|
|
drm-$(CONFIG_PCI) += drm_pci.o
|
2022-10-11 17:08:30 +03:00
|
|
|
drm-$(CONFIG_DEBUG_FS) += \
|
|
|
|
|
drm_debugfs.o \
|
|
|
|
|
drm_debugfs_crc.o
|
2017-09-12 11:19:26 +03:00
|
|
|
drm-$(CONFIG_DRM_LOAD_EDID_FIRMWARE) += drm_edid_load.o
|
2022-10-11 17:08:30 +03:00
|
|
|
drm-$(CONFIG_DRM_PRIVACY_SCREEN) += \
|
|
|
|
|
drm_privacy_screen.o \
|
|
|
|
|
drm_privacy_screen_x86.o
|
2022-10-31 15:28:35 +02:00
|
|
|
drm-$(CONFIG_DRM_ACCEL) += ../../accel/drm_accel.o
|
2024-04-09 18:30:41 +02:00
|
|
|
drm-$(CONFIG_DRM_PANIC) += drm_panic.o
|
2024-12-04 16:45:00 +01:00
|
|
|
drm-$(CONFIG_DRM_DRAW) += drm_draw.o
|
2024-08-22 09:33:57 +02:00
|
|
|
drm-$(CONFIG_DRM_PANIC_SCREEN_QR_CODE) += drm_panic_qr.o
|
2026-03-04 13:14:08 +05:30
|
|
|
drm-$(CONFIG_DRM_RAS) += drm_ras.o drm_ras_nl.o drm_ras_genl_family.o
|
2022-04-21 09:31:01 +02:00
|
|
|
obj-$(CONFIG_DRM) += drm.o
|
2008-05-29 10:09:59 +10:00
|
|
|
|
2022-04-21 09:31:01 +02:00
|
|
|
obj-$(CONFIG_DRM_PANEL_ORIENTATION_QUIRKS) += drm_panel_orientation_quirks.o
|
2024-11-11 19:09:35 +01:00
|
|
|
obj-$(CONFIG_DRM_PANEL_BACKLIGHT_QUIRKS) += drm_panel_backlight_quirks.o
|
2022-04-21 09:31:01 +02:00
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Memory-management helpers
|
|
|
|
|
#
|
2022-04-07 08:17:51 +02:00
|
|
|
#
|
|
|
|
|
obj-$(CONFIG_DRM_EXEC) += drm_exec.o
|
2023-09-20 16:42:35 +02:00
|
|
|
obj-$(CONFIG_DRM_GPUVM) += drm_gpuvm.o
|
2025-06-19 15:40:33 +02:00
|
|
|
|
|
|
|
|
drm_gpusvm_helper-y := \
|
2026-01-21 10:10:47 +01:00
|
|
|
drm_gpusvm.o
|
|
|
|
|
drm_gpusvm_helper-$(CONFIG_ZONE_DEVICE) += \
|
2025-12-19 12:33:03 +01:00
|
|
|
drm_pagemap.o\
|
|
|
|
|
drm_pagemap_util.o
|
2026-01-21 10:10:47 +01:00
|
|
|
|
2025-06-19 15:40:33 +02:00
|
|
|
obj-$(CONFIG_DRM_GPUSVM) += drm_gpusvm_helper.o
|
2022-04-21 09:31:01 +02:00
|
|
|
|
|
|
|
|
obj-$(CONFIG_DRM_BUDDY) += drm_buddy.o
|
2021-11-12 14:32:27 +01:00
|
|
|
|
2022-08-02 02:04:03 +02:00
|
|
|
drm_dma_helper-y := drm_gem_dma_helper.o
|
2023-03-13 16:51:14 +01:00
|
|
|
drm_dma_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fbdev_dma.o
|
2022-08-02 02:04:03 +02:00
|
|
|
drm_dma_helper-$(CONFIG_DRM_KMS_HELPER) += drm_fb_dma_helper.o
|
|
|
|
|
obj-$(CONFIG_DRM_GEM_DMA_HELPER) += drm_dma_helper.o
|
2021-10-20 15:19:41 +02:00
|
|
|
|
|
|
|
|
drm_shmem_helper-y := drm_gem_shmem_helper.o
|
2024-04-19 10:29:01 +02:00
|
|
|
drm_shmem_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fbdev_shmem.o
|
2021-10-20 15:19:41 +02:00
|
|
|
obj-$(CONFIG_DRM_GEM_SHMEM_HELPER) += drm_shmem_helper.o
|
|
|
|
|
|
2023-02-24 10:51:50 +01:00
|
|
|
drm_suballoc_helper-y := drm_suballoc.o
|
|
|
|
|
obj-$(CONFIG_DRM_SUBALLOC_HELPER) += drm_suballoc_helper.o
|
|
|
|
|
|
2020-03-31 10:12:38 +02:00
|
|
|
drm_vram_helper-y := drm_gem_vram_helper.o
|
2019-05-08 10:26:11 +02:00
|
|
|
obj-$(CONFIG_DRM_VRAM_HELPER) += drm_vram_helper.o
|
|
|
|
|
|
2019-09-04 07:47:35 +02:00
|
|
|
drm_ttm_helper-y := drm_gem_ttm_helper.o
|
2024-04-19 10:29:35 +02:00
|
|
|
drm_ttm_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fbdev_ttm.o
|
2019-09-04 07:47:35 +02:00
|
|
|
obj-$(CONFIG_DRM_TTM_HELPER) += drm_ttm_helper.o
|
|
|
|
|
|
2022-04-21 09:31:01 +02:00
|
|
|
#
|
|
|
|
|
# Modesetting helpers
|
|
|
|
|
#
|
|
|
|
|
|
2022-10-11 17:08:30 +03:00
|
|
|
drm_kms_helper-y := \
|
|
|
|
|
drm_atomic_helper.o \
|
|
|
|
|
drm_atomic_state_helper.o \
|
2025-03-13 13:00:02 +01:00
|
|
|
drm_bridge_helper.o \
|
2022-10-11 17:08:30 +03:00
|
|
|
drm_crtc_helper.o \
|
|
|
|
|
drm_damage_helper.o \
|
|
|
|
|
drm_flip_work.o \
|
|
|
|
|
drm_format_helper.o \
|
|
|
|
|
drm_gem_atomic_helper.o \
|
|
|
|
|
drm_gem_framebuffer_helper.o \
|
|
|
|
|
drm_kms_helper_common.o \
|
|
|
|
|
drm_modeset_helper.o \
|
|
|
|
|
drm_plane_helper.o \
|
|
|
|
|
drm_probe_helper.o \
|
|
|
|
|
drm_self_refresh_helper.o \
|
2025-09-16 10:36:19 +02:00
|
|
|
drm_simple_kms_helper.o \
|
|
|
|
|
drm_vblank_helper.o
|
2017-06-06 16:31:50 +02:00
|
|
|
drm_kms_helper-$(CONFIG_DRM_PANEL_BRIDGE) += bridge/panel.o
|
2024-10-14 10:55:26 +02:00
|
|
|
drm_kms_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fb_helper.o
|
2009-09-08 11:08:32 +10:00
|
|
|
obj-$(CONFIG_DRM_KMS_HELPER) += drm_kms_helper.o
|
2022-04-21 09:31:01 +02:00
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Drivers and the rest
|
|
|
|
|
#
|
|
|
|
|
|
2022-12-01 16:11:33 +01:00
|
|
|
obj-y += tests/
|
2009-09-07 15:45:33 +10:00
|
|
|
|
2019-07-22 12:43:11 +02:00
|
|
|
obj-$(CONFIG_DRM_MIPI_DBI) += drm_mipi_dbi.o
|
2013-12-04 16:35:12 +01:00
|
|
|
obj-$(CONFIG_DRM_MIPI_DSI) += drm_mipi_dsi.o
|
2018-12-05 03:41:35 +00:00
|
|
|
obj-y += arm/
|
2024-11-08 16:42:37 +01:00
|
|
|
obj-y += clients/
|
2022-04-21 09:31:02 +02:00
|
|
|
obj-y += display/
|
2009-06-22 18:16:13 +02:00
|
|
|
obj-$(CONFIG_DRM_TTM) += ttm/
|
2018-01-24 11:44:49 +01:00
|
|
|
obj-$(CONFIG_DRM_SCHED) += scheduler/
|
2008-05-29 10:09:59 +10:00
|
|
|
obj-$(CONFIG_DRM_RADEON)+= radeon/
|
2015-04-20 16:55:21 -04:00
|
|
|
obj-$(CONFIG_DRM_AMDGPU)+= amd/amdgpu/
|
2023-04-25 17:00:50 -04:00
|
|
|
obj-$(CONFIG_DRM_AMDGPU)+= amd/amdxcp/
|
2016-08-19 16:54:28 +01:00
|
|
|
obj-$(CONFIG_DRM_I915) += i915/
|
2023-03-30 17:31:57 -04:00
|
|
|
obj-$(CONFIG_DRM_XE) += xe/
|
2020-11-04 17:15:31 -08:00
|
|
|
obj-$(CONFIG_DRM_KMB_DISPLAY) += kmb/
|
2012-04-17 15:01:25 +01:00
|
|
|
obj-$(CONFIG_DRM_MGAG200) += mgag200/
|
2018-04-30 11:10:58 -07:00
|
|
|
obj-$(CONFIG_DRM_V3D) += v3d/
|
2015-03-02 13:01:12 -08:00
|
|
|
obj-$(CONFIG_DRM_VC4) += vc4/
|
2009-12-10 00:19:58 +00:00
|
|
|
obj-$(CONFIG_DRM_VMWGFX)+= vmwgfx/
|
2015-03-04 16:33:41 -08:00
|
|
|
obj-$(CONFIG_DRM_VGEM) += vgem/
|
2018-05-14 17:33:46 +03:00
|
|
|
obj-$(CONFIG_DRM_VKMS) += vkms/
|
2009-12-11 19:24:15 +10:00
|
|
|
obj-$(CONFIG_DRM_NOUVEAU) +=nouveau/
|
2025-04-24 18:02:50 +02:00
|
|
|
obj-$(CONFIG_DRM_NOVA) += nova/
|
2011-10-04 19:19:01 +09:00
|
|
|
obj-$(CONFIG_DRM_EXYNOS) +=exynos/
|
2014-08-22 18:36:26 +08:00
|
|
|
obj-$(CONFIG_DRM_ROCKCHIP) +=rockchip/
|
2011-11-03 18:22:48 +00:00
|
|
|
obj-$(CONFIG_DRM_GMA500) += gma500/
|
2010-12-15 07:14:24 +10:00
|
|
|
obj-$(CONFIG_DRM_UDL) += udl/
|
2012-02-29 13:40:04 +00:00
|
|
|
obj-$(CONFIG_DRM_AST) += ast/
|
2012-08-15 13:59:49 +01:00
|
|
|
obj-$(CONFIG_DRM_ARMADA) += armada/
|
2015-01-06 11:13:28 +01:00
|
|
|
obj-$(CONFIG_DRM_ATMEL_HLCDC) += atmel-hlcdc/
|
2023-05-02 11:09:08 +01:00
|
|
|
obj-y += renesas/
|
2015-12-09 20:26:00 +02:00
|
|
|
obj-y += omapdrm/
|
2015-10-29 09:36:23 +01:00
|
|
|
obj-$(CONFIG_DRM_SUN4I) += sun4i/
|
2015-02-18 12:26:50 +02:00
|
|
|
obj-y += tilcdc/
|
2013-02-25 14:47:55 +10:00
|
|
|
obj-$(CONFIG_DRM_QXL) += qxl/
|
2013-09-09 10:02:56 +10:00
|
|
|
obj-$(CONFIG_DRM_VIRTIO_GPU) += virtio/
|
2013-06-26 12:44:06 -04:00
|
|
|
obj-$(CONFIG_DRM_MSM) += msm/
|
2013-10-09 10:32:49 +02:00
|
|
|
obj-$(CONFIG_DRM_TEGRA) += tegra/
|
2017-04-14 12:13:34 +02:00
|
|
|
obj-$(CONFIG_DRM_STM) += stm/
|
2014-07-30 18:20:56 +02:00
|
|
|
obj-$(CONFIG_DRM_STI) += sti/
|
2020-07-31 11:18:29 +03:00
|
|
|
obj-y += imx/
|
2019-06-03 17:23:31 +02:00
|
|
|
obj-$(CONFIG_DRM_INGENIC) += ingenic/
|
2022-05-20 16:15:55 +02:00
|
|
|
obj-$(CONFIG_DRM_LOGICVC) += logicvc/
|
2016-01-04 18:36:34 +01:00
|
|
|
obj-$(CONFIG_DRM_MEDIATEK) += mediatek/
|
2016-11-10 15:29:37 +01:00
|
|
|
obj-$(CONFIG_DRM_MESON) += meson/
|
2013-08-30 15:10:14 +02:00
|
|
|
obj-y += panel/
|
2014-02-24 19:31:24 +09:00
|
|
|
obj-y += bridge/
|
2015-08-19 22:19:49 -04:00
|
|
|
obj-$(CONFIG_DRM_FSL_DCU) += fsl-dcu/
|
2015-12-03 18:21:29 +01:00
|
|
|
obj-$(CONFIG_DRM_ETNAVIV) += etnaviv/
|
2015-10-09 18:00:56 +08:00
|
|
|
obj-y += hisilicon/
|
2022-06-28 19:41:52 +02:00
|
|
|
obj-y += mxsfb/
|
2025-04-01 11:37:07 +02:00
|
|
|
obj-y += sysfb/
|
2019-07-25 12:51:31 +02:00
|
|
|
obj-y += tiny/
|
2017-04-12 20:17:46 -07:00
|
|
|
obj-$(CONFIG_DRM_PL111) += pl111/
|
2017-08-20 12:05:55 +02:00
|
|
|
obj-$(CONFIG_DRM_TVE200) += tve200/
|
2025-02-24 12:02:17 +01:00
|
|
|
obj-$(CONFIG_DRM_ADP) += adp/
|
2018-04-03 14:23:17 +03:00
|
|
|
obj-$(CONFIG_DRM_XEN) += xen/
|
2019-03-04 17:47:24 +01:00
|
|
|
obj-$(CONFIG_DRM_VBOXVIDEO) += vboxvideo/
|
2019-03-09 20:20:12 +08:00
|
|
|
obj-$(CONFIG_DRM_LIMA) += lima/
|
2018-09-10 14:27:58 -05:00
|
|
|
obj-$(CONFIG_DRM_PANFROST) += panfrost/
|
2024-02-29 17:22:26 +01:00
|
|
|
obj-$(CONFIG_DRM_PANTHOR) += panthor/
|
2025-09-10 10:51:18 -03:00
|
|
|
obj-$(CONFIG_DRM_TYR) += tyr/
|
2019-04-03 10:49:08 +10:30
|
|
|
obj-$(CONFIG_DRM_ASPEED_GFX) += aspeed/
|
2019-05-24 11:20:19 +02:00
|
|
|
obj-$(CONFIG_DRM_MCDE) += mcde/
|
2019-11-08 09:45:28 +02:00
|
|
|
obj-$(CONFIG_DRM_TIDSS) += tidss/
|
2018-07-07 19:05:34 -07:00
|
|
|
obj-y += xlnx/
|
2021-03-13 12:25:45 +01:00
|
|
|
obj-y += gud/
|
2021-05-27 04:22:28 -07:00
|
|
|
obj-$(CONFIG_DRM_HYPERV) += hyperv/
|
2025-05-12 09:15:11 +02:00
|
|
|
obj-y += sitronix/
|
2022-02-14 14:37:07 +01:00
|
|
|
obj-y += solomon/
|
2021-12-07 22:27:13 +08:00
|
|
|
obj-$(CONFIG_DRM_SPRD) += sprd/
|
2023-06-15 22:36:12 +08:00
|
|
|
obj-$(CONFIG_DRM_LOONGSON) += loongson/
|
2023-11-22 16:34:26 +00:00
|
|
|
obj-$(CONFIG_DRM_POWERVR) += imagination/
|
2026-01-29 10:39:17 +08:00
|
|
|
obj-$(CONFIG_DRM_VERISILICON_DC) += verisilicon/
|
2025-01-22 16:41:34 +02:00
|
|
|
|
|
|
|
|
# Ensure drm headers are self-contained and pass kernel-doc
|
|
|
|
|
hdrtest-files := \
|
|
|
|
|
$(shell cd $(src) && find . -maxdepth 1 -name 'drm_*.h') \
|
2026-02-06 11:44:09 +10:00
|
|
|
$(shell cd $(src) && find display -name '*.h')
|
2025-01-22 16:41:34 +02:00
|
|
|
|
|
|
|
|
always-$(CONFIG_DRM_HEADER_TEST) += \
|
|
|
|
|
$(patsubst %.h,%.hdrtest, $(hdrtest-files))
|
|
|
|
|
|
|
|
|
|
# Include the header twice to detect missing include guard.
|
|
|
|
|
quiet_cmd_hdrtest = HDRTEST $(patsubst %.hdrtest,%.h,$@)
|
|
|
|
|
cmd_hdrtest = \
|
|
|
|
|
$(CC) $(c_flags) -fsyntax-only -x c /dev/null -include $< -include $<; \
|
2025-11-07 19:29:33 +01:00
|
|
|
PYTHONDONTWRITEBYTECODE=1 $(PYTHON3) $(KERNELDOC) -none $(if $(CONFIG_WERROR)$(CONFIG_DRM_WERROR),-Werror) $<; \
|
2025-01-22 16:41:34 +02:00
|
|
|
touch $@
|
|
|
|
|
|
|
|
|
|
$(obj)/%.hdrtest: $(src)/%.h FORCE
|
|
|
|
|
$(call if_changed_dep,hdrtest)
|