[PATCH] drm/radeon: initialize AFMT blocks on DCE6

Rafał Miłecki zajec5 at gmail.com
Wed Jul 31 09:51:53 PDT 2013


So far it was tested on HD7750 (DCE6) only. For DCE61 and DCE64 I
assumed that amount of AFMTs equals amount of display controllers.

Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
---
This patch depends on
[PATCH] drm/radeon: use loop for initializing AFMT blocks
---
 drivers/gpu/drm/radeon/radeon_display.c |   16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 31d9fbe..885fce1 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -1267,9 +1267,19 @@ static void radeon_afmt_init(struct radeon_device *rdev)
 		};
 		int num_afmt;
 
-		/* DCE4/5 has 6 audio blocks tied to DIG encoders */
-		/* DCE4.1 has 2 audio blocks tied to DIG encoders */
-		if (ASIC_IS_DCE5(rdev))
+		/*
+		 * DCE64 and DCE61 are just guesses
+		 * DCE6 was verified to have 6th AFMT using HD7750
+		 * DCE4/5 has 6 audio blocks tied to DIG encoders
+		 * DCE4.1 has 2 audio blocks tied to DIG encoders
+		 */
+		if (ASIC_IS_DCE64(rdev))
+			num_afmt = 2;
+		else if (ASIC_IS_DCE61(rdev))
+			num_afmt = 4;
+		else if (ASIC_IS_DCE6(rdev))
+			num_afmt = 6;
+		else if (ASIC_IS_DCE5(rdev))
 			num_afmt = 6;
 		else if (ASIC_IS_DCE41(rdev))
 			num_afmt = 2;
-- 
1.7.10.4



More information about the dri-devel mailing list