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

Reply via email to