linux/drivers/gpu/drm
Noralf Trønnes 3389669ac5 drm/tinydrm/Kconfig: drivers: Select BACKLIGHT_CLASS_DEVICE
The mipi_dbi helper is missing a dependency on DRM_KMS_HELPER and putting
that in revealed this problem:

drivers/video/fbdev/Kconfig:12:error: recursive dependency detected!
drivers/video/fbdev/Kconfig:12: symbol FB is selected by DRM_KMS_FB_HELPER
drivers/gpu/drm/Kconfig:75:     symbol DRM_KMS_FB_HELPER depends on DRM_KMS_HELPER
drivers/gpu/drm/Kconfig:69:     symbol DRM_KMS_HELPER is selected by TINYDRM_MIPI_DBI
drivers/gpu/drm/tinydrm/Kconfig:11:     symbol TINYDRM_MIPI_DBI is selected by TINYDRM_HX8357D
drivers/gpu/drm/tinydrm/Kconfig:15:     symbol TINYDRM_HX8357D depends on BACKLIGHT_CLASS_DEVICE
drivers/video/backlight/Kconfig:144:    symbol BACKLIGHT_CLASS_DEVICE is selected by FB_BACKLIGHT
drivers/video/fbdev/Kconfig:187:        symbol FB_BACKLIGHT depends on FB

A symbol that selects DRM_KMS_HELPER can not depend on
BACKLIGHT_CLASS_DEVICE. The reason for this is that DRM_KMS_FB_HELPER
selects FB instead of depending on it.

The tinydrm drivers have somehow gotten away with depending on
BACKLIGHT_CLASS_DEVICE because DRM_TINYDRM selects DRM_KMS_HELPER and the
drivers depend on that symbol.

An audit shows that all DRM drivers that select DRM_KMS_HELPER and use
BACKLIGHT_CLASS_DEVICE, selects it:
  DRM_TILCDC, DRM_GMA500, DRM_SHMOBILE, DRM_NOUVEAU, DRM_FSL_DCU,
  DRM_I915, DRM_RADEON, DRM_AMDGPU, DRM_PARADE_PS8622

Documentation/kbuild/kconfig-language.txt has a note regarding select:
1. 'select should be used with care since it doesn't visit dependencies.'
   This is not a problem since BACKLIGHT_CLASS_DEVICE doesn't have any
   dependencies.
2. 'In general use select only for non-visible symbols'
   BACKLIGHT_CLASS_DEVICE is user visible.

