All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/17] DC Patches Dec 7, 2020
@ 2020-12-04 21:28 Eryk Brol
  2020-12-04 21:28 ` [PATCH 01/17] drm/amd/display: Implement VSIF V3 extended refresh rate feature Eryk Brol
                   ` (17 more replies)
  0 siblings, 18 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing.Zhuo,
	Rodrigo.Siqueira, Aurabindo.Pillai, Bhawanpreet.Lakha, bindu.r

This DC patchset brings improvements in multiple areas.
In summary, we highlight:

* Fixes in MST, Compliance, HDCP, audio;
* Enhancements in VSIF;
* Improvements in seamless boot, DPG;

----------------------------

AMD\ramini (1):
  drm/amd/display: Set FixRate bit in VSIF V3

Anthony Koo (1):
  drm/amd/display: [FW Promotion] Release 0.0.45

Aric Cyr (1):
  drm/amd/display: 3.2.115

Charlene Liu (1):
  drm/amd/display: Enable gpu_vm_support for dcn3.01

Chris Park (1):
  drm/amd/display: Prevent bandwidth overflow

Dmytro Laktyushkin (1):
  drm/amd/display: Expose clk_mgr functions for reuse

Jing Zhou (1):
  drm/amd/display: Set default bits per channel

John Wu (1):
  drm/amd/display: Don't check seamless boot in power down HW by timeout

Judy Cai (1):
  drm/amd/display: Change to IMMEDIATE mode from FRAME mode

Michael Strauss (1):
  drm/amd/display: Revert DCN2.1 dram_clock_change_latency update

Qingqing Zhuo (2):
  drm/amd/display: NULL pointer error during compliance test
  drm/amd/display: Only one display lights up while using MST hub

Reza Amini (1):
  drm/amd/display: Implement VSIF V3 extended refresh rate feature

Roy Chan (1):
  drm/amd/display: Fixed the audio noise during mode switching with HDCP
    mode on

Sung Lee (1):
  drm/amd/display: Add wm table for Renoir

Wesley Chalmers (1):
  drm/amd/display: Use provided offset for DPG generation

Wyatt Wood (1):
  drm/amd/display: Add support for runtime feature detection command

 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  37 +++++--
 .../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c |  93 +++++++++++++++-
 .../display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c  |   2 +-
 .../display/dc/clk_mgr/dcn301/vg_clk_mgr.c    |   8 +-
 .../display/dc/clk_mgr/dcn301/vg_clk_mgr.h    |  10 ++
 drivers/gpu/drm/amd/display/dc/core/dc_link.c |  18 ++-
 .../gpu/drm/amd/display/dc/core/dc_link_dp.c  |  17 ++-
 drivers/gpu/drm/amd/display/dc/dc.h           |   2 +-
 drivers/gpu/drm/amd/display/dc/dc_link.h      |   4 +
 .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |   5 +-
 .../drm/amd/display/dc/dcn21/dcn21_resource.c |   2 +-
 .../drm/amd/display/dc/dcn30/dcn30_hwseq.c    |   2 +-
 .../gpu/drm/amd/display/dc/dcn30/dcn30_vpg.c  |  62 +++++------
 .../gpu/drm/amd/display/dc/dcn30/dcn30_vpg.h  |  38 ++++++-
 drivers/gpu/drm/amd/display/dmub/dmub_srv.h   |   6 +
 .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h   |  17 ++-
 .../gpu/drm/amd/display/dmub/src/dmub_srv.c   |  29 +++++
 .../amd/display/modules/freesync/freesync.c   | 104 +++++++++++++++---
 18 files changed, 367 insertions(+), 89 deletions(-)

-- 
2.25.1

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

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 01/17] drm/amd/display: Implement VSIF V3 extended refresh rate feature
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 02/17] drm/amd/display: Set FixRate bit in VSIF V3 Eryk Brol
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Reza Amini, Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing.Zhuo,
	Anthony Koo, Rodrigo.Siqueira, Aurabindo.Pillai,
	Bhawanpreet.Lakha, bindu.r

From: Reza Amini <Reza.Amini@amd.com>

[Why]
Implement feature of VSIF V3

[How]
Set refresh rate MSB for extended range

Signed-off-by: Reza Amini <Reza.Amini@amd.com>
Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 .../amd/display/modules/freesync/freesync.c   | 100 ++++++++++++++----
 1 file changed, 82 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
index 52c3cb6b439a..2decdd8a5e20 100644
--- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
+++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
@@ -569,6 +569,12 @@ static void build_vrr_infopacket_data_v1(const struct mod_vrr_params *vrr,
 static void build_vrr_infopacket_data_v3(const struct mod_vrr_params *vrr,
 		struct dc_info_packet *infopacket)
 {
+	unsigned int min_refresh;
+	unsigned int max_refresh;
+	unsigned int fixed_refresh;
+	unsigned int min_programmed;
+	unsigned int max_programmed;
+
 	/* PB1 = 0x1A (24bit AMD IEEE OUI (0x00001A) - Byte 0) */
 	infopacket->sb[1] = 0x1A;
 
@@ -598,23 +604,29 @@ static void build_vrr_infopacket_data_v3(const struct mod_vrr_params *vrr,
 			vrr->state == VRR_STATE_ACTIVE_FIXED)
 		infopacket->sb[6] |= 0x04;
 
-	if (vrr->state == VRR_STATE_ACTIVE_FIXED) {
-		/* PB7 = FreeSync Minimum refresh rate (Hz) */
-		infopacket->sb[7] = (unsigned char)((vrr->fixed_refresh_in_uhz + 500000) / 1000000);
-		/* PB8 = FreeSync Maximum refresh rate (Hz) */
-		infopacket->sb[8] = (unsigned char)((vrr->fixed_refresh_in_uhz + 500000) / 1000000);
-	} else if (vrr->state == VRR_STATE_ACTIVE_VARIABLE) {
-		/* PB7 = FreeSync Minimum refresh rate (Hz) */
-		infopacket->sb[7] = (unsigned char)((vrr->min_refresh_in_uhz + 500000) / 1000000);
-		/* PB8 = FreeSync Maximum refresh rate (Hz) */
-		infopacket->sb[8] = (unsigned char)((vrr->max_refresh_in_uhz + 500000) / 1000000);
-	} else {
-		// Non-fs case, program nominal range
-		/* PB7 = FreeSync Minimum refresh rate (Hz) */
-		infopacket->sb[7] = (unsigned char)((vrr->max_refresh_in_uhz + 500000) / 1000000);
-		/* PB8 = FreeSync Maximum refresh rate (Hz) */
-		infopacket->sb[8] = (unsigned char)((vrr->max_refresh_in_uhz + 500000) / 1000000);
-	}
+	min_refresh = (vrr->min_refresh_in_uhz + 500000) / 1000000;
+	max_refresh = (vrr->max_refresh_in_uhz + 500000) / 1000000;
+	fixed_refresh = (vrr->fixed_refresh_in_uhz + 500000) / 1000000;
+
+	min_programmed = (vrr->state == VRR_STATE_ACTIVE_FIXED) ? fixed_refresh :
+			(vrr->state == VRR_STATE_ACTIVE_VARIABLE) ? min_refresh :
+			max_refresh; // Non-fs case, program nominal range
+
+	max_programmed = (vrr->state == VRR_STATE_ACTIVE_FIXED) ? fixed_refresh :
+			(vrr->state == VRR_STATE_ACTIVE_VARIABLE) ? max_refresh :
+			max_refresh;// Non-fs case, program nominal range
+
+	/* PB7 = FreeSync Minimum refresh rate (Hz) */
+	infopacket->sb[7] = min_programmed & 0xFF;
+
+	/* PB8 = FreeSync Maximum refresh rate (Hz) */
+	infopacket->sb[8] = max_programmed & 0xFF;
+
+	/* PB11 : MSB FreeSync Minimum refresh rate [Hz] - bits 15:8 */
+	infopacket->sb[11] = (min_programmed >> 8) & 0xFF;
+
+	/* PB12 : MSB FreeSync Maximum refresh rate [Hz] - bits 15:8 */
+	infopacket->sb[12] = (max_programmed >> 8) & 0xFF;
 
 	//FreeSync HDR
 	infopacket->sb[9] = 0;
@@ -733,6 +745,58 @@ static void build_vrr_infopacket_header_v2(enum signal_type signal,
 	}
 }
 
+static void build_vrr_infopacket_header_v3(enum signal_type signal,
+		struct dc_info_packet *infopacket,
+		unsigned int *payload_size)
+{
+	unsigned char version;
+
+	version = 3;
+	if (dc_is_hdmi_signal(signal)) {
+
+		/* HEADER */
+
+		/* HB0  = Packet Type = 0x83 (Source Product
+		 *	  Descriptor InfoFrame)
+		 */
+		infopacket->hb0 = DC_HDMI_INFOFRAME_TYPE_SPD;
+
+		/* HB1  = Version = 0x03 */
+		infopacket->hb1 = version;
+
+		/* HB2  = [Bits 7:5 = 0] [Bits 4:0 = Length] */
+		*payload_size = 0x10;
+		infopacket->hb2 = *payload_size - 1; //-1 for checksum
+
+	} else if (dc_is_dp_signal(signal)) {
+
+		/* HEADER */
+
+		/* HB0  = Secondary-data Packet ID = 0 - Only non-zero
+		 *	  when used to associate audio related info packets
+		 */
+		infopacket->hb0 = 0x00;
+
+		/* HB1  = Packet Type = 0x83 (Source Product
+		 *	  Descriptor InfoFrame)
+		 */
+		infopacket->hb1 = DC_HDMI_INFOFRAME_TYPE_SPD;
+
+		/* HB2  = [Bits 7:0 = Least significant eight bits -
+		 *	  For INFOFRAME, the value must be 1Bh]
+		 */
+		infopacket->hb2 = 0x1B;
+
+		/* HB3  = [Bits 7:2 = INFOFRAME SDP Version Number = 0x2]
+		 *	  [Bits 1:0 = Most significant two bits = 0x00]
+		 */
+
+		infopacket->hb3 = (version & 0x3F) << 2;
+
+		*payload_size = 0x1B;
+	}
+}
+
 static void build_vrr_infopacket_checksum(unsigned int *payload_size,
 		struct dc_info_packet *infopacket)
 {
@@ -818,7 +882,7 @@ static void build_vrr_infopacket_v3(enum signal_type signal,
 {
 	unsigned int payload_size = 0;
 
-	build_vrr_infopacket_header_v2(signal, infopacket, &payload_size);
+	build_vrr_infopacket_header_v3(signal, infopacket, &payload_size);
 	build_vrr_infopacket_data_v3(vrr, infopacket);
 
 	build_vrr_infopacket_fs2_data(app_tf, infopacket);
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 02/17] drm/amd/display: Set FixRate bit in VSIF V3
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
  2020-12-04 21:28 ` [PATCH 01/17] drm/amd/display: Implement VSIF V3 extended refresh rate feature Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 03/17] drm/amd/display: NULL pointer error during compliance test Eryk Brol
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: AMD\ramini, Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing.Zhuo,
	Anthony Koo, Rodrigo.Siqueira, Aurabindo.Pillai,
	Bhawanpreet.Lakha, bindu.r

From: "AMD\\ramini" <Reza.Amini@amd.com>

[Why]
Signal FreeSync display that we are in Fixed Rate mode, and
expand the FreeSync range to 1024.

[How]
Set the new bit in SB16:bit0, and augment the min and max
refresh rate with 2 extra bits.

Signed-off-by: AMD\ramini <Reza.Amini@amd.com>
Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 .../gpu/drm/amd/display/modules/freesync/freesync.c  | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
index 2decdd8a5e20..4762273b5bb9 100644
--- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
+++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c
@@ -610,6 +610,7 @@ static void build_vrr_infopacket_data_v3(const struct mod_vrr_params *vrr,
 
 	min_programmed = (vrr->state == VRR_STATE_ACTIVE_FIXED) ? fixed_refresh :
 			(vrr->state == VRR_STATE_ACTIVE_VARIABLE) ? min_refresh :
+			(vrr->state == VRR_STATE_INACTIVE) ? min_refresh :
 			max_refresh; // Non-fs case, program nominal range
 
 	max_programmed = (vrr->state == VRR_STATE_ACTIVE_FIXED) ? fixed_refresh :
@@ -622,11 +623,14 @@ static void build_vrr_infopacket_data_v3(const struct mod_vrr_params *vrr,
 	/* PB8 = FreeSync Maximum refresh rate (Hz) */
 	infopacket->sb[8] = max_programmed & 0xFF;
 
-	/* PB11 : MSB FreeSync Minimum refresh rate [Hz] - bits 15:8 */
-	infopacket->sb[11] = (min_programmed >> 8) & 0xFF;
+	/* PB11 : MSB FreeSync Minimum refresh rate [Hz] - bits 9:8 */
+	infopacket->sb[11] = (min_programmed >> 8) & 0x03;
 
-	/* PB12 : MSB FreeSync Maximum refresh rate [Hz] - bits 15:8 */
-	infopacket->sb[12] = (max_programmed >> 8) & 0xFF;
+	/* PB12 : MSB FreeSync Maximum refresh rate [Hz] - bits 9:8 */
+	infopacket->sb[12] = (max_programmed >> 8) & 0x03;
+
+	/* PB16 : Reserved bits 7:1, FixedRate bit 0 */
+	infopacket->sb[16] = (vrr->state == VRR_STATE_ACTIVE_FIXED) ? 1 : 0;
 
 	//FreeSync HDR
 	infopacket->sb[9] = 0;
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 03/17] drm/amd/display: NULL pointer error during compliance test
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
  2020-12-04 21:28 ` [PATCH 01/17] drm/amd/display: Implement VSIF V3 extended refresh rate feature Eryk Brol
  2020-12-04 21:28 ` [PATCH 02/17] drm/amd/display: Set FixRate bit in VSIF V3 Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 04/17] drm/amd/display: Expose clk_mgr functions for reuse Eryk Brol
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing Zhuo,
	Rodrigo.Siqueira, Aurabindo.Pillai, Bhawanpreet.Lakha,
	Nicholas Kazlauskas, bindu.r

From: Qingqing Zhuo <qingqing.zhuo@amd.com>

[Why]
Calls to disable/enable stream should be guarded with dc_lock.

[How]
Add dc_lock before calling into dc_link_handle_hpd_rx_irq.

Signed-off-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 5cb4654983eb..2d2c8a3c809d 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -2563,10 +2563,11 @@ static void handle_hpd_rx_irq(void *param)
 	struct drm_device *dev = connector->dev;
 	struct dc_link *dc_link = aconnector->dc_link;
 	bool is_mst_root_connector = aconnector->mst_mgr.mst_state;
+	bool result = false;
 	enum dc_connection_type new_connection_type = dc_connection_none;
+	struct amdgpu_device *adev = drm_to_adev(dev);
 #ifdef CONFIG_DRM_AMD_DC_HDCP
 	union hpd_irq_data hpd_irq_data;
-	struct amdgpu_device *adev = drm_to_adev(dev);
 
 	memset(&hpd_irq_data, 0, sizeof(hpd_irq_data));
 #endif
@@ -2579,13 +2580,15 @@ static void handle_hpd_rx_irq(void *param)
 	if (dc_link->type != dc_connection_mst_branch)
 		mutex_lock(&aconnector->hpd_lock);
 
-
+	mutex_lock(&adev->dm.dc_lock);
 #ifdef CONFIG_DRM_AMD_DC_HDCP
-	if (dc_link_handle_hpd_rx_irq(dc_link, &hpd_irq_data, NULL) &&
+	result = dc_link_handle_hpd_rx_irq(dc_link, &hpd_irq_data, NULL);
 #else
-	if (dc_link_handle_hpd_rx_irq(dc_link, NULL, NULL) &&
+	result = dc_link_handle_hpd_rx_irq(dc_link, NULL, NULL);
 #endif
-			!is_mst_root_connector) {
+	mutex_unlock(&adev->dm.dc_lock);
+
+	if (result && !is_mst_root_connector) {
 		/* Downstream Port status changed. */
 		if (!dc_link_detect_sink(dc_link, &new_connection_type))
 			DRM_ERROR("KMS: Failed to detect connector\n");
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 04/17] drm/amd/display: Expose clk_mgr functions for reuse
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (2 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 03/17] drm/amd/display: NULL pointer error during compliance test Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 05/17] drm/amd/display: Add support for runtime feature detection command Eryk Brol
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Dmytro Laktyushkin, Eric Yang, Eryk Brol, Sunpeng.Li,
	Harry.Wentland, Qingqing.Zhuo, Rodrigo.Siqueira,
	Aurabindo.Pillai, Bhawanpreet.Lakha, bindu.r

From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>

[How & Why]
Allow clk_mgr functions to be reused by making then non-static

Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: Eric Yang <eric.yang2@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 .../drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c   |  2 +-
 .../gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c |  8 ++++----
 .../gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.h | 10 ++++++++++
 3 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c
index 82cb688ba5e0..5b466f440d67 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c
@@ -499,7 +499,7 @@ static void dcn3_init_clocks_fpga(struct clk_mgr *clk_mgr)
 /* TODO: Implement the functions and remove the ifndef guard */
 }
 
-static struct clk_mgr_funcs dcn3_fpga_funcs = {
+struct clk_mgr_funcs dcn3_fpga_funcs = {
 	.get_dp_ref_clk_frequency = dce12_get_dp_ref_freq_khz,
 	.update_clocks = dcn2_update_clocks_fpga,
 	.init_clocks = dcn3_init_clocks_fpga,
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c
index 98cbb0ac095c..9a8e66bba9c0 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.c
@@ -32,9 +32,9 @@
 // For dcn20_update_clocks_update_dpp_dto
 #include "dcn20/dcn20_clk_mgr.h"
 
-#include "vg_clk_mgr.h"
 
-#include "dcn301_smu.h"
+
+#include "vg_clk_mgr.h"
 #include "reg_helper.h"
 #include "core_types.h"
 #include "dm_helpers.h"
@@ -631,7 +631,7 @@ static unsigned int find_dcfclk_for_voltage(const struct vg_dpm_clocks *clock_ta
 	return 0;
 }
 
-static void vg_clk_mgr_helper_populate_bw_params(
+void vg_clk_mgr_helper_populate_bw_params(
 		struct clk_mgr_internal *clk_mgr,
 		struct integrated_info *bios_info,
 		const struct vg_dpm_clocks *clock_table)
@@ -709,7 +709,7 @@ static struct vg_dpm_clocks dummy_clocks = {
 
 static struct watermarks dummy_wms = { 0 };
 
-static void vg_get_dpm_table_from_smu(struct clk_mgr_internal *clk_mgr,
+void vg_get_dpm_table_from_smu(struct clk_mgr_internal *clk_mgr,
 		struct smu_dpm_clks *smu_dpm_clks)
 {
 	struct vg_dpm_clocks *table = smu_dpm_clks->dpm_clks;
diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.h b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.h
index 80497df20ba7..b5115b3123a1 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.h
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/vg_clk_mgr.h
@@ -39,5 +39,15 @@ void vg_clk_mgr_construct(struct dc_context *ctx,
 
 void vg_clk_mgr_destroy(struct clk_mgr_internal *clk_mgr);
 
+#include "dcn301_smu.h"
 void vg_notify_wm_ranges(struct clk_mgr *clk_mgr_base);
+
+void vg_get_dpm_table_from_smu(struct clk_mgr_internal *clk_mgr,
+		struct smu_dpm_clks *smu_dpm_clks);
+
+void vg_clk_mgr_helper_populate_bw_params(
+		struct clk_mgr_internal *clk_mgr,
+		struct integrated_info *bios_info,
+		const struct vg_dpm_clocks *clock_table);
+
 #endif //__VG_CLK_MGR_H__
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 05/17] drm/amd/display: Add support for runtime feature detection command
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (3 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 04/17] drm/amd/display: Expose clk_mgr functions for reuse Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 06/17] drm/amd/display: Set default bits per channel Eryk Brol
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing.Zhuo,
	Rodrigo.Siqueira, Aurabindo.Pillai, Wyatt Wood, Jun Lei,
	Bhawanpreet.Lakha, bindu.r

From: Wyatt Wood <wyatt.wood@amd.com>

[Why]
Add support for new fw command for runtime feature detection.

[How]
Driver sends command through ring buffer, and fw returns data back
through this command.

Signed-off-by: Wyatt Wood <wyatt.wood@amd.com>
Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/dmub/dmub_srv.h   |  6 ++++
 .../gpu/drm/amd/display/dmub/src/dmub_srv.c   | 29 +++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dmub/dmub_srv.h b/drivers/gpu/drm/amd/display/dmub/dmub_srv.h
index b82a46890846..863cd9cc93ff 100644
--- a/drivers/gpu/drm/amd/display/dmub/dmub_srv.h
+++ b/drivers/gpu/drm/amd/display/dmub/dmub_srv.h
@@ -345,6 +345,9 @@ struct dmub_srv {
 	uint64_t fb_base;
 	uint64_t fb_offset;
 	uint32_t psp_version;
+
+	/* Feature capabilities reported by fw */
+	struct dmub_feature_caps feature_caps;
 };
 
 /**
@@ -608,6 +611,9 @@ void dmub_flush_buffer_mem(const struct dmub_fb *fb);
 enum dmub_status dmub_srv_get_fw_boot_status(struct dmub_srv *dmub,
 					     union dmub_fw_boot_status *status);
 
+enum dmub_status dmub_srv_cmd_with_reply_data(struct dmub_srv *dmub,
+					      union dmub_rb_cmd *cmd);
+
 #if defined(__cplusplus)
 }
 #endif
diff --git a/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c b/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c
index ba8494cf005f..f388d36af0b6 100644
--- a/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c
+++ b/drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c
@@ -648,3 +648,32 @@ enum dmub_status dmub_srv_get_fw_boot_status(struct dmub_srv *dmub,
 
 	return DMUB_STATUS_OK;
 }
+
+enum dmub_status dmub_srv_cmd_with_reply_data(struct dmub_srv *dmub,
+					      union dmub_rb_cmd *cmd)
+{
+	enum dmub_status status = DMUB_STATUS_OK;
+
+	// Queue command
+	status = dmub_srv_cmd_queue(dmub, cmd);
+
+	if (status != DMUB_STATUS_OK)
+		return status;
+
+	// Execute command
+	status = dmub_srv_cmd_execute(dmub);
+
+	if (status != DMUB_STATUS_OK)
+		return status;
+
+	// Wait for DMUB to process command
+	status = dmub_srv_wait_for_idle(dmub, 100000);
+
+	if (status != DMUB_STATUS_OK)
+		return status;
+
+	// Copy data back from ring buffer into command
+	dmub_rb_get_return_data(&dmub->inbox1_rb, cmd);
+
+	return status;
+}
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 06/17] drm/amd/display: Set default bits per channel
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (4 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 05/17] drm/amd/display: Add support for runtime feature detection command Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 07/17] drm/amd/display: Don't check seamless boot in power down HW by timeout Eryk Brol
                   ` (11 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Aric Cyr, Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing.Zhuo,
	Rodrigo.Siqueira, Jing Zhou, Aurabindo.Pillai, Bhawanpreet.Lakha,
	bindu.r

From: Jing Zhou <Jing.Zhou@amd.com>

[Why]
Bump into calcReducedBlankingTiming because of mode query failed.
In this function,
timing.displayColorDepth == DISPLAY_COLOR_DEPTH_UNDEFINED.
Then req_bw == 0 because of bits_per_channel == 0.
So decide edp link settings, use default RBRx1 for special timing.

[How]
Set default bits_per_channel is 8.

Signed-off-by: Jing Zhou <Jing.Zhou@amd.com>
Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c    |  4 ++--
 drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c | 15 ++++++++++++---
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
index a9c52657eb4b..bd004de107b7 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -3471,11 +3471,11 @@ uint32_t dc_bandwidth_in_kbps_from_timing(
 		bits_per_channel = 16;
 		break;
 	default:
+		ASSERT(bits_per_channel != 0);
+		bits_per_channel = 8;
 		break;
 	}
 
-	ASSERT(bits_per_channel != 0);
-
 	kbps = timing->pix_clk_100hz / 10;
 	kbps *= bits_per_channel;
 
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 93fbc646f53b..dbbc0ec0b699 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
@@ -1410,15 +1410,24 @@ static void print_status_message(
 	case LINK_RATE_LOW:
 		link_rate = "RBR";
 		break;
+	case LINK_RATE_RATE_2:
+		link_rate = "R2";
+		break;
+	case LINK_RATE_RATE_3:
+		link_rate = "R3";
+		break;
 	case LINK_RATE_HIGH:
 		link_rate = "HBR";
 		break;
-	case LINK_RATE_HIGH2:
-		link_rate = "HBR2";
-		break;
 	case LINK_RATE_RBR2:
 		link_rate = "RBR2";
 		break;
+	case LINK_RATE_RATE_6:
+		link_rate = "R6";
+		break;
+	case LINK_RATE_HIGH2:
+		link_rate = "HBR2";
+		break;
 	case LINK_RATE_HIGH3:
 		link_rate = "HBR3";
 		break;
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 07/17] drm/amd/display: Don't check seamless boot in power down HW by timeout
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (5 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 06/17] drm/amd/display: Set default bits per channel Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 08/17] drm/amd/display: Change to IMMEDIATE mode from FRAME mode Eryk Brol
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Anthony Koo, John Wu, Eryk Brol, Sunpeng.Li, Harry.Wentland,
	Qingqing.Zhuo, Rodrigo.Siqueira, Aurabindo.Pillai,
	Bhawanpreet.Lakha, bindu.r

From: John Wu <john.wu@amd.com>

[Why]
power_down_on_boot is designed to power down HW when set mode is not
called before timeout. It can happen in headless system or booting with
the display is output by non-AMD GPU only.
The function will be executed only if it's not seamless boot. So in
seamless boot, the HW is still on.
It's not necessary to check this since there's no display data in both
cases.

[How]
Remove seamless boot checking in power_down_on_boot.

Signed-off-by: John Wu <john.wu@amd.com>
Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
index 1e18f0bb40b6..9f7d6b087553 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
@@ -1442,16 +1442,13 @@ void dcn10_init_hw(struct dc *dc)
 /* In headless boot cases, DIG may be turned
  * on which causes HW/SW discrepancies.
  * To avoid this, power down hardware on boot
- * if DIG is turned on and seamless boot not enabled
+ * if DIG is turned on
  */
 void dcn10_power_down_on_boot(struct dc *dc)
 {
 	int i = 0;
 	struct dc_link *edp_link;
 
-	if (!dc->config.power_down_display_on_boot)
-		return;
-
 	edp_link = get_edp_link(dc);
 	if (edp_link &&
 			edp_link->link_enc->funcs->is_dig_enabled &&
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 08/17] drm/amd/display: Change to IMMEDIATE mode from FRAME mode
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (6 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 07/17] drm/amd/display: Don't check seamless boot in power down HW by timeout Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 09/17] drm/amd/display: Use provided offset for DPG generation Eryk Brol
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Anthony Koo, Judy Cai, Eryk Brol, Sunpeng.Li, Harry.Wentland,
	Qingqing.Zhuo, Rodrigo.Siqueira, Aurabindo.Pillai,
	Bhawanpreet.Lakha, bindu.r

From: Judy Cai <HuiYi.Cai@amd.com>

[Why]
Change in DCN10 to use IMMEDIATE_UPDATE mode for AFMT is not
reflected in DCN30 as it uses VPG.

[How]
Use IMMEDIATE_UPDATE mode for DCN30 in VPG.

Signed-off-by: Judy Cai <HuiYi.Cai@amd.com>
Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 .../gpu/drm/amd/display/dc/dcn30/dcn30_vpg.c  | 62 +++++++++----------
 .../gpu/drm/amd/display/dc/dcn30/dcn30_vpg.h  | 38 +++++++++++-
 2 files changed, 66 insertions(+), 34 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.c b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.c
index 9c0020c8a730..8cfd181b4d5f 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.c
@@ -103,69 +103,69 @@ static void vpg3_update_generic_info_packet(
 		}
 	}
 
-	/* atomically update double-buffered GENERIC0 registers in frame mode
+	/* atomically update double-buffered GENERIC0 registers in immediate mode
 	 * (update at next block_update when block_update_lock == 0).
 	 */
 	switch (packet_index) {
 	case 0:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC0_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC0_IMMEDIATE_UPDATE, 1);
 		break;
 	case 1:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC1_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC1_IMMEDIATE_UPDATE, 1);
 		break;
 	case 2:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC2_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC2_IMMEDIATE_UPDATE, 1);
 		break;
 	case 3:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC3_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC3_IMMEDIATE_UPDATE, 1);
 		break;
 	case 4:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC4_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC4_IMMEDIATE_UPDATE, 1);
 		break;
 	case 5:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC5_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC5_IMMEDIATE_UPDATE, 1);
 		break;
 	case 6:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC6_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC6_IMMEDIATE_UPDATE, 1);
 		break;
 	case 7:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC7_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC7_IMMEDIATE_UPDATE, 1);
 		break;
 	case 8:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC8_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC8_IMMEDIATE_UPDATE, 1);
 		break;
 	case 9:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC9_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC9_IMMEDIATE_UPDATE, 1);
 		break;
 	case 10:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC10_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC10_IMMEDIATE_UPDATE, 1);
 		break;
 	case 11:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC11_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC11_IMMEDIATE_UPDATE, 1);
 		break;
 	case 12:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC12_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC12_IMMEDIATE_UPDATE, 1);
 		break;
 	case 13:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC13_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC13_IMMEDIATE_UPDATE, 1);
 		break;
 	case 14:
-		REG_UPDATE(VPG_GSP_FRAME_UPDATE_CTRL,
-				VPG_GENERIC14_FRAME_UPDATE, 1);
+		REG_UPDATE(VPG_GSP_IMMEDIATE_UPDATE_CTRL,
+				VPG_GENERIC14_IMMEDIATE_UPDATE, 1);
 		break;
 	default:
 		break;
diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.h b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.h
index 0284092630f1..6161e9e66355 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.h
+++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_vpg.h
@@ -34,13 +34,15 @@
 	SRI(VPG_GENERIC_STATUS, VPG, id), \
 	SRI(VPG_GENERIC_PACKET_ACCESS_CTRL, VPG, id), \
 	SRI(VPG_GENERIC_PACKET_DATA, VPG, id), \
-	SRI(VPG_GSP_FRAME_UPDATE_CTRL, VPG, id)
+	SRI(VPG_GSP_FRAME_UPDATE_CTRL, VPG, id), \
+	SRI(VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG, id)
 
 struct dcn30_vpg_registers {
 	uint32_t VPG_GENERIC_STATUS;
 	uint32_t VPG_GENERIC_PACKET_ACCESS_CTRL;
 	uint32_t VPG_GENERIC_PACKET_DATA;
 	uint32_t VPG_GSP_FRAME_UPDATE_CTRL;
+	uint32_t VPG_GSP_IMMEDIATE_UPDATE_CTRL;
 };
 
 #define DCN3_VPG_MASK_SH_LIST(mask_sh)\
@@ -65,7 +67,22 @@ struct dcn30_vpg_registers {
 	SE_SF(VPG0_VPG_GSP_FRAME_UPDATE_CTRL, VPG_GENERIC11_FRAME_UPDATE, mask_sh),\
 	SE_SF(VPG0_VPG_GSP_FRAME_UPDATE_CTRL, VPG_GENERIC12_FRAME_UPDATE, mask_sh),\
 	SE_SF(VPG0_VPG_GSP_FRAME_UPDATE_CTRL, VPG_GENERIC13_FRAME_UPDATE, mask_sh),\
-	SE_SF(VPG0_VPG_GSP_FRAME_UPDATE_CTRL, VPG_GENERIC14_FRAME_UPDATE, mask_sh)
+	SE_SF(VPG0_VPG_GSP_FRAME_UPDATE_CTRL, VPG_GENERIC14_FRAME_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC0_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC1_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC2_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC3_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC4_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC5_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC6_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC7_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC8_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC9_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC10_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC11_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC12_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC13_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(VPG0_VPG_GSP_IMMEDIATE_UPDATE_CTRL, VPG_GENERIC14_IMMEDIATE_UPDATE, mask_sh)
 
 #define VPG_DCN3_REG_FIELD_LIST(type) \
 	type VPG_GENERIC_CONFLICT_OCCURED;\
@@ -89,7 +106,22 @@ struct dcn30_vpg_registers {
 	type VPG_GENERIC11_FRAME_UPDATE;\
 	type VPG_GENERIC12_FRAME_UPDATE;\
 	type VPG_GENERIC13_FRAME_UPDATE;\
-	type VPG_GENERIC14_FRAME_UPDATE
+	type VPG_GENERIC14_FRAME_UPDATE;\
+	type VPG_GENERIC0_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC1_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC2_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC3_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC4_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC5_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC6_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC7_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC8_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC9_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC10_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC11_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC12_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC13_IMMEDIATE_UPDATE;\
+	type VPG_GENERIC14_IMMEDIATE_UPDATE
 
 
 struct dcn30_vpg_shift {
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 09/17] drm/amd/display: Use provided offset for DPG generation
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (7 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 08/17] drm/amd/display: Change to IMMEDIATE mode from FRAME mode Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 10/17] drm/amd/display: Only one display lights up while using MST hub Eryk Brol
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Wesley Chalmers, Eryk Brol, Sunpeng.Li, Harry.Wentland,
	Qingqing.Zhuo, Rodrigo.Siqueira, Samson Tam, Aurabindo.Pillai,
	Bhawanpreet.Lakha, bindu.r

From: Wesley Chalmers <Wesley.Chalmers@amd.com>

[Why]
Currently, the offset provided to dcn30_set_disp_pattern_generator is
not forwarded to OPP for display pattern generation, resulting in
misaligned patterns and test failures.

[How]
Use the provided offset.

Signed-off-by: Wesley Chalmers <Wesley.Chalmers@amd.com>
Reviewed-by: Samson Tam <Samson.Tam@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c
index 7a7efe9ea961..283995ab9eeb 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c
@@ -832,5 +832,5 @@ void dcn30_set_disp_pattern_generator(const struct dc *dc,
 		int width, int height, int offset)
 {
 	pipe_ctx->stream_res.opp->funcs->opp_set_disp_pattern_generator(pipe_ctx->stream_res.opp, test_pattern,
-			color_space, color_depth, solid_color, width, height, 0);
+			color_space, color_depth, solid_color, width, height, offset);
 }
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 10/17] drm/amd/display: Only one display lights up while using MST hub
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (8 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 09/17] drm/amd/display: Use provided offset for DPG generation Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 11/17] drm/amd/display: Prevent bandwidth overflow Eryk Brol
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing Zhuo,
	Rodrigo.Siqueira, Aurabindo.Pillai, Bhawanpreet.Lakha, bindu.r

From: Qingqing Zhuo <qingqing.zhuo@amd.com>

[Why]
With the addition of dc_lock acquire before dc_link_handle_hpd_rx_irq,
there will be a deadlock situation where commit state sends a request
for payload allocation on MST and wait for HPD to process DOWN_REP.

[How]
Move forward the MST message handling in handle_hpd_rx_irq so that
it will not rely on call to dc_link_handle_hpd_rx_irq.

Signed-off-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 21 ++++++++++++++-----
 .../gpu/drm/amd/display/dc/core/dc_link_dp.c  |  2 +-
 drivers/gpu/drm/amd/display/dc/dc_link.h      |  4 ++++
 3 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 2d2c8a3c809d..59f738008734 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -2566,11 +2566,9 @@ static void handle_hpd_rx_irq(void *param)
 	bool result = false;
 	enum dc_connection_type new_connection_type = dc_connection_none;
 	struct amdgpu_device *adev = drm_to_adev(dev);
-#ifdef CONFIG_DRM_AMD_DC_HDCP
 	union hpd_irq_data hpd_irq_data;
 
 	memset(&hpd_irq_data, 0, sizeof(hpd_irq_data));
-#endif
 
 	/*
 	 * TODO:Temporary add mutex to protect hpd interrupt not have a gpio
@@ -2580,6 +2578,21 @@ static void handle_hpd_rx_irq(void *param)
 	if (dc_link->type != dc_connection_mst_branch)
 		mutex_lock(&aconnector->hpd_lock);
 
+	read_hpd_rx_irq_data(dc_link, &hpd_irq_data);
+
+	if ((dc_link->cur_link_settings.lane_count != LANE_COUNT_UNKNOWN) ||
+		(dc_link->type == dc_connection_mst_branch)) {
+		if (hpd_irq_data.bytes.device_service_irq.bits.UP_REQ_MSG_RDY) {
+			result = true;
+			dm_handle_hpd_rx_irq(aconnector);
+			goto out;
+		} else if (hpd_irq_data.bytes.device_service_irq.bits.DOWN_REP_MSG_RDY) {
+			result = false;
+			dm_handle_hpd_rx_irq(aconnector);
+			goto out;
+		}
+	}
+
 	mutex_lock(&adev->dm.dc_lock);
 #ifdef CONFIG_DRM_AMD_DC_HDCP
 	result = dc_link_handle_hpd_rx_irq(dc_link, &hpd_irq_data, NULL);
@@ -2588,6 +2601,7 @@ static void handle_hpd_rx_irq(void *param)
 #endif
 	mutex_unlock(&adev->dm.dc_lock);
 
+out:
 	if (result && !is_mst_root_connector) {
 		/* Downstream Port status changed. */
 		if (!dc_link_detect_sink(dc_link, &new_connection_type))
@@ -2628,9 +2642,6 @@ static void handle_hpd_rx_irq(void *param)
 			hdcp_handle_cpirq(adev->dm.hdcp_workqueue,  aconnector->base.index);
 	}
 #endif
-	if ((dc_link->cur_link_settings.lane_count != LANE_COUNT_UNKNOWN) ||
-	    (dc_link->type == dc_connection_mst_branch))
-		dm_handle_hpd_rx_irq(aconnector);
 
 	if (dc_link->type != dc_connection_mst_branch) {
 		drm_dp_cec_irq(&aconnector->dm_dp_aux.aux);
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 dbbc0ec0b699..6b11d4af54af 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
@@ -1874,7 +1874,7 @@ static struct dc_link_settings get_max_link_cap(struct dc_link *link)
 	return max_link_cap;
 }
 
-static enum dc_status read_hpd_rx_irq_data(
+enum dc_status read_hpd_rx_irq_data(
 	struct dc_link *link,
 	union hpd_irq_data *irq_data)
 {
diff --git a/drivers/gpu/drm/amd/display/dc/dc_link.h b/drivers/gpu/drm/amd/display/dc/dc_link.h
index 66445e34fd37..6d9a60c9dcc0 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_link.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_link.h
@@ -259,6 +259,10 @@ enum dc_status dc_link_reallocate_mst_payload(struct dc_link *link);
 bool dc_link_handle_hpd_rx_irq(struct dc_link *dc_link,
 		union hpd_irq_data *hpd_irq_dpcd_data, bool *out_link_loss);
 
+enum dc_status read_hpd_rx_irq_data(
+	struct dc_link *link,
+	union hpd_irq_data *irq_data);
+
 struct dc_sink_init_data;
 
 struct dc_sink *dc_link_add_remote_sink(
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 11/17] drm/amd/display: Prevent bandwidth overflow
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (9 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 10/17] drm/amd/display: Only one display lights up while using MST hub Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 12/17] drm/amd/display: Add wm table for Renoir Eryk Brol
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Chris Park, Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing.Zhuo,
	Rodrigo.Siqueira, Wenjing Liu, Aurabindo.Pillai,
	Bhawanpreet.Lakha, bindu.r

From: Chris Park <Chris.Park@amd.com>

[Why]
At very high pixel clock, bandwidth calculation exceeds 32 bit size
and overflow value. This causes the resulting selection of link rate
to be inaccurate.

[How]
Change order of operation and use fixed point to deal with integer
accuracy. Also address bug found when forcing link rate.

Signed-off-by: Chris Park <Chris.Park@amd.com>
Reviewed-by: Wenjing Liu <Wenjing.Liu@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
index bd004de107b7..0052247b4b20 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -3444,10 +3444,13 @@ uint32_t dc_bandwidth_in_kbps_from_timing(
 {
 	uint32_t bits_per_channel = 0;
 	uint32_t kbps;
+	struct fixed31_32 link_bw_kbps;
 
 	if (timing->flags.DSC) {
-		kbps = (timing->pix_clk_100hz * timing->dsc_cfg.bits_per_pixel);
-		kbps = kbps / 160 + ((kbps % 160) ? 1 : 0);
+		link_bw_kbps = dc_fixpt_from_int(timing->pix_clk_100hz);
+		link_bw_kbps = dc_fixpt_div_int(link_bw_kbps, 160);
+		link_bw_kbps = dc_fixpt_mul_int(link_bw_kbps, timing->dsc_cfg.bits_per_pixel);
+		kbps = dc_fixpt_ceil(link_bw_kbps);
 		return kbps;
 	}
 
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 12/17] drm/amd/display: Add wm table for Renoir
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (10 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 11/17] drm/amd/display: Prevent bandwidth overflow Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 13/17] drm/amd/display: Fixed the audio noise during mode switching with HDCP mode on Eryk Brol
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Sung Lee, Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing.Zhuo,
	Rodrigo.Siqueira, Roman Li, Aurabindo.Pillai, Yongqiang Sun,
	Bhawanpreet.Lakha, bindu.r

From: Sung Lee <sung.lee@amd.com>

[Why]
Without additional HostVM Latency, Renoir takes 2us longer to exit
self-refresh. This causes underflow in certain cases.

[How]
Add table for Renoir with updated sr exit latencies for WM set A.

Signed-off-by: Sung Lee <sung.lee@amd.com>
Reviewed-by: Yongqiang Sun <yongqiang.sun@amd.com>
Reviewed-by: Roman Li <Roman.Li@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 .../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 93 ++++++++++++++++++-
 1 file changed, 89 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
index fe6dc1e68e60..6f4fe8fce6b7 100644
--- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
+++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c
@@ -621,7 +621,7 @@ static struct clk_bw_params rn_bw_params = {
 
 };
 
-static struct wm_table ddr4_wm_table = {
+static struct wm_table ddr4_wm_table_gs = {
 	.entries = {
 		{
 			.wm_inst = WM_A,
@@ -658,7 +658,7 @@ static struct wm_table ddr4_wm_table = {
 	}
 };
 
-static struct wm_table lpddr4_wm_table = {
+static struct wm_table lpddr4_wm_table_gs = {
 	.entries = {
 		{
 			.wm_inst = WM_A,
@@ -732,6 +732,80 @@ static struct wm_table lpddr4_wm_table_with_disabled_ppt = {
 	}
 };
 
+static struct wm_table ddr4_wm_table_rn = {
+	.entries = {
+		{
+			.wm_inst = WM_A,
+			.wm_type = WM_TYPE_PSTATE_CHG,
+			.pstate_latency_us = 11.72,
+			.sr_exit_time_us = 9.09,
+			.sr_enter_plus_exit_time_us = 10.14,
+			.valid = true,
+		},
+		{
+			.wm_inst = WM_B,
+			.wm_type = WM_TYPE_PSTATE_CHG,
+			.pstate_latency_us = 11.72,
+			.sr_exit_time_us = 10.12,
+			.sr_enter_plus_exit_time_us = 11.48,
+			.valid = true,
+		},
+		{
+			.wm_inst = WM_C,
+			.wm_type = WM_TYPE_PSTATE_CHG,
+			.pstate_latency_us = 11.72,
+			.sr_exit_time_us = 10.12,
+			.sr_enter_plus_exit_time_us = 11.48,
+			.valid = true,
+		},
+		{
+			.wm_inst = WM_D,
+			.wm_type = WM_TYPE_PSTATE_CHG,
+			.pstate_latency_us = 11.72,
+			.sr_exit_time_us = 10.12,
+			.sr_enter_plus_exit_time_us = 11.48,
+			.valid = true,
+		},
+	}
+};
+
+static struct wm_table lpddr4_wm_table_rn = {
+	.entries = {
+		{
+			.wm_inst = WM_A,
+			.wm_type = WM_TYPE_PSTATE_CHG,
+			.pstate_latency_us = 11.65333,
+			.sr_exit_time_us = 7.32,
+			.sr_enter_plus_exit_time_us = 8.38,
+			.valid = true,
+		},
+		{
+			.wm_inst = WM_B,
+			.wm_type = WM_TYPE_PSTATE_CHG,
+			.pstate_latency_us = 11.65333,
+			.sr_exit_time_us = 9.82,
+			.sr_enter_plus_exit_time_us = 11.196,
+			.valid = true,
+		},
+		{
+			.wm_inst = WM_C,
+			.wm_type = WM_TYPE_PSTATE_CHG,
+			.pstate_latency_us = 11.65333,
+			.sr_exit_time_us = 9.89,
+			.sr_enter_plus_exit_time_us = 11.24,
+			.valid = true,
+		},
+		{
+			.wm_inst = WM_D,
+			.wm_type = WM_TYPE_PSTATE_CHG,
+			.pstate_latency_us = 11.65333,
+			.sr_exit_time_us = 9.748,
+			.sr_enter_plus_exit_time_us = 11.102,
+			.valid = true,
+		},
+	}
+};
+
 static unsigned int find_dcfclk_for_voltage(struct dpm_clocks *clock_table, unsigned int voltage)
 {
 	int i;
@@ -813,6 +887,11 @@ void rn_clk_mgr_construct(
 	struct dc_debug_options *debug = &ctx->dc->debug;
 	struct dpm_clocks clock_table = { 0 };
 	enum pp_smu_status status = 0;
+	int is_green_sardine = 0;
+
+#if defined(CONFIG_DRM_AMD_DC_DCN)
+	is_green_sardine = ASICREV_IS_GREEN_SARDINE(ctx->asic_id.hw_internal_rev);
+#endif
 
 	clk_mgr->base.ctx = ctx;
 	clk_mgr->base.funcs = &dcn21_funcs;
@@ -853,10 +932,16 @@ void rn_clk_mgr_construct(
 			if (clk_mgr->periodic_retraining_disabled) {
 				rn_bw_params.wm_table = lpddr4_wm_table_with_disabled_ppt;
 			} else {
-				rn_bw_params.wm_table = lpddr4_wm_table;
+				if (is_green_sardine)
+					rn_bw_params.wm_table = lpddr4_wm_table_gs;
+				else
+					rn_bw_params.wm_table = lpddr4_wm_table_rn;
 			}
 		} else {
-			rn_bw_params.wm_table = ddr4_wm_table;
+			if (is_green_sardine)
+				rn_bw_params.wm_table = ddr4_wm_table_gs;
+			else
+				rn_bw_params.wm_table = ddr4_wm_table_rn;
 		}
 		/* Saved clocks configured at boot for debug purposes */
 		rn_dump_clk_registers(&clk_mgr->base.boot_snapshot, &clk_mgr->base, &log_info);
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 13/17] drm/amd/display: Fixed the audio noise during mode switching with HDCP mode on
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (11 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 12/17] drm/amd/display: Add wm table for Renoir Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 14/17] drm/amd/display: Enable gpu_vm_support for dcn3.01 Eryk Brol
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing.Zhuo,
	Rodrigo.Siqueira, Aurabindo.Pillai, Martin Leung, Roy Chan,
	Bhawanpreet.Lakha, bindu.r

From: Roy Chan <roy.chan@amd.com>

[Why]
When HDCP is on, some display would introduce audio noise during
HDCP handling.

[How]
Mute before HDCP handling when disabling core link. Unmute after
HDCP when enabling core link.

Signed-off-by: Roy Chan <roy.chan@amd.com>
Reviewed-by: Martin Leung <Martin.Leung@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc_link.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
index 0052247b4b20..a901baf2aaef 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c
@@ -3270,8 +3270,6 @@ void core_link_enable_stream(
 #if defined(CONFIG_DRM_AMD_DC_DCN3_0)
 #endif
 
-		dc->hwss.enable_audio_stream(pipe_ctx);
-
 		/* turn off otg test pattern if enable */
 		if (pipe_ctx->stream_res.tg->funcs->set_test_pattern)
 			pipe_ctx->stream_res.tg->funcs->set_test_pattern(pipe_ctx->stream_res.tg,
@@ -3310,6 +3308,9 @@ void core_link_enable_stream(
 #if defined(CONFIG_DRM_AMD_DC_HDCP)
 		update_psp_stream_config(pipe_ctx, false);
 #endif
+
+		dc->hwss.enable_audio_stream(pipe_ctx);
+
 	} else { // if (IS_FPGA_MAXIMUS_DC(dc->ctx->dce_environment))
 		if (dc_is_dp_signal(pipe_ctx->stream->signal) ||
 				dc_is_virtual_signal(pipe_ctx->stream->signal))
@@ -3337,6 +3338,8 @@ void core_link_disable_stream(struct pipe_ctx *pipe_ctx)
 			core_link_set_avmute(pipe_ctx, true);
 	}
 
+	dc->hwss.disable_audio_stream(pipe_ctx);
+
 #if defined(CONFIG_DRM_AMD_DC_HDCP)
 	update_psp_stream_config(pipe_ctx, true);
 #endif
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 14/17] drm/amd/display: Enable gpu_vm_support for dcn3.01
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (12 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 13/17] drm/amd/display: Fixed the audio noise during mode switching with HDCP mode on Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-07 14:40   ` Deucher, Alexander
  2020-12-04 21:28 ` [PATCH 15/17] drm/amd/display: Revert DCN2.1 dram_clock_change_latency update Eryk Brol
                   ` (3 subsequent siblings)
  17 siblings, 1 reply; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Charlene Liu, Eryk Brol, Sunpeng.Li, Harry.Wentland,
	Qingqing.Zhuo, Rodrigo.Siqueira, Aurabindo.Pillai, Yongqiang Sun,
	Bhawanpreet.Lakha, bindu.r

From: Charlene Liu <Charlene.Liu@amd.com>

[Why]
dcn3_01 supports gpu_vm, but this is not enabled in amdgpu_dm

Signed-off-by: Charlene Liu <Charlene.Liu@amd.com>
Reviewed-by: Yongqiang Sun <yongqiang.sun@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 59f738008734..53a7cb21f603 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1035,6 +1035,11 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
 		if (ASICREV_IS_GREEN_SARDINE(adev->external_rev_id))
 			init_data.flags.disable_dmcu = true;
 		break;
+#if defined(CONFIG_DRM_AMD_DC_DCN3_01)
+	case CHIP_VANGOGH:
+		init_data.flags.gpu_vm_support = true;
+		break;
+#endif
 	default:
 		break;
 	}
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 15/17] drm/amd/display: Revert DCN2.1 dram_clock_change_latency update
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (13 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 14/17] drm/amd/display: Enable gpu_vm_support for dcn3.01 Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 16/17] drm/amd/display: [FW Promotion] Release 0.0.45 Eryk Brol
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Sung Lee, Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing.Zhuo,
	Rodrigo.Siqueira, Aurabindo.Pillai, Michael Strauss,
	Yongqiang Sun, Bhawanpreet.Lakha, bindu.r

From: Michael Strauss <michael.strauss@amd.com>

[Why]
New value breaks VSR on high refresh panels, reverting until a fix is developed

Signed-off-by: Michael Strauss <michael.strauss@amd.com>
Signed-off-by: Sung Lee <sung.lee@amd.com>
Reviewed-by: Yongqiang Sun <yongqiang.sun@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
index b000b43a820d..1c88d2edd381 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
@@ -296,7 +296,7 @@ struct _vcs_dpi_soc_bounding_box_st dcn2_1_soc = {
 	.num_banks = 8,
 	.num_chans = 4,
 	.vmm_page_size_bytes = 4096,
-	.dram_clock_change_latency_us = 11.72,
+	.dram_clock_change_latency_us = 23.84,
 	.return_bus_width_bytes = 64,
 	.dispclk_dppclk_vco_speed_mhz = 3600,
 	.xfc_bus_transport_time_us = 4,
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 16/17] drm/amd/display: [FW Promotion] Release 0.0.45
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (14 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 15/17] drm/amd/display: Revert DCN2.1 dram_clock_change_latency update Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-04 21:28 ` [PATCH 17/17] drm/amd/display: 3.2.115 Eryk Brol
  2020-12-07 16:05 ` [PATCH 00/17] DC Patches Dec 7, 2020 Harry Wentland
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Aric Cyr, Anthony Koo, Eryk Brol, Sunpeng.Li, Harry.Wentland,
	Qingqing.Zhuo, Rodrigo.Siqueira, Aurabindo.Pillai,
	Bhawanpreet.Lakha, bindu.r

From: Anthony Koo <Anthony.Koo@amd.com>

- Add define for __forceinline

Signed-off-by: Anthony Koo <Anthony.Koo@amd.com>
Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h b/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
index 4b7a1b8ad9e0..b20a39f488ae 100644
--- a/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
+++ b/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h
@@ -26,6 +26,15 @@
 #ifndef _DMUB_CMD_H_
 #define _DMUB_CMD_H_
 
+#if defined(_TEST_HARNESS) || defined(FPGA_USB4)
+#include "dmub_fw_types.h"
+#include "include_legacy/atomfirmware.h"
+
+#if defined(_TEST_HARNESS)
+#include <string.h>
+#endif
+#else
+
 #include <asm/byteorder.h>
 #include <linux/types.h>
 #include <linux/string.h>
@@ -34,12 +43,14 @@
 
 #include "atomfirmware.h"
 
+#endif // defined(_TEST_HARNESS) || defined(FPGA_USB4)
+
 /* Firmware versioning. */
 #ifdef DMUB_EXPOSE_VERSION
-#define DMUB_FW_VERSION_GIT_HASH 0x685065427
+#define DMUB_FW_VERSION_GIT_HASH 0x931573111
 #define DMUB_FW_VERSION_MAJOR 0
 #define DMUB_FW_VERSION_MINOR 0
-#define DMUB_FW_VERSION_REVISION 44
+#define DMUB_FW_VERSION_REVISION 45
 #define DMUB_FW_VERSION_TEST 0
 #define DMUB_FW_VERSION_VBIOS 0
 #define DMUB_FW_VERSION_HOTFIX 0
@@ -55,6 +66,8 @@
 //<DMUB_TYPES>==================================================================
 /* Basic type definitions. */
 
+#define __forceinline inline
+
 #define SET_ABM_PIPE_GRADUALLY_DISABLE           0
 #define SET_ABM_PIPE_IMMEDIATELY_DISABLE         255
 #define SET_ABM_PIPE_IMMEDIATE_KEEP_GAIN_DISABLE 254
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 17/17] drm/amd/display: 3.2.115
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (15 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 16/17] drm/amd/display: [FW Promotion] Release 0.0.45 Eryk Brol
@ 2020-12-04 21:28 ` Eryk Brol
  2020-12-07 16:05 ` [PATCH 00/17] DC Patches Dec 7, 2020 Harry Wentland
  17 siblings, 0 replies; 21+ messages in thread
From: Eryk Brol @ 2020-12-04 21:28 UTC (permalink / raw)
  To: amd-gfx
  Cc: Aric Cyr, Eryk Brol, Sunpeng.Li, Harry.Wentland, Qingqing.Zhuo,
	Rodrigo.Siqueira, Aurabindo.Pillai, Bhawanpreet.Lakha, bindu.r

From: Aric Cyr <aric.cyr@amd.com>

Signed-off-by: Aric Cyr <aric.cyr@amd.com>
Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dc.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h
index 54a829f95346..b8f1e2d33423 100644
--- a/drivers/gpu/drm/amd/display/dc/dc.h
+++ b/drivers/gpu/drm/amd/display/dc/dc.h
@@ -42,7 +42,7 @@
 #include "inc/hw/dmcu.h"
 #include "dml/display_mode_lib.h"
 
-#define DC_VER "3.2.114"
+#define DC_VER "3.2.115"
 
 #define MAX_SURFACES 3
 #define MAX_PLANES 6
-- 
2.25.1

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH 14/17] drm/amd/display: Enable gpu_vm_support for dcn3.01
  2020-12-04 21:28 ` [PATCH 14/17] drm/amd/display: Enable gpu_vm_support for dcn3.01 Eryk Brol
@ 2020-12-07 14:40   ` Deucher, Alexander
  2020-12-07 16:16     ` Brol, Eryk
  0 siblings, 1 reply; 21+ messages in thread
From: Deucher, Alexander @ 2020-12-07 14:40 UTC (permalink / raw)
  To: Brol, Eryk, amd-gfx
  Cc: Liu, Charlene, Li, Sun peng (Leo),
	Lakha, Bhawanpreet, Zhuo,  Qingqing, Siqueira, Rodrigo, Pillai,
	Aurabindo, Sun, Yongqiang, Wentland, Harry, R, Bindu


[-- Attachment #1.1: Type: text/plain, Size: 2497 bytes --]

[AMD Official Use Only - Internal Distribution Only]

We've dropped the CONFIG_DRM_AMD_DC_DCN3* kconfig options recently.

Alex

________________________________
From: amd-gfx <amd-gfx-bounces@lists.freedesktop.org> on behalf of Eryk Brol <eryk.brol@amd.com>
Sent: Friday, December 4, 2020 4:28 PM
To: amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org>
Cc: Liu, Charlene <Charlene.Liu@amd.com>; Brol, Eryk <Eryk.Brol@amd.com>; Li, Sun peng (Leo) <Sunpeng.Li@amd.com>; Wentland, Harry <Harry.Wentland@amd.com>; Zhuo, Qingqing <Qingqing.Zhuo@amd.com>; Siqueira, Rodrigo <Rodrigo.Siqueira@amd.com>; Pillai, Aurabindo <Aurabindo.Pillai@amd.com>; Sun, Yongqiang <Yongqiang.Sun@amd.com>; Lakha, Bhawanpreet <Bhawanpreet.Lakha@amd.com>; R, Bindu <Bindu.R@amd.com>
Subject: [PATCH 14/17] drm/amd/display: Enable gpu_vm_support for dcn3.01

From: Charlene Liu <Charlene.Liu@amd.com>

[Why]
dcn3_01 supports gpu_vm, but this is not enabled in amdgpu_dm

Signed-off-by: Charlene Liu <Charlene.Liu@amd.com>
Reviewed-by: Yongqiang Sun <yongqiang.sun@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 59f738008734..53a7cb21f603 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1035,6 +1035,11 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
                 if (ASICREV_IS_GREEN_SARDINE(adev->external_rev_id))
                         init_data.flags.disable_dmcu = true;
                 break;
+#if defined(CONFIG_DRM_AMD_DC_DCN3_01)
+       case CHIP_VANGOGH:
+               init_data.flags.gpu_vm_support = true;
+               break;
+#endif
         default:
                 break;
         }
--
2.25.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=04%7C01%7Calexander.deucher%40amd.com%7C93575bd3247e42f848bc08d8989bee3e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637427142787650359%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=wf2Tl4Qz9IzTZVvfBRYcFHZ8Cr464ZEZ%2B1Pb1GP5W9E%3D&amp;reserved=0

[-- Attachment #1.2: Type: text/html, Size: 5062 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH 00/17] DC Patches Dec 7, 2020
  2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
                   ` (16 preceding siblings ...)
  2020-12-04 21:28 ` [PATCH 17/17] drm/amd/display: 3.2.115 Eryk Brol
@ 2020-12-07 16:05 ` Harry Wentland
  17 siblings, 0 replies; 21+ messages in thread
From: Harry Wentland @ 2020-12-07 16:05 UTC (permalink / raw)
  To: Eryk Brol, amd-gfx
  Cc: Sunpeng.Li, Qingqing.Zhuo, Rodrigo.Siqueira, Aurabindo.Pillai,
	Bhawanpreet.Lakha, bindu.r

> AMD\ramini (1):
>    drm/amd/display: Set FixRate bit in VSIF V3

Please ask Reza to configure his git with his real name.

Harry


On 2020-12-04 4:28 p.m., Eryk Brol wrote:
> This DC patchset brings improvements in multiple areas.
> In summary, we highlight:
>
> * Fixes in MST, Compliance, HDCP, audio;
> * Enhancements in VSIF;
> * Improvements in seamless boot, DPG;
>
> ----------------------------
>
> AMD\ramini (1):
>    drm/amd/display: Set FixRate bit in VSIF V3
>
> Anthony Koo (1):
>    drm/amd/display: [FW Promotion] Release 0.0.45
>
> Aric Cyr (1):
>    drm/amd/display: 3.2.115
>
> Charlene Liu (1):
>    drm/amd/display: Enable gpu_vm_support for dcn3.01
>
> Chris Park (1):
>    drm/amd/display: Prevent bandwidth overflow
>
> Dmytro Laktyushkin (1):
>    drm/amd/display: Expose clk_mgr functions for reuse
>
> Jing Zhou (1):
>    drm/amd/display: Set default bits per channel
>
> John Wu (1):
>    drm/amd/display: Don't check seamless boot in power down HW by timeout
>
> Judy Cai (1):
>    drm/amd/display: Change to IMMEDIATE mode from FRAME mode
>
> Michael Strauss (1):
>    drm/amd/display: Revert DCN2.1 dram_clock_change_latency update
>
> Qingqing Zhuo (2):
>    drm/amd/display: NULL pointer error during compliance test
>    drm/amd/display: Only one display lights up while using MST hub
>
> Reza Amini (1):
>    drm/amd/display: Implement VSIF V3 extended refresh rate feature
>
> Roy Chan (1):
>    drm/amd/display: Fixed the audio noise during mode switching with HDCP
>      mode on
>
> Sung Lee (1):
>    drm/amd/display: Add wm table for Renoir
>
> Wesley Chalmers (1):
>    drm/amd/display: Use provided offset for DPG generation
>
> Wyatt Wood (1):
>    drm/amd/display: Add support for runtime feature detection command
>
>   .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  37 +++++--
>   .../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c |  93 +++++++++++++++-
>   .../display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c  |   2 +-
>   .../display/dc/clk_mgr/dcn301/vg_clk_mgr.c    |   8 +-
>   .../display/dc/clk_mgr/dcn301/vg_clk_mgr.h    |  10 ++
>   drivers/gpu/drm/amd/display/dc/core/dc_link.c |  18 ++-
>   .../gpu/drm/amd/display/dc/core/dc_link_dp.c  |  17 ++-
>   drivers/gpu/drm/amd/display/dc/dc.h           |   2 +-
>   drivers/gpu/drm/amd/display/dc/dc_link.h      |   4 +
>   .../amd/display/dc/dcn10/dcn10_hw_sequencer.c |   5 +-
>   .../drm/amd/display/dc/dcn21/dcn21_resource.c |   2 +-
>   .../drm/amd/display/dc/dcn30/dcn30_hwseq.c    |   2 +-
>   .../gpu/drm/amd/display/dc/dcn30/dcn30_vpg.c  |  62 +++++------
>   .../gpu/drm/amd/display/dc/dcn30/dcn30_vpg.h  |  38 ++++++-
>   drivers/gpu/drm/amd/display/dmub/dmub_srv.h   |   6 +
>   .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h   |  17 ++-
>   .../gpu/drm/amd/display/dmub/src/dmub_srv.c   |  29 +++++
>   .../amd/display/modules/freesync/freesync.c   | 104 +++++++++++++++---
>   18 files changed, 367 insertions(+), 89 deletions(-)
>

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

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 14/17] drm/amd/display: Enable gpu_vm_support for dcn3.01
  2020-12-07 14:40   ` Deucher, Alexander
@ 2020-12-07 16:16     ` Brol, Eryk
  0 siblings, 0 replies; 21+ messages in thread
From: Brol, Eryk @ 2020-12-07 16:16 UTC (permalink / raw)
  To: Deucher, Alexander, amd-gfx
  Cc: Liu, Charlene, Li, Sun peng (Leo),
	Lakha, Bhawanpreet, Zhuo,  Qingqing, Siqueira, Rodrigo, Pillai,
	Aurabindo, Sun, Yongqiang, Wentland, Harry, R, Bindu


[-- Attachment #1.1: Type: text/plain, Size: 3275 bytes --]

[AMD Official Use Only - Internal Distribution Only]

Thanks for pointing that out!

Eryk
________________________________
From: Deucher, Alexander <Alexander.Deucher@amd.com>
Sent: Monday, December 7, 2020 9:40 AM
To: Brol, Eryk <Eryk.Brol@amd.com>; amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org>
Cc: Liu, Charlene <Charlene.Liu@amd.com>; Li, Sun peng (Leo) <Sunpeng.Li@amd.com>; Wentland, Harry <Harry.Wentland@amd.com>; Zhuo, Qingqing <Qingqing.Zhuo@amd.com>; Siqueira, Rodrigo <Rodrigo.Siqueira@amd.com>; Pillai, Aurabindo <Aurabindo.Pillai@amd.com>; Sun, Yongqiang <Yongqiang.Sun@amd.com>; Lakha, Bhawanpreet <Bhawanpreet.Lakha@amd.com>; R, Bindu <Bindu.R@amd.com>
Subject: Re: [PATCH 14/17] drm/amd/display: Enable gpu_vm_support for dcn3.01


[AMD Official Use Only - Internal Distribution Only]

We've dropped the CONFIG_DRM_AMD_DC_DCN3* kconfig options recently.

Alex

________________________________
From: amd-gfx <amd-gfx-bounces@lists.freedesktop.org> on behalf of Eryk Brol <eryk.brol@amd.com>
Sent: Friday, December 4, 2020 4:28 PM
To: amd-gfx@lists.freedesktop.org <amd-gfx@lists.freedesktop.org>
Cc: Liu, Charlene <Charlene.Liu@amd.com>; Brol, Eryk <Eryk.Brol@amd.com>; Li, Sun peng (Leo) <Sunpeng.Li@amd.com>; Wentland, Harry <Harry.Wentland@amd.com>; Zhuo, Qingqing <Qingqing.Zhuo@amd.com>; Siqueira, Rodrigo <Rodrigo.Siqueira@amd.com>; Pillai, Aurabindo <Aurabindo.Pillai@amd.com>; Sun, Yongqiang <Yongqiang.Sun@amd.com>; Lakha, Bhawanpreet <Bhawanpreet.Lakha@amd.com>; R, Bindu <Bindu.R@amd.com>
Subject: [PATCH 14/17] drm/amd/display: Enable gpu_vm_support for dcn3.01

From: Charlene Liu <Charlene.Liu@amd.com>

[Why]
dcn3_01 supports gpu_vm, but this is not enabled in amdgpu_dm

Signed-off-by: Charlene Liu <Charlene.Liu@amd.com>
Reviewed-by: Yongqiang Sun <yongqiang.sun@amd.com>
Acked-by: Eryk Brol <eryk.brol@amd.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 59f738008734..53a7cb21f603 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1035,6 +1035,11 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
                 if (ASICREV_IS_GREEN_SARDINE(adev->external_rev_id))
                         init_data.flags.disable_dmcu = true;
                 break;
+#if defined(CONFIG_DRM_AMD_DC_DCN3_01)
+       case CHIP_VANGOGH:
+               init_data.flags.gpu_vm_support = true;
+               break;
+#endif
         default:
                 break;
         }
--
2.25.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&amp;data=04%7C01%7Calexander.deucher%40amd.com%7C93575bd3247e42f848bc08d8989bee3e%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637427142787650359%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=wf2Tl4Qz9IzTZVvfBRYcFHZ8Cr464ZEZ%2B1Pb1GP5W9E%3D&amp;reserved=0

[-- Attachment #1.2: Type: text/html, Size: 6835 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

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

^ permalink raw reply related	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2020-12-07 16:16 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-04 21:28 [PATCH 00/17] DC Patches Dec 7, 2020 Eryk Brol
2020-12-04 21:28 ` [PATCH 01/17] drm/amd/display: Implement VSIF V3 extended refresh rate feature Eryk Brol
2020-12-04 21:28 ` [PATCH 02/17] drm/amd/display: Set FixRate bit in VSIF V3 Eryk Brol
2020-12-04 21:28 ` [PATCH 03/17] drm/amd/display: NULL pointer error during compliance test Eryk Brol
2020-12-04 21:28 ` [PATCH 04/17] drm/amd/display: Expose clk_mgr functions for reuse Eryk Brol
2020-12-04 21:28 ` [PATCH 05/17] drm/amd/display: Add support for runtime feature detection command Eryk Brol
2020-12-04 21:28 ` [PATCH 06/17] drm/amd/display: Set default bits per channel Eryk Brol
2020-12-04 21:28 ` [PATCH 07/17] drm/amd/display: Don't check seamless boot in power down HW by timeout Eryk Brol
2020-12-04 21:28 ` [PATCH 08/17] drm/amd/display: Change to IMMEDIATE mode from FRAME mode Eryk Brol
2020-12-04 21:28 ` [PATCH 09/17] drm/amd/display: Use provided offset for DPG generation Eryk Brol
2020-12-04 21:28 ` [PATCH 10/17] drm/amd/display: Only one display lights up while using MST hub Eryk Brol
2020-12-04 21:28 ` [PATCH 11/17] drm/amd/display: Prevent bandwidth overflow Eryk Brol
2020-12-04 21:28 ` [PATCH 12/17] drm/amd/display: Add wm table for Renoir Eryk Brol
2020-12-04 21:28 ` [PATCH 13/17] drm/amd/display: Fixed the audio noise during mode switching with HDCP mode on Eryk Brol
2020-12-04 21:28 ` [PATCH 14/17] drm/amd/display: Enable gpu_vm_support for dcn3.01 Eryk Brol
2020-12-07 14:40   ` Deucher, Alexander
2020-12-07 16:16     ` Brol, Eryk
2020-12-04 21:28 ` [PATCH 15/17] drm/amd/display: Revert DCN2.1 dram_clock_change_latency update Eryk Brol
2020-12-04 21:28 ` [PATCH 16/17] drm/amd/display: [FW Promotion] Release 0.0.45 Eryk Brol
2020-12-04 21:28 ` [PATCH 17/17] drm/amd/display: 3.2.115 Eryk Brol
2020-12-07 16:05 ` [PATCH 00/17] DC Patches Dec 7, 2020 Harry Wentland

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.