acrn-kernel/include/drm
Dave Stevenson 5044e5f251 drm/bridge: Introduce pre_enable_prev_first to alter bridge init order
[ Upstream commit 4fb912e5e1 ]

DSI sink devices typically want the DSI host powered up and configured
before they are powered up. pre_enable is the place this would normally
happen, but they are called in reverse order from panel/connector towards
the encoder, which is the "wrong" order.

Add a new flag pre_enable_prev_first that any bridge can set
to swap the order of pre_enable (and post_disable) for that and the
immediately previous bridge.
Should the immediately previous bridge also set the
pre_enable_prev_first flag, the previous bridge to that will be called
before either of those which requested pre_enable_prev_first.

eg:
- Panel
- Bridge 1
- Bridge 2 pre_enable_prev_first
- Bridge 3
- Bridge 4 pre_enable_prev_first
- Bridge 5 pre_enable_prev_first
- Bridge 6
- Encoder
Would result in pre_enable's being called as Panel, Bridge 1, Bridge 3,
Bridge 2, Bridge 6, Bridge 5, Bridge 4, Encoder.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
Tested-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Link: https://lore.kernel.org/r/20221205173328.1395350-5-dave.stevenson@raspberrypi.com
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Stable-dep-of: dd9e329af7 ("drm/bridge: ti-sn65dsi83: Fix enable/disable flow to meet spec")
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-19 16:21:23 +02:00
..
bridge
display drm/dsc: fix DP_DSC_MAX_BPP_DELTA_* macro values 2023-05-17 11:53:59 +02:00
i2c
ttm drm/ttm: fix undefined behavior in bit shift for TTM_TT_FLAG_PRIV_POPULATED 2022-12-31 13:32:06 +01:00
amd_asic_type.h
drm_aperture.h
drm_atomic.h
drm_atomic_helper.h drm: drm_atomic_helper: Add a new helper to deal with the writeback connector validation 2022-09-05 20:12:16 -01:00
drm_atomic_state_helper.h
drm_atomic_uapi.h
drm_audio_component.h
drm_auth.h
drm_blend.h
drm_bridge.h drm/bridge: Introduce pre_enable_prev_first to alter bridge init order 2023-07-19 16:21:23 +02:00
drm_bridge_connector.h
drm_buddy.h
drm_cache.h
drm_client.h
drm_color_mgmt.h
drm_connector.h drm/edid: add a quirk for two LG monitors to get them to work on 10bpc 2022-12-31 13:32:59 +01:00
drm_crtc.h drm/crtc: Introduce drmm_crtc_init_with_planes 2022-07-13 10:46:05 +02:00
drm_crtc_helper.h
drm_damage_helper.h
drm_debugfs.h
drm_debugfs_crc.h
drm_device.h
drm_displayid.h
drm_drv.h
drm_edid.h drm/edid: Handle EDID 1.4 range descriptor h/vfreq offsets 2022-09-02 16:38:51 +03:00
drm_encoder.h drm/encoder: Introduce drmm_encoder_init 2022-07-13 10:46:05 +02:00
drm_encoder_slave.h drm: Remove linux/i2c.h from drm_crtc.h 2022-07-05 21:15:23 +03:00
drm_fb_dma_helper.h drm/gem: rename GEM CMA helpers to GEM DMA helpers 2022-08-03 18:31:49 +02:00
drm_fb_helper.h drm: Remove linux/fb.h from drm_crtc.h 2022-07-05 21:14:02 +03:00
drm_file.h drm: Remove the drm_get_unmapped_area() helper 2022-08-04 11:39:27 -04:00
drm_fixed.h drm: Add fixed-point helper to get rounded integer values 2023-07-19 16:21:18 +02:00
drm_flip_work.h
drm_format_helper.h drm/format-helper: Add drm_fb_build_fourcc_list() helper 2022-09-12 09:15:49 +02:00
drm_fourcc.h drm/fourcc: Add drm_format_info.is_color_indexed flag 2022-07-09 15:00:08 +02:00
drm_framebuffer.h drm/fb: Improve drm_framebuffer.offsets documentation 2022-07-09 15:58:52 +02:00
drm_gem.h drm/msm/gem: Prevent blocking within shrinker loop 2023-03-22 13:33:39 +01:00
drm_gem_atomic_helper.h
drm_gem_dma_helper.h drm/gem: rename struct drm_gem_dma_object.{paddr => dma_addr} 2022-08-03 18:32:27 +02:00
drm_gem_framebuffer_helper.h
drm_gem_shmem_helper.h drm: correct comments 2022-07-21 12:16:10 +02:00
drm_gem_ttm_helper.h
drm_gem_vram_helper.h
drm_ioctl.h
drm_lease.h
drm_legacy.h
drm_managed.h drm: fix drmm_mutex_init() 2023-05-30 14:03:20 +01:00
drm_mipi_dbi.h drm/probe-helper: Add drm_crtc_helper_mode_valid_fixed() 2022-09-12 09:14:26 +02:00
drm_mipi_dsi.h drm/mipi-dsi: Fix byte order of 16-bit DCS set/get brightness 2023-03-10 09:33:14 +01:00
drm_mm.h
drm_mode_config.h
drm_mode_object.h
drm_modes.h drm/modes: Add initializer macro DRM_MODE_INIT() 2022-09-12 09:14:59 +02:00
drm_modeset_helper.h
drm_modeset_helper_vtables.h
drm_modeset_lock.h
drm_module.h
drm_of.h
drm_panel.h drm/panel: drop DSC pps pointer 2022-09-18 09:38:06 -07:00
drm_pciids.h
drm_plane.h drm/plane: Allocate planes with drm_universal_plane_alloc() 2022-09-20 09:41:06 +02:00
drm_plane_helper.h drm/plane-helper: Add the missing declaration of drm_atomic_state 2023-01-12 12:02:52 +01:00
drm_prime.h
drm_print.h drm/drm_print: correct format problem 2023-03-10 09:33:57 +01:00
drm_privacy_screen_consumer.h
drm_privacy_screen_driver.h
drm_privacy_screen_machine.h
drm_probe_helper.h drm/probe-helper: Add drm_crtc_helper_mode_valid_fixed() 2022-09-12 09:14:26 +02:00
drm_property.h
drm_rect.h drm/rect: Add DRM_RECT_INIT() macro 2022-06-27 13:45:48 +02:00
drm_self_refresh_helper.h
drm_simple_kms_helper.h
drm_syncobj.h
drm_sysfs.h
drm_util.h
drm_utils.h
drm_vblank.h
drm_vblank_work.h
drm_vma_manager.h drm/drm_vma_manager: Add drm_vma_node_allow_once() 2023-02-01 08:34:42 +01:00
drm_writeback.h
gma_drm.h
gpu_scheduler.h Merge drm/drm-fixes into drm-misc-fixes 2022-10-20 09:09:00 +02:00
gud.h
i915_component.h
i915_drm.h
i915_mei_hdcp_interface.h
i915_pciids.h drm/i915/dg2: Drop one PCI ID 2023-05-11 23:03:07 +09:00
i915_pxp_tee_interface.h
intel-gtt.h agp/intel: Rename intel-gtt symbols 2022-06-22 15:52:55 -07:00
intel_lpe_audio.h
spsc_queue.h
task_barrier.h