Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm: Add separate Kconfig option for fbdev helpers

For drivers which might want to disable fbdev legacy support.

Select the new option in all drivers for now, so this shouldn't result
in any change. Drivers need some work anyway to make fbdev support
optional (if they have it implemented, that is), so the recommended
way to expose this is by adding per-driver options. At least as long
as most drivers don't support disabling the fbdev support.

v2: Update for new drm drivers msm and rcar-du. Note that Rob's msm
driver can already take advantage of this, which allows us to build
msm without any fbdev depencies in the kernel!

v3: Move the MODULE_* stuff from the fbdev helper file to
drm_crtc_helper.c.

Cc: David Herrmann <dh.herrmann@gmail.com>
Cc: Rob Clark <robdclark@gmail.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Acked-by: Dave Airlie <airlied@linux.ie>
Reviewed-by: Chon Ming Lee <chon.ming.lee@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

+31 -6
+10 -1
drivers/gpu/drm/Kconfig
··· 29 29 config DRM_KMS_HELPER 30 30 tristate 31 31 depends on DRM 32 + help 33 + CRTC helpers for KMS drivers. 34 + 35 + config DRM_KMS_FB_HELPER 36 + bool 37 + depends on DRM_KMS_HELPER 32 38 select FB 33 39 select FRAMEBUFFER_CONSOLE if !EXPERT 34 40 select FRAMEBUFFER_CONSOLE_DETECT_PRIMARY if FRAMEBUFFER_CONSOLE 35 41 help 36 - FB and CRTC helpers for KMS drivers. 42 + FBDEV helpers for KMS drivers. 37 43 38 44 config DRM_LOAD_EDID_FIRMWARE 39 45 bool "Allow to specify an EDID data set instead of probing for it" ··· 70 64 config DRM_KMS_CMA_HELPER 71 65 bool 72 66 select DRM_GEM_CMA_HELPER 67 + select DRM_KMS_FB_HELPER 73 68 select FB_SYS_FILLRECT 74 69 select FB_SYS_COPYAREA 75 70 select FB_SYS_IMAGEBLIT ··· 103 96 select FB_CFB_IMAGEBLIT 104 97 select FW_LOADER 105 98 select DRM_KMS_HELPER 99 + select DRM_KMS_FB_HELPER 106 100 select DRM_TTM 107 101 select POWER_SUPPLY 108 102 select HWMON ··· 138 130 select SHMEM 139 131 select TMPFS 140 132 select DRM_KMS_HELPER 133 + select DRM_KMS_FB_HELPER 141 134 select FB_CFB_FILLRECT 142 135 select FB_CFB_COPYAREA 143 136 select FB_CFB_IMAGEBLIT
+2 -1
drivers/gpu/drm/Makefile
··· 21 21 22 22 drm-usb-y := drm_usb.o 23 23 24 - drm_kms_helper-y := drm_fb_helper.o drm_crtc_helper.o drm_dp_helper.o 24 + drm_kms_helper-y := drm_crtc_helper.o drm_dp_helper.o 25 25 drm_kms_helper-$(CONFIG_DRM_LOAD_EDID_FIRMWARE) += drm_edid_load.o 26 + drm_kms_helper-$(CONFIG_DRM_KMS_FB_HELPER) += drm_fb_helper.o 26 27 drm_kms_helper-$(CONFIG_DRM_KMS_CMA_HELPER) += drm_fb_cma_helper.o 27 28 28 29 obj-$(CONFIG_DRM_KMS_HELPER) += drm_kms_helper.o
+1
drivers/gpu/drm/ast/Kconfig
··· 6 6 select FB_SYS_FILLRECT 7 7 select FB_SYS_IMAGEBLIT 8 8 select DRM_KMS_HELPER 9 + select DRM_KMS_FB_HELPER 9 10 select DRM_TTM 10 11 help 11 12 Say yes for experimental AST GPU driver. Do not enable
+1
drivers/gpu/drm/cirrus/Kconfig
··· 5 5 select FB_SYS_COPYAREA 6 6 select FB_SYS_IMAGEBLIT 7 7 select DRM_KMS_HELPER 8 + select DRM_KMS_FB_HELPER 8 9 select DRM_TTM 9 10 help 10 11 This is a KMS driver for emulated cirrus device in qemu.
+4
drivers/gpu/drm/drm_crtc_helper.c
··· 39 39 #include <drm/drm_fb_helper.h> 40 40 #include <drm/drm_edid.h> 41 41 42 + MODULE_AUTHOR("David Airlie, Jesse Barnes"); 43 + MODULE_DESCRIPTION("DRM KMS helper"); 44 + MODULE_LICENSE("GPL and additional rights"); 45 + 42 46 /** 43 47 * drm_helper_move_panel_connectors_to_head() - move panels to the front in the 44 48 * connector list
-4
drivers/gpu/drm/drm_fb_helper.c
··· 39 39 #include <drm/drm_fb_helper.h> 40 40 #include <drm/drm_crtc_helper.h> 41 41 42 - MODULE_AUTHOR("David Airlie, Jesse Barnes"); 43 - MODULE_DESCRIPTION("DRM KMS helper"); 44 - MODULE_LICENSE("GPL and additional rights"); 45 - 46 42 static LIST_HEAD(kernel_fb_helper_list); 47 43 48 44 /**
+1
drivers/gpu/drm/exynos/Kconfig
··· 2 2 tristate "DRM Support for Samsung SoC EXYNOS Series" 3 3 depends on OF && DRM && (PLAT_SAMSUNG || ARCH_MULTIPLATFORM) 4 4 select DRM_KMS_HELPER 5 + select DRM_KMS_FB_HELPER 5 6 select FB_CFB_FILLRECT 6 7 select FB_CFB_COPYAREA 7 8 select FB_CFB_IMAGEBLIT
+1
drivers/gpu/drm/gma500/Kconfig
··· 5 5 select FB_CFB_FILLRECT 6 6 select FB_CFB_IMAGEBLIT 7 7 select DRM_KMS_HELPER 8 + select DRM_KMS_FB_HELPER 8 9 select DRM_TTM 9 10 # GMA500 depends on ACPI_VIDEO when ACPI is enabled, just like i915 10 11 select ACPI_VIDEO if ACPI
+1
drivers/gpu/drm/mgag200/Kconfig
··· 5 5 select FB_SYS_COPYAREA 6 6 select FB_SYS_IMAGEBLIT 7 7 select DRM_KMS_HELPER 8 + select DRM_KMS_FB_HELPER 8 9 select DRM_TTM 9 10 help 10 11 This is a KMS driver for the MGA G200 server chips, it
+1
drivers/gpu/drm/msm/Kconfig
··· 14 14 config DRM_MSM_FBDEV 15 15 bool "Enable legacy fbdev support for MSM modesetting driver" 16 16 depends on DRM_MSM 17 + select DRM_KMS_FB_HELPER 17 18 select FB_SYS_FILLRECT 18 19 select FB_SYS_COPYAREA 19 20 select FB_SYS_IMAGEBLIT
+1
drivers/gpu/drm/nouveau/Kconfig
··· 3 3 depends on DRM && PCI 4 4 select FW_LOADER 5 5 select DRM_KMS_HELPER 6 + select DRM_KMS_FB_HELPER 6 7 select DRM_TTM 7 8 select FB_CFB_FILLRECT 8 9 select FB_CFB_COPYAREA
+1
drivers/gpu/drm/omapdrm/Kconfig
··· 5 5 depends on ARCH_OMAP2PLUS || ARCH_MULTIPLATFORM 6 6 depends on OMAP2_DSS 7 7 select DRM_KMS_HELPER 8 + select DRM_KMS_FB_HELPER 8 9 select FB_SYS_FILLRECT 9 10 select FB_SYS_COPYAREA 10 11 select FB_SYS_IMAGEBLIT
+1
drivers/gpu/drm/qxl/Kconfig
··· 6 6 select FB_SYS_IMAGEBLIT 7 7 select FB_DEFERRED_IO 8 8 select DRM_KMS_HELPER 9 + select DRM_KMS_FB_HELPER 9 10 select DRM_TTM 10 11 help 11 12 QXL virtual GPU for Spice virtualization desktop integration. Do not enable this driver unless your distro ships a corresponding X.org QXL driver that can handle kernel modesetting.
+1
drivers/gpu/drm/rcar-du/Kconfig
··· 4 4 select DRM_KMS_HELPER 5 5 select DRM_KMS_CMA_HELPER 6 6 select DRM_GEM_CMA_HELPER 7 + select DRM_KMS_FB_HELPER 7 8 help 8 9 Choose this option if you have an R-Car chipset. 9 10 If M is selected the module will be called rcar-du-drm.
+1
drivers/gpu/drm/shmobile/Kconfig
··· 2 2 tristate "DRM Support for SH Mobile" 3 3 depends on DRM && (ARM || SUPERH) 4 4 select DRM_KMS_HELPER 5 + select DRM_KMS_FB_HELPER 5 6 select DRM_KMS_CMA_HELPER 6 7 select DRM_GEM_CMA_HELPER 7 8 help
+1
drivers/gpu/drm/tilcdc/Kconfig
··· 2 2 tristate "DRM Support for TI LCDC Display Controller" 3 3 depends on DRM && OF && ARM 4 4 select DRM_KMS_HELPER 5 + select DRM_KMS_FB_HELPER 5 6 select DRM_KMS_CMA_HELPER 6 7 select DRM_GEM_CMA_HELPER 7 8 select VIDEOMODE_HELPERS
+1
drivers/gpu/drm/udl/Kconfig
··· 8 8 select FB_SYS_IMAGEBLIT 9 9 select FB_DEFERRED_IO 10 10 select DRM_KMS_HELPER 11 + select DRM_KMS_FB_HELPER 11 12 help 12 13 This is a KMS driver for the USB displaylink video adapters. 13 14 Say M/Y to add support for these devices via drm/kms interfaces.
+1
drivers/gpu/host1x/drm/Kconfig
··· 2 2 bool "NVIDIA Tegra DRM" 3 3 depends on DRM 4 4 select DRM_KMS_HELPER 5 + select DRM_KMS_FB_HELPER 5 6 select FB_SYS_FILLRECT 6 7 select FB_SYS_COPYAREA 7 8 select FB_SYS_IMAGEBLIT
+1
drivers/staging/imx-drm/Kconfig
··· 1 1 config DRM_IMX 2 2 tristate "DRM Support for Freescale i.MX" 3 3 select DRM_KMS_HELPER 4 + select DRM_KMS_FB_HELPER 4 5 select VIDEOMODE_HELPERS 5 6 select DRM_GEM_CMA_HELPER 6 7 select DRM_KMS_CMA_HELPER