RE: [Dali] Raven 2 detection Patch

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

 



***Reattached patch with corrections***

From b828a2b3df3057461dfceb4d1394fe858ced9d03 Mon Sep 17 00:00:00 2001
From: Ali-Tawfik <altawfik@xxxxxxx>
Date: Thu, 6 Feb 2020 12:53:02 -0500
Subject: [PATCH] drm/amdgpu: [DALI] Dali Variant Detection

Problem Description:

Currently we are checking internal fused rev id with pci rev id. However, fused internal rev id is the same on all raven2 parts (in which Dali was based on too), thus Dali detection fails

Fix:

To detect this chip we need to use pci rev id but it is not defined in the
scope of DC. To workaround this issue alter the fused
rev id using pcie id for all dali chips before DC init,
then use the internal fused id for chip detection in DC.

Signed-off-by: Ali-Tawfik <altawfik@xxxxxxx>
---
 drivers/gpu/drm/amd/amdgpu/soc15.c                | 9 ++++++++-
 drivers/gpu/drm/amd/display/include/dal_asic_id.h | 4 ++--
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c b/drivers/gpu/drm/amd/amdgpu/soc15.c
index 317803f6a561..f85c27fbe64c 100644
--- a/drivers/gpu/drm/amd/amdgpu/soc15.c
+++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
@@ -1094,8 +1094,15 @@ static int soc15_common_early_init(void *handle)
 		break;
 	case CHIP_RAVEN:
 		adev->asic_funcs = &soc15_asic_funcs;
-		if (adev->rev_id >= 0x8)
+		if (adev->rev_id >= 0x8) {
+			if ((adev->pdev->device == 0x15d8) &&
+				 ((adev->pdev->revision == 0xCF) ||
+				 (adev->pdev->revision == 0xE3)||
+				 (adev->pdev->revision == 0xE4))) {
+				adev->rev_id = 0x10;
+			}
 			adev->external_rev_id = adev->rev_id + 0x79;
+		}
 		else if (adev->pdev->device == 0x15d8)
 			adev->external_rev_id = adev->rev_id + 0x41;
 		else if (adev->rev_id == 1)
diff --git a/drivers/gpu/drm/amd/display/include/dal_asic_id.h b/drivers/gpu/drm/amd/display/include/dal_asic_id.h
index a2903985b9e8..0329f26bfacd 100644
--- a/drivers/gpu/drm/amd/display/include/dal_asic_id.h
+++ b/drivers/gpu/drm/amd/display/include/dal_asic_id.h
@@ -143,6 +143,7 @@
 #define RAVEN2_15D8_REV_EB 0xEB
 #define RAVEN1_F0 0xF0
 #define RAVEN_UNKNOWN 0xFF
+#define RAVEN2_15D8_B0_LW 0x89
 #ifndef ASICREV_IS_RAVEN
 #define ASICREV_IS_RAVEN(eChipRev) ((eChipRev >= RAVEN_A0) && eChipRev < RAVEN_UNKNOWN)
 #endif
@@ -152,8 +153,7 @@
 #define ASICREV_IS_RAVEN2(eChipRev) ((eChipRev >= RAVEN2_A0) && (eChipRev < RAVEN1_F0))
 #endif
 #define ASICREV_IS_RV1_F0(eChipRev) ((eChipRev >= RAVEN1_F0) && (eChipRev < RAVEN_UNKNOWN))
-#define ASICREV_IS_DALI(eChipRev) ((eChipRev == RAVEN2_15D8_REV_E3) \
-		|| (eChipRev == RAVEN2_15D8_REV_E4))
+#define ASICREV_IS_DALI(eChipRev) ((eChipRev == RAVEN2_15D8_B0_LW))
 #define ASICREV_IS_POLLOCK(eChipRev) (eChipRev == RAVEN2_15D8_REV_94 \
 		|| eChipRev == RAVEN2_15D8_REV_95 \
 			|| eChipRev == RAVEN2_15D8_REV_E9 \
-- 
2.17.1

Attachment: 0001-drm-amdgpu-DALI-Dali-Variant-Detection.patch
Description: 0001-drm-amdgpu-DALI-Dali-Variant-Detection.patch

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

[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux