linux-stable/include/drm
Ville Syrjälä 3092ef7774 drm/edid: Parse topology block for all DispID structure v1.x
[ Upstream commit e0a200ab4b ]

DisplayID spec v1.3 revision history notes do claim that
the toplogy block was added in v1.3 so requiring structure
v1.2 would seem correct, but there is at least one EDID in
edid.tv with a topology block and structure v1.0. And
there are also EDIDs with DisplayID structure v1.3 which
seems to be totally incorrect as DisplayID spec v1.3 lists
structure v1.2 as the only legal value.

Unfortunately I couldn't find copies of DisplayID spec
v1.0-v1.2 anywhere (even on vesa.org), so I'll have to
go on empirical evidence alone.

We used to parse the topology block on all v1.x
structures until the check for structure v2.0 was added.
Let's go back to doing that as the evidence does suggest
that there are DisplayIDs in the wild that would miss
out on the topology stuff otherwise.

Also toss out DISPLAY_ID_STRUCTURE_VER_12 entirely as
it doesn't appear we can really use it for anything.

I *think* we could technically skip all the structure
version checks as the block tags shouldn't conflict
between v2.0 and v1.x. But no harm in having a bit of
extra sanity checks I guess.

So far I'm not aware of any user reported regressions
from overly strict check, but I do know that it broke
igt/kms_tiled_display's fake DisplayID as that one
gets generated with structure v1.0.

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Fixes: c5a486af9d ("drm/edid: parse Tiled Display Topology Data Block for DisplayID 2.0")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240410180139.21352-1-ville.syrjala@linux.intel.com
Acked-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-05-30 09:44:52 +02:00
..
bridge drm/bridge: aux-hpd: separate allocation and registration 2024-02-23 17:00:56 +02:00
display drm-misc-next for v6.9: 2024-03-01 15:27:50 +10:00
i2c
ttm Merge drm/drm-next into drm-misc-next 2024-01-29 14:20:23 +01:00
amd_asic_type.h drm/amdgpu: Optimize the asic type fix code 2023-11-03 12:18:32 -04:00
drm_accel.h drm/debugfs: rework debugfs directory creation v5 2023-09-01 08:51:18 +02:00
drm_aperture.h drm/aperture: Remove primary argument 2023-04-16 14:17:41 +02:00
drm_atomic.h drm/atomic: Make the drm_atomic_state documentation less ambiguous 2023-12-18 11:45:34 +01:00
drm_atomic_helper.h drm-misc-next for $kernel-version: 2023-12-19 17:07:32 +10:00
drm_atomic_state_helper.h
drm_atomic_uapi.h
drm_audio_component.h
drm_auth.h drm: Remove source code for non-KMS drivers 2023-12-06 10:08:37 +01:00
drm_blend.h Revert "drm: Introduce pixel_source DRM plane property" 2023-12-04 21:33:10 +02:00
drm_bridge.h drm/bridge: correct DRM_BRIDGE_OP_EDID documentation 2024-03-14 15:21:23 +02:00
drm_bridge_connector.h
drm_buddy.h drm/buddy: Improve contiguous memory allocation 2023-09-11 20:18:00 +02:00
drm_cache.h
drm_client.h drm/debugfs: rework debugfs directory creation v5 2023-09-01 08:51:18 +02:00
drm_color_mgmt.h drm: using mul_u32_u32() requires linux/math64.h 2023-12-19 15:29:17 +02:00
drm_connector.h drm: Add HPD state to drm_connector_oob_hotplug_event() 2023-10-11 13:20:22 +03:00
drm_crtc.h drm: Remove references to removed transitional helpers 2023-07-29 21:25:16 +02:00
drm_crtc_helper.h
drm_damage_helper.h
drm_debugfs.h drm/gpuvm: rename struct drm_gpuva_manager to struct drm_gpuvm 2023-09-26 01:51:28 +02:00
drm_debugfs_crc.h
drm_device.h drm: Remove source code for non-KMS drivers 2023-12-06 10:08:37 +01:00
drm_displayid.h drm/edid: Parse topology block for all DispID structure v1.x 2024-05-30 09:44:52 +02:00
drm_drv.h drm: Remove source code for non-KMS drivers 2023-12-06 10:08:37 +01:00
drm_edid.h drm: Move drm_set_preferred_mode() helper from drm_edid to drm_modes 2024-01-05 21:14:46 +01:00
drm_eld.h drm/eld: add helpers to modify the SADs of an ELD 2023-11-09 16:48:27 +02:00
drm_encoder.h drm/encoder: register per-encoder debugfs dir 2023-12-04 16:07:29 +02:00
drm_encoder_slave.h
drm_exec.h Merge drm/drm-next into drm-misc-next 2024-01-29 14:20:23 +01:00
drm_fb_dma_helper.h
drm_fb_helper.h drm/fb-helper: Remove unused inline function drm_fb_helper_defio_init() 2023-07-25 20:38:37 +02:00
drm_fbdev_dma.h drm/fbdev-dma: Implement fbdev emulation for GEM DMA helpers 2023-03-14 17:07:47 +01:00
drm_fbdev_generic.h
drm_file.h drm: Remove source code for non-KMS drivers 2023-12-06 10:08:37 +01:00
drm_fixed.h drm: Fix drm_fixp2int_round() making it add 0.5 2024-03-18 23:28:28 -01:00
drm_flip_work.h drm: Fix flip-task docs 2023-11-14 10:23:12 +01:00
drm_format_helper.h drm/format-helper: Pass format-conversion state to helpers 2023-11-14 10:16:53 +01:00
drm_fourcc.h drm: Remove plane hsub/vsub alignment requirement for core helpers 2023-10-12 09:51:19 +02:00
drm_framebuffer.h drm: Remove legacy cursor hotspot code 2023-11-24 11:58:02 +01:00
drm_gem.h drm: add drm_gem_object_is_shared_for_memory_stats() helper 2024-02-16 12:52:50 +01:00
drm_gem_atomic_helper.h drm/atomic-helper: Add format-conversion state to shadow-plane state 2023-11-14 10:01:14 +01:00
drm_gem_dma_helper.h drm: Clear fd/handle callbacks in struct drm_driver 2023-06-26 11:08:41 +02:00
drm_gem_framebuffer_helper.h
drm_gem_shmem_helper.h drm: Clear fd/handle callbacks in struct drm_driver 2023-06-26 11:08:41 +02:00
drm_gem_ttm_helper.h
drm_gem_vram_helper.h drm/vram-helper: Fix 'multi-line' kernel-doc comments 2024-01-30 13:03:01 -07:00
drm_gpuvm.h Merge drm/drm-next into drm-misc-next 2024-01-29 14:20:23 +01:00
drm_ioctl.h drm: Remove locking for legacy ioctls and DRM_UNLOCKED 2023-12-06 10:08:32 +01:00
drm_kunit_helpers.h drm/tests: Add helper to create mock crtc 2024-02-28 16:36:36 +01:00
drm_lease.h
drm_managed.h drm/managed: Add drmm_release_action 2024-01-17 10:38:39 +01:00
drm_mipi_dbi.h drm/format-helper: Pass format-conversion state to helpers 2023-11-14 10:16:53 +01:00
drm_mipi_dsi.h drm/mipi-dsi: use correct return type for the DSC functions 2024-05-30 09:44:51 +02:00
drm_mm.h
drm_mode_config.h drm/fbdev-generic: Remove unused prefer_shadow_fbdev flag 2023-03-22 13:32:47 +01:00
drm_mode_object.h drm/drm_mode_object: increase max objects to accommodate new color props 2023-12-13 15:09:53 -05:00
drm_modes.h drm: Move drm_set_preferred_mode() helper from drm_edid to drm_modes 2024-01-05 21:14:46 +01:00
drm_modeset_helper.h
drm_modeset_helper_vtables.h drm/probe-helper: warn about negative .get_modes() 2024-03-13 10:44:14 +02:00
drm_modeset_lock.h
drm_module.h
drm_of.h
drm_panel.h drm/panel: Fix kernel-doc typo for `follower_lock` 2023-08-03 10:21:27 +02:00
drm_pciids.h
drm_plane.h drm/drm_plane: track color mgmt changes per plane 2023-12-13 15:09:53 -05:00
drm_plane_helper.h drm/plane-helper: Move drm_plane_helper_atomic_check() into udl 2023-12-06 10:35:49 +01:00
drm_prime.h Revert "drm/prime: Unexport helpers for fd/handle conversion" 2023-11-30 14:46:04 -05:00
drm_print.h drm-misc-next for v6.9: 2024-02-16 13:16:40 +10:00
drm_privacy_screen_consumer.h
drm_privacy_screen_driver.h
drm_privacy_screen_machine.h
drm_probe_helper.h drm/probe-helper: remove unused drm_connector_helper_get_modes_from_ddc() 2024-01-08 12:37:52 +02:00
drm_property.h drm/drm_property: make replace_property_blob_from_id a DRM helper 2023-12-13 15:09:53 -05:00
drm_rect.h drm/rect: fix kernel-doc typos 2024-02-05 11:02:07 +01:00
drm_self_refresh_helper.h
drm_simple_kms_helper.h
drm_suballoc.h drm/suballoc: Extract amdgpu_sa.c as generic suballocation helper 2023-03-01 17:18:19 +01:00
drm_syncobj.h drm/syncobj: add IOCTL to register an eventfd 2023-07-20 12:01:03 +02:00
drm_sysfs.h drm/sysfs: rename drm_sysfs_connector_status_event() 2023-06-23 15:54:00 +02:00
drm_util.h
drm_utils.h
drm_vblank.h drm/vblank: Add helper to get next vblank time 2023-03-28 14:52:59 -07:00
drm_vblank_work.h
drm_vma_manager.h
drm_writeback.h
gma_drm.h
gpu_scheduler.h drm/sched: Reverse run-queue priority enumeration 2023-11-24 23:03:53 -05:00
gud.h
i915_component.h drm/i915/mtl: Define GSC Proxy component interface 2023-05-04 02:57:28 -07:00
i915_drm.h drm/i915_drm.h: fix a typo 2023-06-02 20:05:45 +03:00
i915_gsc_proxy_mei_interface.h drm/i915/mtl: Define GSC Proxy component interface 2023-05-04 02:57:28 -07:00
i915_hdcp_interface.h drm/i915/hdcp: Move away from master naming to arbiter 2023-05-31 10:22:13 +05:30
i915_pciids.h drm/i915: Update ADL-N PCI IDs 2024-02-14 13:01:27 -08:00
i915_pxp_tee_interface.h mei: update mei-pxp's component interface with timeouts 2023-10-18 10:01:33 +02:00
intel-gtt.h
intel_lpe_audio.h
spsc_queue.h
task_barrier.h drm: Spelling s/randevouz/rendez-vous/ 2023-07-29 21:11:54 +02:00
xe_pciids.h drm/xe: Sync MTL PCI IDs with i915 2023-12-21 11:45:01 -05:00