linux/drivers/gpu/drm
KuoHsiang Chou 594e9c04b5 drm/ast: Create the driver for ASPEED proprietory Display-Port
V1:
1. The MCU FW controling ASPEED DP is loaded by BMC boot loader.
2. Driver starts after CR[3:1] == 111b that indicates Tx is ASTDP,
   and CRD1[5] has been asserted by BMVC boot loader.
3. EDID is prioritized by DP monitor.
4. DP's EDID has high priority to decide resolution supporting.

V2:
Modules description:
1. ASTDP (ASPEED DisplayPort) is controlled by dedicated
   AST-MCU (ASPEED propriatary MCU).
2. MCU is looping in charged of HPD, Read EDID, Link Training with
   DP sink.
3. ASTDP and AST-MUC reside in BMC (Baseboard Management controller)
   addressing-space.
4. ASPEED DRM driver requests MCU to get HPD and EDID by CR-scratched
   register.

Booting sequence:
1. Check if TX is ASTDP					// ast_dp_launch()
2. Check if DP-MCU FW has loaded					// ast_dp_launch()
3. Read EDID					// ast_dp_read_edid()
4. Resolution switch					// ast_dp_SetOutput()

V3:
1. Remove unneeded semicolon.
2. Apply to git://anongit.freedesktop.org/drm/drm, instead of
   git://anongit.freedesktop.org/drm/drm-misc
3. Resolve auto build test WARNINGs on V1 patch.

V4:
1. Sync code-base with kernel 5.17_rc6
2. Remove the define of DPControlPower, because DP chips need to be
   powered on to be used.
3. Remove the switches of PHY and Display from EDID procedure.
4. Revise increaing delay to fixed delay, because this version kernel
   doesn't detect minitor consistenntly.
5. Create clean-up code used for reset of power state on errors with
   -EIO manner.
6. Revise the DP detection by TX type and its DP-FW status during
   booting and resume.
7. Correct the CamelCase Style.
8. Use register reading while needing, and remove to hold full
   register.
9. Instead of 'u8', revise to 'bool' on swwitch of PHY and video.
10.Correct typo
11.Remove the duplicated copy of TX definition.
12.Use EDID_LENGTH as the constant of 128.

