All of lore.kernel.org
 help / color / mirror / Atom feed
From: <sunpeng.li-5C7GfCeVMHo@public.gmane.org>
To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Cc: John Barberiz <John.Barberiz-5C7GfCeVMHo@public.gmane.org>
Subject: [PATCH 17/18] drm/amd/display: Refactor dp vendor parsing logic to a function
Date: Thu, 18 Apr 2019 14:27:03 -0400	[thread overview]
Message-ID: <1555612024-359-18-git-send-email-sunpeng.li@amd.com> (raw)
In-Reply-To: <1555612024-359-1-git-send-email-sunpeng.li-5C7GfCeVMHo@public.gmane.org>

From: John Barberiz <John.Barberiz@amd.com>

Refactor dp vendor parsing int to a new function, and call it before
get_active_converter_info().

Also, add a flag to skip parsing of Display ID 2.0. Some devices fail on
readind DID2, but we shouldn't fail EDID read because of it. Add this
flag to facilitate the logic.

Change-Id: Id71356bce67ad5e23f46703208c3fe05e477c77e
Signed-off-by: John Barberiz <John.Barberiz@amd.com>
Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Acked-by: Leo Li <sunpeng.li@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 47 +++++++++++++-----------
 drivers/gpu/drm/amd/display/dc/dc_link.h         |  1 +
 2 files changed, 27 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
index 64a309a..1ee544a 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
@@ -2185,6 +2185,30 @@ static int translate_dpcd_max_bpc(enum dpcd_downstream_port_max_bpc bpc)
 	return -1;
 }
 
+static void read_dp_device_vendor_id(struct dc_link *link)
+{
+	struct dp_device_vendor_id dp_id;
+
+	/* read IEEE branch device id */
+	core_link_read_dpcd(
+		link,
+		DP_BRANCH_OUI,
+		(uint8_t *)&dp_id,
+		sizeof(dp_id));
+
+	link->dpcd_caps.branch_dev_id =
+		(dp_id.ieee_oui[0] << 16) +
+		(dp_id.ieee_oui[1] << 8) +
+		dp_id.ieee_oui[2];
+
+	memmove(
+		link->dpcd_caps.branch_dev_name,
+		dp_id.ieee_device_id,
+		sizeof(dp_id.ieee_device_id));
+}
+
+
+
 static void get_active_converter_info(
 	uint8_t data, struct dc_link *link)
 {
@@ -2271,27 +2295,6 @@ static void get_active_converter_info(
 	ddc_service_set_dongle_type(link->ddc, link->dpcd_caps.dongle_type);
 
 	{
-		struct dp_device_vendor_id dp_id;
-
-		/* read IEEE branch device id */
-		core_link_read_dpcd(
-			link,
-			DP_BRANCH_OUI,
-			(uint8_t *)&dp_id,
-			sizeof(dp_id));
-
-		link->dpcd_caps.branch_dev_id =
-			(dp_id.ieee_oui[0] << 16) +
-			(dp_id.ieee_oui[1] << 8) +
-			dp_id.ieee_oui[2];
-
-		memmove(
-			link->dpcd_caps.branch_dev_name,
-			dp_id.ieee_device_id,
-			sizeof(dp_id.ieee_device_id));
-	}
-
-	{
 		struct dp_sink_hw_fw_revision dp_hw_fw_revision;
 
 		core_link_read_dpcd(
@@ -2455,6 +2458,8 @@ static bool retrieve_link_cap(struct dc_link *link)
 	ds_port.byte = dpcd_data[DP_DOWNSTREAMPORT_PRESENT -
 				 DP_DPCD_REV];
 
+	read_dp_device_vendor_id(link);
+
 	get_active_converter_info(ds_port.byte, link);
 
 	dp_wa_power_up_0010FA(link, dpcd_data, sizeof(dpcd_data));
diff --git a/drivers/gpu/drm/amd/display/dc/dc_link.h b/drivers/gpu/drm/amd/display/dc/dc_link.h
index cc7ffac..7b9429e 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_link.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_link.h
@@ -120,6 +120,7 @@ struct dc_link {
 	/* MST record stream using this link */
 	struct link_flags {
 		bool dp_keep_receiver_powered;
+		bool dp_skip_DID2;
 	} wa_flags;
 	struct link_mst_stream_allocation_table mst_stream_alloc_table;
 
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2019-04-18 18:27 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-18 18:26 [PATCH 00/18] DC Patches Apr 18, 2019 sunpeng.li-5C7GfCeVMHo
     [not found] ` <1555612024-359-1-git-send-email-sunpeng.li-5C7GfCeVMHo@public.gmane.org>
2019-04-18 18:26   ` [PATCH 01/18] drm/amd/display: Allow system to enter stutter on init sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 02/18] drm/amd/display: Add function to copy DC streams sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 03/18] drm/amd/display: Send DMCU messages only if FW loaded sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 04/18] drm/amd/display: Fix eDP Black screen after S4 resume sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 05/18] drm/amd/display: 3.2.27 sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 06/18] drm/amd/display: Allow cursor position when plane_res.ipp is NULL sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 07/18] drm/amd/display: add explicit handshake between x86 and DMCU sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 08/18] drm/amd/display: Refactor CRTC interrupt toggling logic sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 09/18] drm/amd/display: Disable cursors before disabling planes sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 10/18] drm/amd/display: Fix CRC vblank refs when changing interrupts sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 11/18] drm/amd/display: Split enabling CRTC interrupts into two passes sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 12/18] drm/amd/display: Allow commits with no planes active sunpeng.li-5C7GfCeVMHo
2019-04-18 18:26   ` [PATCH 13/18] drm/amd/display: Refactor watermark programming sunpeng.li-5C7GfCeVMHo
2019-04-18 18:27   ` [PATCH 14/18] drm/amd/display: Add power down display on boot flag sunpeng.li-5C7GfCeVMHo
2019-04-18 18:27   ` [PATCH 15/18] drm/amd/display: remove deprecated pplib interface sunpeng.li-5C7GfCeVMHo
2019-04-18 18:27   ` [PATCH 16/18] drm/amd/display: Add hubp_init entry to hubp vtable sunpeng.li-5C7GfCeVMHo
2019-04-18 18:27   ` sunpeng.li-5C7GfCeVMHo [this message]
2019-04-18 18:27   ` [PATCH 18/18] drm/amd/display: Do VRR transition before enable_crc_interrupts sunpeng.li-5C7GfCeVMHo

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=1555612024-359-18-git-send-email-sunpeng.li@amd.com \
    --to=sunpeng.li-5c7gfcevmho@public.gmane.org \
    --cc=John.Barberiz-5C7GfCeVMHo@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    /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.