The real solution to this would be to have DRM_KMS_FB_HELPER depend on the
user visible symbol FB. That is a can of worms I'm not willing to tackle.
I fear that such a change will result in me handling difficult fallouts
for the next weeks. So I'm following DRM suite here.

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: David Lechner <david@lechnology.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190722104312.16184-7-noralf@tronnes.org
2019-07-25 10:44:03 +02:00
..
amd Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
arc drm/arc: Drop drm_gem_prime_export/import 2019-06-21 20:02:10 +02:00
arm drm/komeda: remove set but not used variable 'old' 2019-07-23 09:04:49 +02:00
armada Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
aspeed drm/prime: Actually remove DRIVER_PRIME everywhere 2019-06-21 17:30:32 +02:00
ast drm/ast: drop use of drmP.h 2019-07-15 18:11:31 +02:00
atmel-hlcdc Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
bochs Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
bridge drm/bridge: Improve the help text for DRM_ANALOGIX_ANX78XX 2019-07-22 16:08:06 -04:00
cirrus drm/prime: Actually remove DRIVER_PRIME everywhere 2019-06-21 17:30:32 +02:00
etnaviv Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
exynos Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
fsl-dcu drm/fsl-dcu: drop use of drmP.h 2019-07-15 18:11:30 +02:00
gm12u320 drm: Add Grain Media GM12U320 driver v2 2019-07-21 21:01:59 +02:00
gma500 Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
hisilicon Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
i2c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
i810 drm/i810: drop use of drmP.h 2019-07-17 12:52:55 +02:00
i915 drm/i915: Fix up broken merge 2019-07-22 23:43:15 +02:00
imx Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
ingenic DRM: ingenic: Add support for panels with 8-bit serial bus 2019-07-02 00:38:57 +02:00
lib
lima drm/lima: drop DRM_AUTH usage from the driver 2019-06-26 15:00:39 +01:00
mcde drm/mcde: Fix uninitialized variable 2019-06-25 00:10:24 +02:00
mediatek drm/mediatek: direct include of drm.h in mtk_drm_gem.c 2019-07-19 23:24:17 +02:00
meson drm/meson: drop use of drmP.h 2019-07-17 12:47:57 +02:00
mga drm/mga: drop use of drmP.h 2019-06-30 09:48:05 +02:00
mgag200 drm/mgag200: Don't unpin the current cursor image's buffer. 2019-07-24 09:48:30 +02:00
msm Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
mxsfb drm/mxsfb: drop use of drmP.h 2019-07-15 18:11:30 +02:00
nouveau Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
omapdrm Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
panel Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
panfrost Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
pl111 Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
qxl drm/qxl: drop use of drmP.h 2019-07-15 18:11:30 +02:00
r128 drm/r128: drop use of drmP.h 2019-07-17 12:52:55 +02:00
radeon Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
rcar-du drm/rcar-du: Drop drm_gem_prime_export/import 2019-06-21 20:08:38 +02:00
rockchip Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
savage drm/savage: drop use of drmP.h 2019-06-05 20:31:04 +02:00
scheduler drm/scheduler: drop use of drmP.h 2019-07-15 18:11:31 +02:00
selftests Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
shmobile drm/shmobile: drop use of drmP.h 2019-07-15 18:11:31 +02:00
sis drm/sis: drop drmP.h use 2019-06-05 20:29:57 +02:00
sti drm/sti: Try to fix up the tvout possible clones 2019-07-09 09:45:07 +02:00
stm drm/stm: drop use of drmP.h 2019-07-01 10:48:57 +02:00
sun4i drm/sun4i: sun8i-csc: Add support for color encoding and range 2019-07-20 07:38:09 +02:00
tdfx drm/tdfx: drop use of drmP.h 2019-07-17 12:52:55 +02:00
tegra Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
tilcdc Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
tinydrm drm/tinydrm/Kconfig: drivers: Select BACKLIGHT_CLASS_DEVICE 2019-07-25 10:44:03 +02:00
ttm Revert "Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next" 2019-07-16 04:07:13 +10:00
tve200 drm/tve200: drop use of drmP.h 2019-07-15 18:11:30 +02:00
udl drm/udl: drop use of drmP.h 2019-07-17 12:52:55 +02:00
v3d drm/v3d: drop use of drmP.h 2019-07-17 12:52:20 +02:00
vboxvideo drm/vbox: Remove empty PRIME functions 2019-07-03 09:32:27 +02:00
vc4 Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
vgem drm/vgem: drop use of drmP.h 2019-07-17 12:52:55 +02:00
via
virtio Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
vkms drm/vkms: drop use of drmP.h 2019-07-15 18:11:30 +02:00
vmwgfx Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
xen drm/xen: drop use of drmP.h 2019-07-15 18:11:30 +02:00
zte Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
ati_pcigart.c drm/ati_pcigart: drop dependency on drm_os_linux.h 2019-07-19 23:24:16 +02:00
drm_agpsupport.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_atomic_helper.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_atomic_state_helper.c drm/atomic: Add a function to reset connector TV properties 2019-06-19 12:17:52 +02:00
drm_atomic_uapi.c drm: Add helpers to kick off self refresh mode in drivers 2019-06-13 14:31:10 -04:00
drm_atomic.c drm: Add helpers to kick off self refresh mode in drivers 2019-06-13 14:31:10 -04:00
drm_auth.c
drm_blend.c
drm_bridge.c drm: Add atomic variants for bridge enable/disable 2019-06-13 13:00:29 -04:00
drm_bufs.c drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
drm_cache.c
drm_client_modeset.c drm/modes: Skip invalid cmdline mode 2019-07-10 12:11:18 +02:00
drm_client.c drm/client: remove the exporting of drm_client_close 2019-07-09 11:34:39 +02:00
drm_color_mgmt.c
drm_connector.c drm: Add SPI connector type 2019-07-23 15:44:49 +02:00
drm_context.c
drm_crtc_helper_internal.h
drm_crtc_helper.c
drm_crtc_internal.h drm/atomic: Move __drm_atomic_helper_disable_plane/set_config() 2019-06-08 16:46:37 +02:00
drm_crtc.c drm: no need to check return value of debugfs_create functions 2019-06-13 16:39:16 +02:00
drm_damage_helper.c
drm_debugfs_crc.c drm: no need to check return value of debugfs_create functions 2019-06-13 16:39:16 +02:00
drm_debugfs.c drm: debugfs: make drm_debugfs_create_files() never fail 2019-06-14 16:59:51 +02:00
drm_dma.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_dp_aux_dev.c
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm: Make the bw/link rate calculations more forgiving 2019-07-17 12:45:30 -04:00
drm_dp_mst_topology.c
drm_drv.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
drm_dsc.c
drm_dumb_buffers.c Revert "drm/gem: Rename drm_gem_dumb_map_offset() to drm_gem_map_offset()" 2019-07-03 16:38:50 -06:00
drm_edid_load.c
drm_edid.c drm/edid: use for_each_displayid_db where applicable 2019-06-25 14:44:03 +10:00
drm_encoder_slave.c
drm_encoder.c
drm_fb_cma_helper.c
drm_fb_helper.c drm/fb-helper: Instanciate shadow FB if configured in device's mode_config 2019-07-09 10:25:02 +02:00
drm_file.c drm/prime: Unconditionally set up the prime file private 2019-06-21 11:48:09 +02:00
drm_flip_work.c
drm_format_helper.c
drm_fourcc.c
drm_framebuffer.c
drm_gem_cma_helper.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_gem_framebuffer_helper.c drm/fb: remove unused function: drm_gem_fbdev_fb_create() 2019-07-21 19:32:38 +02:00
drm_gem_shmem_helper.c drm: direct include of drm.h in drm_gem_shmem_helper.c 2019-07-19 23:24:17 +02:00
drm_gem_vram_helper.c drm/vram: Don't export driver callback functions for PRIME 2019-07-03 09:32:36 +02:00
drm_gem.c drm: direct include of drm.h in drm_gem.c 2019-07-19 23:24:17 +02:00
drm_hashtab.c
drm_hdcp.c
drm_internal.h drm/gem: Unexport drm_gem_(un)pin/v(un)map 2019-06-17 17:37:01 +02:00
drm_ioc32.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
drm_ioctl.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_legacy_misc.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_legacy.h
drm_lock.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_memory.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_mipi_dsi.c bus_find_device: Unify the match callback with class_find_device 2019-06-24 05:22:31 +02:00
drm_mm.c drm: Allow range of 0 for drm_mm_insert_node_in_range() 2019-06-26 21:13:12 +01:00
drm_mode_config.c
drm_mode_object.c drm/kms: Catch mode_object lifetime errors 2019-07-10 17:17:14 +02:00
drm_modes.c Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
drm_modeset_helper.c
drm_modeset_lock.c docs conversion for v5.3-rc1 2019-07-16 12:21:41 -07:00
drm_of.c
drm_panel_orientation_quirks.c drm: panel-orientation-quirks: Add extra quirk table entry for GPD MicroPC 2019-07-01 16:58:09 +02:00
drm_panel.c
drm_pci.c
drm_plane_helper.c
drm_plane.c
drm_prime.c drm: direct include of drm.h in drm_prime.c 2019-07-19 23:24:17 +02:00
drm_print.c
drm_probe_helper.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_property.c
drm_rect.c
drm_scatter.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_scdc_helper.c
drm_self_refresh_helper.c drm/self_refresh: Fix possible NULL deref in failure path 2019-06-20 10:03:21 -04:00
drm_simple_kms_helper.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_syncobj.c drm: direct include of drm.h in drm_syncobj.c 2019-07-19 23:24:17 +02:00
drm_sysfs.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_trace_points.c
drm_trace.h
drm_vblank.c drm: add debug print to update_vblank_count 2019-06-14 19:10:04 +03:00
drm_vm.c gpu/drm: fix a few kernel-doc "/**" mark warnings 2019-07-16 11:25:02 +02:00
drm_vma_manager.c
drm_vram_helper_common.c
drm_vram_mm_helper.c
drm_writeback.c
Kconfig Linus 5.3-rc1 2019-07-22 21:24:10 +02:00
Makefile drm: Add Grain Media GM12U320 driver v2 2019-07-21 21:01:59 +02:00