linux-hardened/drivers/gpu/drm
Eric Anholt 32ad958d85 drm/vc4: Set up the DSI host at pdev probe time, not component bind.
We need the following things to happen in sequence:

DSI host creation
DSI device creation in the panel driver (needs DSI host)
DSI device attach from panel to host.
DSI drm_panel_add()
DSI encoder creation
DSI encoder's DRM panel/bridge attach

Unless we allow device creation while the host isn't up yet, we need
to break the -EPROBE_DEFER deadlock between the panel driver looking
up the host and the host driver looking up the panel.  We can do so by
moving the DSI host creation outside of the component bind loop, and
the panel/bridge lookup/attach into the component bind process.

Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20170815234722.20700-3-eric@anholt.net
Reviewed-by: Archit Taneja <architt@codeaurora.org>
2017-09-27 11:54:56 -07:00
..
amd Merge branch 'drm-next-4.14' of git://people.freedesktop.org/~agd5f/linux into drm-next 2017-08-18 05:30:53 +10:00
arc drm/arc: Use drm_gem_fb_create() 2017-09-02 14:23:06 +02:00
arm drm/arm/mali: Use drm_gem_fb_create() 2017-08-27 19:29:46 +02:00
armada drm/armada: Use correct path to trace include 2017-09-05 11:11:20 +02:00
ast Merge tag 'drm-misc-next-2017-08-16' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2017-08-17 07:33:41 +10:00
atmel-hlcdc drm/atmel-hlcdc: Use drm_gem_fb_create() 2017-08-27 19:30:15 +02:00
bochs drm/bochs: Use the drm_driver.dumb_destroy default 2017-08-16 20:18:55 +02:00
bridge drm/bridge: adv7511: Constify HDMI CODEC platform data 2017-09-16 15:11:04 +05:30
cirrus drm/cirrus: Use the drm_driver.dumb_destroy default 2017-08-16 20:14:22 +02:00
etnaviv drm/etnaviv: Fix off-by-one error in reloc checking 2017-08-08 15:56:00 +02:00
exynos drm/exynos: mic: clean up drm_bridge_add call 2017-08-21 08:50:35 +05:30
fsl-dcu drm: Nuke drm_atomic_helper_connector_dpms 2017-08-08 14:48:48 +02:00
gma500 drm: gma500: fix logic error 2017-09-06 08:39:55 +02:00
hisilicon drm/kirin: Use .dumb_map_offset and .dumb_destroy defaults 2017-08-16 20:11:06 +02:00
i2c drm: i2c: tda998x: constify i2c_device_id 2017-08-22 08:33:44 +02:00
i810
i915 drm/atomic: Make async plane update checks work as intended, v2. 2017-09-08 10:39:37 +02:00
imx drm/imx: Use drm_gem_fb_create() and drm_gem_fb_prepare_fb() 2017-09-16 14:05:54 +02:00
lib
mediatek drm/mediatek: hdmi: clean up drm_bridge_add call 2017-08-21 08:49:24 +05:30
meson drm/meson: Use .dumb_map_offset and .dumb_destroy defaults 2017-08-16 20:11:43 +02:00
mga Merge airlied/drm-next into drm-misc-next 2017-07-26 13:43:33 +02:00
mgag200 drm/mgag200: Use the drm_driver.dumb_destroy default 2017-08-16 20:18:22 +02:00
msm Merge tag 'drm-misc-next-2017-08-16' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2017-08-17 07:33:41 +10:00
mxsfb drm/mxsfb: Use .dumb_map_offset and .dumb_destroy defaults 2017-08-16 20:12:19 +02:00
nouveau drm/nouveau: Fix merge commit 2017-08-16 12:06:02 +10:00
omapdrm drm/omap: Potential NULL deref in omap_crtc_duplicate_state() 2017-08-16 16:21:18 +03:00
panel drm/panel: Add driver for Seiko 43WVF1G panel 2017-08-18 17:10:45 +02:00
pl111 drm/pl111: Add handling of Versatile platforms 2017-09-10 23:58:42 +02:00
qxl drm/qxl: Use the drm_driver.dumb_destroy default 2017-08-16 20:15:38 +02:00
r128
radeon drm/radeon: Fix preferred typo 2017-08-15 14:46:16 -04:00
rcar-du Merge tag 'drm-misc-next-2017-08-08' of git://anongit.freedesktop.org/git/drm-misc into drm-next 2017-08-10 10:47:33 +10:00
rockchip drm/rockchip: Cocci spatch "vma_pages" 2017-09-26 14:32:36 +08:00
savage
selftests
shmobile drm/shmobile: Use .dumb_map_offset and .dumb_destroy defaults 2017-07-29 13:57:33 +02:00
sis
sti drm/sti: Use drm_gem_fb_create() 2017-08-27 19:30:49 +02:00
stm drm/stm: fix warning about multiplication in condition 2017-09-08 10:29:11 +02:00
sun4i drm/sun4i: call drm_vblank_init with correct number of crtcs 2017-09-09 17:24:52 +02:00
tdfx
tegra drm/tegra: Use .dumb_map_offset and .dumb_destroy defaults 2017-08-16 20:13:48 +02:00
tilcdc drm/tilcdc: replace reference/unreference() with get/put 2017-09-26 13:12:15 +02:00
tinydrm drm/tinydrm: Drop driver registered message 2017-09-16 14:07:59 +02:00
ttm drm/ttm: Implement vm_operations_struct.access v2 2017-07-25 16:29:02 -04:00
tve200 drm/tve200: Clean up panel bridging 2017-09-11 20:32:56 +02:00
udl drm: udl: constify usb_device_id 2017-08-18 09:10:46 +02:00
vc4 drm/vc4: Set up the DSI host at pdev probe time, not component bind. 2017-09-27 11:54:56 -07:00
vgem drm/vgem: switch to drm_*_get(), drm_*_put() helpers 2017-08-11 11:41:43 -04:00
via
virtio drm/virtio: Use the drm_driver.dumb_destroy default 2017-08-16 20:20:00 +02:00
vmwgfx Linux 4.13-rc5 2017-08-15 16:16:58 +10:00
zte drm/zte: Use drm_gem_fb_create() 2017-08-27 19:31:06 +02:00
ati_pcigart.c
drm_agpsupport.c drm/agpsupport: Remove extra blank line 2017-09-20 09:54:19 -07:00
drm_atomic.c drm/atomic: Convert atomic ioctl locking to interruptible. 2017-09-13 09:51:18 +02:00
drm_atomic_helper.c drm/atomic: Make async plane update checks work as intended, v2. 2017-09-08 10:39:37 +02:00
drm_auth.c
drm_blend.c
drm_bridge.c drm/bridge: change return type of drm_bridge_add function 2017-08-21 08:51:53 +05:30
drm_bufs.c switch compat_drm_mapbufs() to drm_ioctl_kernel() 2017-07-04 13:16:26 -04:00
drm_cache.c
drm_color_mgmt.c
drm_connector.c drm: Try to document legacy DPMS uapi a bit better 2017-09-26 07:12:56 +02:00
drm_context.c
drm_crtc.c drm/crtc: Convert setcrtc ioctl locking to interruptible. 2017-09-13 09:52:05 +02:00
drm_crtc_helper.c drm: Handle properties in the core for atomic drivers 2017-08-08 14:45:09 +02:00
drm_crtc_helper_internal.h
drm_crtc_internal.h drm: Handle properties in the core for atomic drivers 2017-08-08 14:45:09 +02:00
drm_debugfs.c
drm_debugfs_crc.c drm/atomic: Prepare drm_modeset_lock infrastructure for interruptible waiting, v2. 2017-09-13 09:50:52 +02:00
drm_dma.c
drm_dp_aux_dev.c drm_dp_aux_dev: switch to read_iter/write_iter 2017-07-08 20:51:46 -04:00
drm_dp_dual_mode_helper.c
drm_dp_helper.c drm/dp: Don't trust drm_dp_downstream_id() 2017-07-21 17:45:26 +03:00
drm_dp_mst_topology.c drm/dp/mst: Sideband message transaction to power up/down nodes 2017-09-11 16:03:57 +03:00
drm_drv.c drm: introduce drm_dev_{get/put} functions 2017-09-26 13:12:15 +02:00
drm_dumb_buffers.c drm/dumb-buffers: Add defaults for .dumb_map_offset and .dumb_destroy 2017-07-29 13:51:44 +02:00
drm_edid.c drm: handle override and firmware EDID at drm_do_get_edid() level 2017-09-19 17:49:25 +03:00
drm_edid_load.c drm: add backwards compatibility support for drm_kms_helper.edid_firmware 2017-09-19 18:11:45 +03:00
drm_encoder.c
drm_encoder_slave.c
drm_fb_cma_helper.c drm/fb-cma-helper: Use drm_gem_framebuffer_helper 2017-08-16 21:34:38 +02:00
drm_fb_helper.c drm/fb-helper: Avoid NULL ptr dereference in fb_set_suspend() 2017-09-02 14:37:59 +02:00
drm_file.c drm: Document device unplug infrastructure 2017-08-11 10:48:03 +02:00
drm_flip_work.c
drm_fourcc.c
drm_framebuffer.c Merge airlied/drm-next into drm-misc-next 2017-07-26 13:43:33 +02:00
drm_gem.c drm: Remove obsolete "This is gross" comment 2017-09-26 07:23:18 +02:00
drm_gem_cma_helper.c drm/gem-cma-helper: Remove drm_gem_cma_dumb_map_offset() 2017-08-16 20:21:24 +02:00
drm_gem_framebuffer_helper.c drm/gem-fb-helper: Use debug message on gem lookup failure 2017-09-16 14:06:53 +02:00
drm_global.c
drm_hashtab.c
drm_info.c
drm_internal.h Merge airlied/drm-next into drm-misc-next 2017-07-26 13:43:33 +02:00
drm_ioc32.c Merge airlied/drm-next into drm-misc-next 2017-07-26 13:43:33 +02:00
drm_ioctl.c drm: Document device unplug infrastructure 2017-08-11 10:48:03 +02:00
drm_irq.c
drm_kms_helper_common.c drm: add backwards compatibility support for drm_kms_helper.edid_firmware 2017-09-19 18:11:45 +03:00
drm_legacy.h switch compat_drm_mapbufs() to drm_ioctl_kernel() 2017-07-04 13:16:26 -04:00
drm_lock.c
drm_memory.c
drm_mipi_dsi.c drm: Convert to using %pOF instead of full_name 2017-07-26 13:45:06 +02:00
drm_mm.c
drm_mode_config.c drm: Create a format/modifier blob 2017-08-01 17:50:06 +01:00
drm_mode_object.c drm: Make __drm_object_property_get_value() static 2017-09-11 15:53:33 +03:00
drm_modes.c drm/modes: Fix drm_mode_is_420_only() comment 2017-07-31 14:23:30 +02:00
drm_modeset_helper.c drm: Plumb modifiers through plane init 2017-08-01 17:50:06 +01:00
drm_modeset_lock.c drm/atomic: Prepare drm_modeset_lock infrastructure for interruptible waiting, v2. 2017-09-13 09:50:52 +02:00
drm_of.c drm: Convert to using %pOF instead of full_name 2017-07-26 13:45:06 +02:00
drm_panel.c
drm_pci.c drm/core: clean up references to drm_dev_unref() 2017-09-27 10:53:12 +02:00
drm_plane.c drm/atomic: Convert pageflip ioctl locking to interruptible. 2017-09-13 09:51:53 +02:00
drm_plane_helper.c
drm_prime.c drm/core: clean up references to drm_dev_unref() 2017-09-27 10:53:12 +02:00
drm_print.c
drm_probe_helper.c drm: handle override and firmware EDID at drm_do_get_edid() level 2017-09-19 17:49:25 +03:00
drm_property.c drm: rename, adjust and export drm_atomic_replace_property_blob 2017-07-14 15:53:06 +02:00
drm_rect.c
drm_scatter.c
drm_scdc_helper.c drm/scdc-helper: Use consistent spelling for TMDS 2017-09-01 19:53:25 +02:00
drm_simple_kms_helper.c drm: Plumb modifiers through plane init 2017-08-01 17:50:06 +01:00
drm_syncobj.c drm: Make syncobj import/export functions static 2017-09-11 15:53:33 +03:00
drm_sysfs.c
drm_trace.h drm: Use correct path to trace include 2017-09-05 11:11:18 +02:00
drm_trace_points.c
drm_vblank.c Merge airlied/drm-next into drm-misc-next 2017-07-26 13:43:33 +02:00
drm_vm.c drm: Document device unplug infrastructure 2017-08-11 10:48:03 +02:00
drm_vma_manager.c
Kconfig drm: handle override and firmware EDID at drm_do_get_edid() level 2017-09-19 17:49:25 +03:00
Makefile drm: handle override and firmware EDID at drm_do_get_edid() level 2017-09-19 17:49:25 +03:00