All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Shawn C <shawn.c.lee@intel.com>
To: dri-devel@lists.freedesktop.org
Cc: Cooper Chiou <cooper.chiou@intel.com>,
	William Tseng <william.tseng@intel.com>,
	Jani Nikula <jani.nikula@intel.com>,
	Lee Shawn C <shawn.c.lee@intel.com>
Subject: [PATCH] drm/dp: follow DP link CTS spec to read link status back
Date: Wed,  7 Jul 2021 23:00:42 +0800	[thread overview]
Message-ID: <20210707150042.6376-1-shawn.c.lee@intel.com> (raw)

Refer to DP link CTS 1.2/1.4 spec, the following test case request
source read DPCD 200h - 205h to get latest link status from sink.

(4.3.2.4) Handling of IRQ HPD Pulse with No Error Status Bits Set
(400.3.2.1) Successful Link Re-training After IRQ HPD Pulse
            Due to Loss of Symbol Lock: HBR2 Extension
(400.3.2.2) Successful Link Re-training After IRQ HPD Pulse Due
            to Loss of Clock Recovery Lock: HBR2 Extension
(400.3.2.3) Successful Link Re-training After IRQ HPD Pulse Due
            to Loss of Inter-lane Alignment Lock: HBR2 Extension

So far, DRM DP driver just read back the link status from 202h
to 207h. DPR-120 would judge source can't pass these cases and
shows below error messages.

"Test FAILED, Source DUT does not read DPCD registers 200h-205h
within 100 ms".

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Cooper Chiou <cooper.chiou@intel.com>
Cc: William Tseng <william.tseng@intel.com>
Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com>
---
 drivers/gpu/drm/drm_dp_helper.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index 24bbc710c825..2b4d1f498ce3 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -410,17 +410,19 @@ int drm_dp_dpcd_read_phy_link_status(struct drm_dp_aux *aux,
 				     u8 link_status[DP_LINK_STATUS_SIZE])
 {
 	int ret;
+	u8 full_link_stat[DP_LINK_STATUS_SIZE + 2];
 
 	if (dp_phy == DP_PHY_DPRX) {
 		ret = drm_dp_dpcd_read(aux,
-				       DP_LANE0_1_STATUS,
-				       link_status,
-				       DP_LINK_STATUS_SIZE);
+				       DP_SINK_COUNT,
+				       full_link_stat,
+				       DP_LINK_STATUS_SIZE + 2);
 
 		if (ret < 0)
 			return ret;
 
-		WARN_ON(ret != DP_LINK_STATUS_SIZE);
+		memcpy(link_status, full_link_stat + 2, DP_LINK_STATUS_SIZE);
+		WARN_ON(ret != DP_LINK_STATUS_SIZE + 2);
 
 		return 0;
 	}
-- 
2.17.1


             reply	other threads:[~2021-07-07 14:54 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-07 15:00 Lee Shawn C [this message]
2021-07-07 15:05 ` [PATCH] drm/dp: follow DP link CTS spec to read link status back Simon Ser
2021-07-07 15:14   ` Lee, Shawn C
2021-07-07 15:33 ` [PATCH v2] " Lee Shawn C
2021-07-07 16:14   ` Jani Nikula
2021-07-08  3:04     ` Lee, Shawn C
2021-07-12 14:16       ` Lee, Shawn C
2021-08-19  7:55         ` Lee, Shawn C

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210707150042.6376-1-shawn.c.lee@intel.com \
    --to=shawn.c.lee@intel.com \
    --cc=cooper.chiou@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=william.tseng@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.