Hi Greg,
On Tue, Sep 02, 2025 at 03:20:41PM +0200, Greg Kroah-Hartman wrote:
6.16-stable review patch. If anyone has any objections, please let me know.
Thanks for queuing this and the corresponding reverts for the other stable trees. This one patch doesn't match what I sent, the address should be changed to DP_TRAINING_PATTERN_SET not to DP_DPCD_REV, see [1]. I still think that's the correct thing to do here conforming to the DP Standard and matching what the upstream kernel does, also solving a link training issue for a DP2.0 docking station.
The reverts queued for the other stable trees are correct, since for now I do not want to change the behavior in those (i.e. those trees should continue to use the DP_DPCD_REV register matching what's been the case since the DPCD probing was introduced).
Thanks, Imre
[1] https://lore.kernel.org/all/20250828174932.414566-7-imre.deak@intel.com
From: Imre Deak imre.deak@intel.com
This reverts commit 944e732be9c3a33e64e9fb0f5451a37fc252ddfc which is commit a40c5d727b8111b5db424a1e43e14a1dcce1e77f upstream.
The upstream commit a40c5d727b8111b5db424a1e43e14a1dcce1e77f ("drm/dp: Change AUX DPCD probe address from DPCD_REV to LANE0_1_STATUS") the reverted commit backported causes a regression, on one eDP panel at least resulting in display flickering, described in detail at the Link: below. The issue fixed by the upstream commit will need a different solution, revert the backport for now.
Cc: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Cc: Sasha Levin sashal@kernel.org Link: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14558 Signed-off-by: Imre Deak imre.deak@intel.com Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
drivers/gpu/drm/display/drm_dp_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/gpu/drm/display/drm_dp_helper.c +++ b/drivers/gpu/drm/display/drm_dp_helper.c @@ -725,7 +725,7 @@ ssize_t drm_dp_dpcd_read(struct drm_dp_a * monitor doesn't power down exactly after the throw away read. */ if (!aux->is_remote) {
ret = drm_dp_dpcd_probe(aux, DP_LANE0_1_STATUS);
if (ret < 0) return ret; }ret = drm_dp_dpcd_probe(aux, DP_DPCD_REV);