Patch "drm/nouveau/dp: Don't probe eDP ports twice harder" has been added to the 6.8-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/nouveau/dp: Don't probe eDP ports twice harder

to the 6.8-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-nouveau-dp-don-t-probe-edp-ports-twice-harder.patch
and it can be found in the queue-6.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 3e077be9d4508e01c5c15e5c83a98f518d7a3996
Author: Lyude Paul <lyude@xxxxxxxxxx>
Date:   Thu Apr 4 19:35:54 2024 -0400

    drm/nouveau/dp: Don't probe eDP ports twice harder
    
    [ Upstream commit bf52d7f9b2067f02efe7e32697479097aba4a055 ]
    
    I didn't pay close enough attention the last time I tried to fix this
    problem - while we currently do correctly take care to make sure we don't
    probe a connected eDP port more then once, we don't do the same thing for
    eDP ports we found to be disconnected.
    
    So, fix this and make sure we only ever probe eDP ports once and then leave
    them at that connector state forever (since without HPD, it's not going to
    change on its own anyway). This should get rid of the last few GSP errors
    getting spit out during runtime suspend and resume on some machines, as we
    tried to reprobe eDP ports in response to ACPI hotplug probe events.
    
    Signed-off-by: Lyude Paul <lyude@xxxxxxxxxx>
    Reviewed-by: Dave Airlie <airlied@xxxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240404233736.7946-3-lyude@xxxxxxxxxx
    (cherry picked from commit fe6660b661c3397af0867d5d098f5b26581f1290)
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c
index 7de7707ec6a89..3f72bc38bd2c4 100644
--- a/drivers/gpu/drm/nouveau/nouveau_dp.c
+++ b/drivers/gpu/drm/nouveau/nouveau_dp.c
@@ -225,12 +225,15 @@ nouveau_dp_detect(struct nouveau_connector *nv_connector,
 	u8 *dpcd = nv_encoder->dp.dpcd;
 	int ret = NOUVEAU_DP_NONE, hpd;
 
-	/* If we've already read the DPCD on an eDP device, we don't need to
-	 * reread it as it won't change
+	/* eDP ports don't support hotplugging - so there's no point in probing eDP ports unless we
+	 * haven't probed them once before.
 	 */
-	if (connector->connector_type == DRM_MODE_CONNECTOR_eDP &&
-	    dpcd[DP_DPCD_REV] != 0)
-		return NOUVEAU_DP_SST;
+	if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
+		if (connector->status == connector_status_connected)
+			return NOUVEAU_DP_SST;
+		else if (connector->status == connector_status_disconnected)
+			return NOUVEAU_DP_NONE;
+	}
 
 	mutex_lock(&nv_encoder->dp.hpd_irq_lock);
 	if (mstm) {




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux