drm/dp: Add an EDID quirk for the DPCD register access probe
authorImre Deak <imre.deak@intel.com>
Mon, 9 Jun 2025 12:55:55 +0000 (15:55 +0300)
committerImre Deak <imre.deak@intel.com>
Thu, 12 Jun 2025 17:44:01 +0000 (20:44 +0300)
commitb87ed522b3643f096ef183ed0ccf2d2b90ddd513
treee76fe7b74093bb63d29a272635eee2bc18a3f56f
parent0b4aa85e8981198e23a68d50ee3c490ccd7f8311
drm/dp: Add an EDID quirk for the DPCD register access probe

Reading DPCD registers has side-effects and some of these can cause a
problem for instance during link training. Based on this it's better to
avoid the probing quirk done before each DPCD register read, limiting
this to the monitor which requires it. Add an EDID quirk for this. Leave
the quirk enabled by default, allowing it to be disabled after the
monitor is detected.

v2: Fix lockdep wrt. drm_dp_aux::hw_mutex when calling
    drm_dp_dpcd_set_probe_quirk() with a dependent lock already held.
v3: Add a helper for determining if DPCD probing is needed. (Jani)
v4:
- s/drm_dp_dpcd_set_probe_quirk/drm_dp_dpcd_set_probe (Jani)
- Fix documentation of drm_dp_dpcd_set_probe().
- Add comment at the end of internal quirk entries.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://lore.kernel.org/r/20250609125556.109538-1-imre.deak@intel.com
drivers/gpu/drm/display/drm_dp_helper.c
drivers/gpu/drm/drm_edid.c
include/drm/display/drm_dp_helper.h
include/drm/drm_edid.h