Signed-off-by: KuoHsiang Chou <kuohsiang_chou@aspeedtech.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20220428075603.20904-1-kuohsiang_chou@aspeedtech.com
2022-05-03 16:04:03 +02:00
..
amd Linux 5.18-rc5 2022-05-03 16:08:48 +10:00
arm malidp: Fix NULL vs IS_ERR() checking 2022-04-28 16:08:19 +01:00
armada Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
aspeed drm/aspeed: Add AST2600 chip support 2022-03-03 09:08:35 +10:30
ast drm/ast: Create the driver for ASPEED proprietory Display-Port 2022-05-03 16:04:03 +02:00
atmel-hlcdc drm/atmel-hlcdc: Use drm_module_platform_driver() to register the driver 2022-01-27 19:15:46 +01:00
bridge drm/bridge: tfp410: Make tfp410_fini() return void 2022-05-02 16:51:13 +02:00
display drm/display: Select DP helper for DRM_DP_AUX_CHARDEV and DRM_DP_CEC 2022-04-29 10:11:08 +02:00
etnaviv dma-buf: specify usage while adding fences to dma_resv obj v7 2022-04-07 12:53:53 +02:00
exynos drm/display: Introduce a DRM display-helper module 2022-04-25 11:19:21 +02:00
fsl-dcu drm/fsl-dcu: Use drm_module_platform_driver() to register the driver 2022-01-27 19:15:46 +01:00
gma500 drm: Rename dp/ to display/ 2022-04-25 11:17:45 +02:00
gud dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
hisilicon Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
hyperv drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
i2c
i810
i915 Linux 5.18-rc5 2022-05-03 16:08:48 +10:00
imx drm-misc-next for 5.19: 2022-04-12 17:44:27 +10:00
ingenic drm/ingenic: Add dw-hdmi driver specialization for jz4780 2022-04-11 16:04:39 +01:00
kmb drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
lib drm/selftests: add drm buddy alloc range testcase 2022-02-23 10:44:43 +01:00
lima dma-buf: specify usage while adding fences to dma_resv obj v7 2022-04-07 12:53:53 +02:00
mcde Merge drm/drm-next into drm-misc-next 2022-04-05 11:06:58 +02:00
mediatek Merge drm/drm-next into drm-misc-next 2022-04-05 11:06:58 +02:00
meson Merge drm/drm-next into drm-misc-next 2022-04-05 11:06:58 +02:00
mga
mgag200 drm for 5.18-rc1 2022-03-24 16:19:43 -07:00
msm Linux 5.18-rc5 2022-05-03 16:08:48 +10:00
mxsfb drm: mxsfb: Obtain bus flags from bridge state 2022-04-26 00:03:21 +02:00
nouveau drm/nouveau: use drm_gem_plane_helper_prepare_fb 2022-05-02 09:02:54 +02:00
omapdrm Merge drm/drm-next into drm-misc-next 2022-04-05 11:06:58 +02:00
panel Merge drm/drm-next into drm-misc-next 2022-05-03 11:53:42 +02:00
panfrost dma-buf: specify usage while adding fences to dma_resv obj v7 2022-04-07 12:53:53 +02:00
pl111 drm: Remove CONFIG_DRM_KMS_CMA_HELPER option 2021-11-30 11:10:03 +01:00
qxl drm/qxl: Use TTM builtin resource manager debugfs code 2022-04-20 21:06:02 -04:00
r128
radeon Linux 5.18-rc5 2022-05-03 16:08:48 +10:00
rcar-du drm-misc-next for v5.18: 2022-03-04 13:41:57 +10:00
rockchip drm/rockchip: dw_hdmi: add regulator support 2022-05-03 12:56:05 +02:00
savage
scheduler drm/sched: use __string in tracepoints 2022-04-26 15:11:00 -04:00
selftests drm: Rename dp/ to display/ 2022-04-25 11:17:45 +02:00
shmobile drm/shmobile: Use drm_module_platform_driver() to register the driver 2022-01-27 19:15:47 +01:00
sis
solomon drm/ssd130x: Make ssd130x_remove() return void 2022-04-26 09:43:37 +02:00
sprd Driver core changes for 5.18-rc1 2022-03-28 12:41:28 -07:00
sti drm/sti: fix typos in comments 2022-04-07 11:31:52 +02:00
stm stm: ltdc: fix two incorrect NULL checks on list iterator 2022-04-07 10:26:59 +02:00
sun4i Merge drm/drm-next into drm-misc-next 2022-05-03 11:53:42 +02:00
tdfx
tegra drm/display: Move SCDC helpers into display-helper library 2022-04-25 11:19:37 +02:00
tidss drm/tidss: Soft Reset DISPC on startup 2022-04-19 15:09:45 +03:00
tilcdc drm/tilcdc: fix typos in comment 2022-04-25 10:18:52 +03:00
tiny Merge drm/drm-next into drm-misc-next 2022-04-05 11:06:58 +02:00
ttm drm/ttm: use kvcalloc() instead of kvmalloc_array() in ttm_tt v2 2022-04-21 14:47:30 +02:00
tve200 drm/tve200: Use drm_module_platform_driver() to register the driver 2022-01-27 19:15:48 +01:00
udl dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
v3d drm/v3d: Fix null pointer dereference of pointer perfmon 2022-04-26 11:55:28 -01:00
vboxvideo drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
vc4 Merge drm/drm-next into drm-misc-next 2022-05-03 11:53:42 +02:00
vgem dma-buf: specify usage while adding fences to dma_resv obj v7 2022-04-07 12:53:53 +02:00
via
virtio dma-buf: specify usage while adding fences to dma_resv obj v7 2022-04-07 12:53:53 +02:00
vkms Merge tag 'drm-intel-gt-next-2022-02-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next 2022-02-23 15:03:51 -05:00
vmwgfx Linux 5.18-rc5 2022-05-03 16:08:48 +10:00
xen xen: branch for v5.18-rc1 2022-03-28 14:32:39 -07:00
xlnx drm/display: Introduce a DRM display-helper module 2022-04-25 11:19:21 +02:00
drm_agpsupport.c
drm_aperture.c
drm_atomic_helper.c drm: fix error found in some cases after the patch d1af5cd86997 2022-01-14 14:31:54 +01:00
drm_atomic_state_helper.c drm/object: Add default color encoding and range value at reset 2022-02-25 17:57:14 +01:00
drm_atomic_uapi.c drm: handle kernel fences in drm_gem_plane_helper_prepare_fb v2 2022-05-02 09:01:51 +02:00
drm_atomic.c drm/atomic: Add atomic_print_state to private objects 2022-03-31 10:19:45 +02:00
drm_auth.c drm: get rid of DRM_DEBUG_* log calls in drm core, files drm_a*.c 2021-11-26 16:45:22 +01:00
drm_blend.c drm/blend: fix typo in the comment 2022-03-16 09:36:13 +01:00
drm_bridge_connector.c drm/bridge_connector: enable HPD by default if supported 2022-03-04 19:34:24 +00:00
drm_bridge.c
drm_buddy.c drm: add a check to verify the size alignment 2022-04-11 15:35:47 +02:00
drm_bufs.c
drm_cache.c drm for 5.18-rc1 2022-03-24 16:19:43 -07:00
drm_client_modeset.c drm: Convert open-coded yes/no strings to yesno() 2022-02-07 13:04:25 -08:00
drm_client.c dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_color_mgmt.c drm/docs: Document where the C8 color lut is stored 2022-01-25 09:36:20 +01:00
drm_connector.c drm/display: Move HDMI helpers into display-helper module 2022-04-25 11:19:36 +02:00
drm_context.c
drm_crtc_helper_internal.h drm/dp: Move DP declarations into separate header file 2022-01-17 11:25:44 +01:00
drm_crtc_helper.c drm: Use drm_mode_copy() 2022-04-12 09:27:20 +03:00
drm_crtc_internal.h
drm_crtc.c
drm_damage_helper.c
drm_debugfs_crc.c
drm_debugfs.c drm: Plumb debugfs_init through to panels 2022-02-15 15:25:18 -08:00
drm_displayid.c
drm_dma.c
drm_drv.c
drm_dumb_buffers.c
drm_edid_load.c
drm_edid.c drm/edid: drop kernel-doc for static functions 2022-04-29 14:04:55 +03:00
drm_encoder_slave.c
drm_encoder.c
drm_fb_cma_helper.c
drm_fb_helper.c drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
drm_file.c
drm_flip_work.c
drm_format_helper.c drm/format-helper: Add RGB565-to-XRGB8888 conversion 2022-04-27 08:52:06 +02:00
drm_fourcc.c drm/fourcc: Add packed 10bit YUV 4:2:0 format 2021-12-16 11:23:22 +01:00
drm_framebuffer.c drm: introduce fb_modifiers_not_supported flag in mode_config 2022-01-31 21:45:23 +01:00
drm_gem_atomic_helper.c drm: handle kernel fences in drm_gem_plane_helper_prepare_fb v2 2022-05-02 09:01:51 +02:00
drm_gem_cma_helper.c Linux 5.17-rc6 2022-02-28 14:57:14 +10:00
drm_gem_framebuffer_helper.c dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_gem_shmem_helper.c drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
drm_gem_ttm_helper.c dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_gem_vram_helper.c Merge drm/drm-next into drm-misc-next 2022-04-05 11:06:58 +02:00
drm_gem.c dma-buf: add enum dma_resv_usage v4 2022-04-07 12:53:53 +02:00
drm_hashtab.c drm: Declare hashtable as legacy 2021-11-30 09:41:28 +01:00
drm_internal.h dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_ioc32.c
drm_ioctl.c drm: introduce fb_modifiers_not_supported flag in mode_config 2022-01-31 21:45:23 +01:00
drm_irq.c
drm_kms_helper_common.c drm/dp: Move DisplayPort helpers into separate helper module 2022-01-17 11:25:44 +01:00
drm_lease.c
drm_legacy_misc.c
drm_legacy.h drm: Declare hashtable as legacy 2021-11-30 09:41:28 +01:00
drm_lock.c
drm_managed.c
drm_memory.c
drm_mipi_dbi.c dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_mipi_dsi.c drm/display: Move DSC header and helpers into display-helper module 2022-04-25 11:19:36 +02:00
drm_mm.c lib/stackdepot: allow optional init and stack_table allocation by kvmalloc() 2022-01-22 08:33:37 +02:00
drm_mode_config.c
drm_mode_object.c drm/object: Add drm_object_property_get_default_value() function 2022-02-25 17:55:42 +01:00
drm_modes.c drm/modes: Make width-mm/height-mm check in of_get_drm_panel_display_mode() mandatory 2022-04-24 23:54:05 +02:00
drm_modeset_helper.c
drm_modeset_lock.c lib/stackdepot: allow optional init and stack_table allocation by kvmalloc() 2022-01-22 08:33:37 +02:00
drm_nomodeset.c drm: Fix build error caused by missing drm_nomodeset.o 2021-11-27 21:05:58 +01:00
drm_of.c Revert "drm: of: Lookup if child node has panel or bridge" 2022-04-21 09:18:08 +02:00
drm_panel_orientation_quirks.c Merge drm/drm-next into drm-intel-next 2022-01-31 13:19:33 -05:00
drm_panel.c
drm_pci.c
drm_plane_helper.c
drm_plane.c drm/plane: Move range check for format_count earlier 2022-04-28 16:13:04 +01:00
drm_prime.c dma-buf-map: Rename to iosys-map 2022-02-07 16:35:35 -08:00
drm_print.c
drm_privacy_screen_x86.c drm-misc-next for v5.18: 2022-02-01 19:02:41 +10:00
drm_privacy_screen.c drm-misc-next for v5.18: 2022-02-25 05:50:18 +10:00
drm_probe_helper.c drm/probe-helper: use drm_kms_helper_connector_hotplug_event 2021-11-02 14:27:14 +01:00
drm_property.c
drm_rect.c
drm_scatter.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c
drm_syncobj.c drm/syncobj: flatten dma_fence_chains on transfer 2022-02-11 11:30:01 +01:00
drm_sysfs.c drm/sysfs: introduce drm_sysfs_connector_hotplug_event 2021-11-02 14:27:06 +01:00
drm_trace_points.c
drm_trace.h
drm_vblank_work.c
drm_vblank.c drm: Use drm_mode_copy() 2022-04-12 09:27:20 +03:00
drm_vm.c
drm_vma_manager.c
drm_writeback.c
Kconfig drm/display: Move HDMI helpers into display-helper module 2022-04-25 11:19:36 +02:00
Makefile drm/display: Move SCDC helpers into display-helper library 2022-04-25 11:19:37 +02:00