linux/drivers/gpu/drm
Ville Syrjälä 74d2aacbe8 drm: Validate encoder->possible_clones
Many drivers are populating encoder->possible_clones wrong. Let's
persuade them to get it right by adding some loud WARNs.

We'll cross check the bits between any two encoders. So either
both encoders can clone with the other, or neither can.

We'll also complain about effectively empty possible_clones, and
possible_clones containing bits for encoders that don't exist.

v2: encoder->possible_clones now includes the encoder itelf
v3: Move to drm_mode_config_validate() (Daniel)
    Document that you get a WARN when this is wrong (Daniel)
    Extract full_encoder_mask()
v4: !! instead of ! (Daniel)

Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200211162208.16224-6-ville.syrjala@linux.intel.com
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2020-03-18 18:38:27 +02:00
..
amd Merge drm/drm-next into drm-misc-next 2020-03-17 09:29:11 +01:00
arc drm/arc: make arcgpu_debugfs_init() return 0. 2020-03-18 16:22:47 +01:00
arm drm/arm: make hdlcd_debugfs_init() return 0 2020-03-18 16:23:20 +01:00
armada drm: Remove drm_fb_helper add, add all and remove connector calls 2020-03-06 14:19:58 +01:00
aspeed
ast drm/ast: Use simple encoder 2020-03-02 09:22:43 +01:00
atmel-hlcdc drm/bridge: Extend bridge API to disable connector creation 2020-02-26 13:31:23 +02:00
bochs drm/bochs: add drm_driver.release callback. 2020-02-12 10:24:08 +01:00
bridge Merge drm/drm-next into drm-misc-next 2020-03-17 09:29:11 +01:00
cirrus drm/cirrus: add drm_driver.release callback. 2020-02-12 10:24:08 +01:00
etnaviv drm/etnaviv: remove check for return value of drm_debugfs_create_files() 2020-03-18 16:23:37 +01:00
exynos drm-misc-next for 5.7: 2020-03-12 12:42:56 +10:00
fsl-dcu drm/bridge: Extend bridge API to disable connector creation 2020-02-26 13:31:23 +02:00
gma500 drm/gma500: Sanitize possible_clones 2020-03-18 18:38:27 +02:00
hisilicon drm/hisilicon: Drop unused #include 2020-03-18 14:28:11 +01:00
i2c drm/bridge: Extend bridge API to disable connector creation 2020-02-26 13:31:23 +02:00
i810
i915 drm/i915: have *_debugfs_init() functions return void. 2020-03-18 16:27:22 +01:00
imx drm/imx: Remove the bogus possible_clones setup 2020-03-18 18:38:27 +02:00
ingenic drm/bridge: Extend bridge API to disable connector creation 2020-02-26 13:31:23 +02:00
lib
lima drm-misc-next for 5.7: 2020-02-21 05:44:40 +10:00
mcde drm/bridge: Extend bridge API to disable connector creation 2020-02-26 13:31:23 +02:00
mediatek Linux 5.6-rc5 2020-03-11 07:27:21 +10:00
meson drm/meson: Add YUV420 output support 2020-03-10 10:51:24 +01:00
mga
mgag200 drm/mgag200: Use simple encoder 2020-03-02 09:22:49 +01:00
msm drm/msm: remove checks for return value of drm_debugfs_create_files() 2020-03-18 16:23:57 +01:00
mxsfb drm/panel: decouple connector from drm_panel 2019-12-09 22:57:26 +01:00
nouveau drm/nouveau: make nouveau_drm_debugfs_init() return 0 2020-03-18 16:26:58 +01:00
omapdrm drm/omap: remove checks for return value of drm_debugfs functions 2020-03-18 16:27:14 +01:00
panel drm/panel-simple: Fix dotclock for Logic PD Type 28 2020-03-11 16:42:32 +02:00
panfrost drm-misc-next for 5.7: 2020-03-12 12:42:56 +10:00
pl111 drm/pl111: make pl111_debugfs_init return 0 2020-03-18 16:27:06 +01:00
qxl drm/qxl: Use simple encoder 2020-03-02 09:22:56 +01:00
r128
radeon drm: Remove drm dp mst destroy_connector callbacks 2020-03-11 16:53:17 -04:00
rcar-du drm/bridge: Extend bridge API to disable connector creation 2020-02-26 13:31:23 +02:00
rockchip drm/rockchip: rgb: don't count non-existent devices when determining subdrivers 2020-03-11 09:44:14 +01:00
savage
scheduler drm/scheduler: implement a function to modify sched list 2020-03-09 13:51:35 -04:00
selftests drm/modes: Make sure to parse valid rotation value from cmdline 2020-02-12 18:32:54 +01:00
shmobile
sis
sti drm/sti: remove use of drm_debugfs functions as return values 2020-03-18 16:24:08 +01:00
stm drm/bridge: Extend bridge API to disable connector creation 2020-02-26 13:31:23 +02:00
sun4i Linux 5.6-rc5 2020-03-11 07:27:21 +10:00
tdfx
tegra drm/tegra: remove checks for debugfs functions return value 2020-03-18 16:20:28 +01:00
tidss drm/tidss: Drop pointless static qualifier in dispc_find_csc() 2020-02-28 14:48:58 +02:00
tilcdc drm/tilcdc: remove check for return value of debugfs functions. 2020-03-18 16:21:41 +01:00
tiny drm/tiny: fix sparse warning: incorrect type in assignment (different base types) 2020-03-14 08:31:30 +01:00
ttm Merge drm/drm-next into drm-misc-next 2020-03-17 09:29:11 +01:00
tve200 drm: get drm_bridge_panel connector via helper 2019-12-09 22:57:26 +01:00
udl drm/udl: Clear struct drm_connector_funcs.dpms 2020-02-10 09:24:09 +01:00
v3d drm/v3d: make v3d_debugfs_init() return 0 2020-03-18 16:22:12 +01:00
vboxvideo drm/vboxvideo/vboxvideo.h: Replace zero-length array with flexible-array member 2020-03-07 12:55:05 +01:00
vc4 drm/vc4: remove check of return value of drm_debugfs functions 2020-03-18 16:22:20 +01:00
vgem drm/vgem: Close use-after-free race in vgem_gem_create 2020-02-06 19:04:41 +01:00
via Merge branch 'akpm' (patches from Andrew) 2020-01-31 12:16:36 -08:00
virtio drm-misc-next for 5.7: 2020-03-12 12:42:56 +10:00
vkms drm/vkms: Convert to CRTC VBLANK callbacks 2020-02-13 13:10:10 +01:00
vmwgfx drm-misc-next for 5.7: 2020-02-21 05:44:40 +10:00
xen drm/xen: Explicitly disable automatic sending of vblank event 2020-01-30 09:00:51 +01:00
zte drm/zte: plane_state->fb iff plane_state->crtc 2020-01-28 15:43:58 +01:00
drm_agpsupport.c
drm_atomic.c drm: make various debugfs_init() functions return 0 2020-03-18 16:45:22 +01:00
drm_atomic_helper.c drm/bridge: Add the necessary bits to support bus format negotiation 2020-01-31 16:39:53 +01:00
drm_atomic_state_helper.c drm/atomic-helper: fix kerneldoc 2020-02-15 13:21:22 +01:00
drm_atomic_uapi.c drm/atomic: Spell CRTC consistently 2019-12-22 11:13:00 +01:00
drm_auth.c drm/auth: Drop master_create/destroy hooks 2020-01-29 09:14:11 +01:00
drm_blend.c
drm_bridge.c drm: Add helper to create a connector for a chain of bridges 2020-02-26 13:31:41 +02:00
drm_bridge_connector.c drm: Add helper to create a connector for a chain of bridges 2020-02-26 13:31:41 +02:00
drm_bufs.c drm: bufs: Clean up documentation 2020-03-16 09:26:18 +01:00
drm_cache.c
drm_client.c drm: make various debugfs_init() functions return 0 2020-03-18 16:45:22 +01:00
drm_client_modeset.c Linux 5.6-rc5 2020-03-11 07:27:21 +10:00
drm_color_mgmt.c
drm_connector.c drm/edid: Fix DispID tile parsing for override EDID 2020-03-18 17:52:36 +02:00
drm_context.c drm: context: Clean up documentation 2020-03-16 09:23:55 +01:00
drm_crtc.c
drm_crtc_helper.c drm: drop unused drm_crtc callback 2020-02-15 21:15:17 +01:00
drm_crtc_helper_internal.h
drm_crtc_internal.h drm: Include the encoder itself in possible_clones 2020-03-18 18:38:27 +02:00
drm_damage_helper.c
drm_debugfs.c drm/debugfs: remove checks for return value of drm_debugfs functions. 2020-03-18 17:32:20 +01:00
drm_debugfs_crc.c drm/crc: Actually allow to change the crc source 2020-01-28 16:49:22 +01:00
drm_dma.c drm: fix parameters documentation style in drm_dma 2020-01-18 10:33:12 +01:00
drm_dp_aux_dev.c drm/dp_mst: Add MST support to DP DPCD R/W functions 2020-01-09 18:07:46 -05:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm-misc-next for 5.7: 2020-02-21 05:44:40 +10:00
drm_dp_mst_topology.c drm: Add drm_dp_destroy_connector helper and use it 2020-03-11 16:53:17 -04:00
drm_dp_mst_topology_internal.h
drm_drv.c drm: Include the encoder itself in possible_clones 2020-03-18 18:38:27 +02:00
drm_dsc.c
drm_dumb_buffers.c
drm_edid.c drm/edid: Fix DispID tile parsing for override EDID 2020-03-18 17:52:36 +02:00
drm_edid_load.c
drm_encoder.c drm/bridge: Make the bridge chain a double-linked list 2019-12-09 10:03:01 +01:00
drm_encoder_slave.c
drm_fb_cma_helper.c drm/fb-cma-helpers: Fix include issue 2020-01-09 17:33:41 +01:00
drm_fb_helper.c drm: Remove unused arg from drm_fb_helper_init 2020-03-06 14:19:57 +01:00
drm_file.c drm: Nerf drm_global_mutex BKL for good drivers 2020-02-11 15:03:09 +01:00
drm_flip_work.c
drm_format_helper.c drm/format_helper: Dual licence the file in GPL 2 and MIT 2020-02-17 10:27:13 +01:00
drm_fourcc.c
drm_framebuffer.c drm: make various debugfs_init() functions return 0 2020-03-18 16:45:22 +01:00
drm_gem.c drm: Correct a typo in a function comment 2020-03-18 14:50:08 +01:00
drm_gem_cma_helper.c
drm_gem_framebuffer_helper.c drm/core: Add drm_afbc_framebuffer and a corresponding helper 2020-03-18 11:22:05 +01:00
drm_gem_shmem_helper.c drm/shmem: drop pgprot_decrypted() 2020-03-02 07:13:19 +01:00
drm_gem_ttm_helper.c
drm_gem_vram_helper.c drm/vram-helper: make drm_vram_mm_debugfs_init() return 0 2020-03-18 16:24:48 +01:00
drm_hashtab.c
drm_hdcp.c drm/hdcp: optimizing the srm handling 2020-03-04 06:33:00 +05:30
drm_internal.h drm/hdcp: optimizing the srm handling 2020-03-04 06:33:00 +05:30
drm_ioc32.c
drm_ioctl.c drm: Add getfb2 ioctl 2020-01-14 16:22:17 -05:00
drm_irq.c drm/irq: remove check on dev->dev_private 2020-02-11 18:39:47 +02:00
drm_kms_helper_common.c
drm_lease.c
drm_legacy.h
drm_legacy_misc.c
drm_lock.c drm: lock: Clean up documentation 2020-03-16 09:27:09 +01:00
drm_memory.c
drm_mipi_dbi.c drm/mipi-dbi: Remove sending of vblank event 2020-01-30 09:00:45 +01:00
drm_mipi_dsi.c
drm_mm.c drm/mm: Remove redundant assignment in drm_mm_reserve_node 2020-03-10 10:25:07 +00:00
drm_mode_config.c drm: Validate encoder->possible_clones 2020-03-18 18:38:27 +02:00
drm_mode_object.c
drm_modes.c drm/modes: Make sure to parse valid rotation value from cmdline 2020-02-12 18:32:54 +01:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c drm: of: Add drm_of_lvds_get_dual_link_pixel_order 2019-12-18 02:40:16 +02:00
drm_panel.c drm/drm_panel: Fix EXPORT of drm_panel_of_backlight() one more time 2019-12-17 20:39:33 +01:00
drm_panel_orientation_quirks.c
drm_pci.c drm: Make drm_pci_agp_init legacy 2020-03-09 09:22:50 +00:00
drm_plane.c
drm_plane_helper.c
drm_prime.c
drm_print.c
drm_probe_helper.c drm: Stop accessing encoder->bridge directly 2019-12-09 10:02:45 +01:00
drm_property.c
drm_rect.c
drm_scatter.c drm: prevent a harmless integer overflow in drm_legacy_sg_alloc() 2020-02-29 00:16:12 +01:00
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/simple-kms: Fix documentation for drm_simple_encoder_init() 2020-03-06 09:24:29 +01:00
drm_syncobj.c drm/syncobj: Add documentation for timeline syncobj 2020-01-20 14:22:21 +01:00
drm_sysfs.c drm: sysfs: Use scnprintf() for avoiding potential buffer overflow 2020-03-11 14:54:09 +01:00
drm_trace.h
drm_trace_points.c
drm_vblank.c drm/vblank: Fix documentation of VBLANK timestamp helper 2020-03-06 09:24:54 +01:00
drm_vm.c drm: drm_vm: Use fallthrough; 2020-03-18 14:48:34 +01:00
drm_vma_manager.c
drm_vram_helper_common.c
drm_writeback.c
Kconfig drm: unbreak the DRM menu, broken by DRM_EXPORT_FOR_TESTS 2020-03-06 11:15:43 +00:00
Makefile drm: Add helper to create a connector for a chain of bridges 2020-02-26 13:31:41 +02:00