@@ -1267,9 +1267,18 @@ 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 most probably has just 2 AFMTs
+ * DCE61 supports 6 DIG encoders, so should have 6 AFMTs
+ * 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_DCE6(rdev))
+ num_afmt = 6;
+ else if (ASIC_IS_DCE5(rdev))
num_afmt = 6;
else if (ASIC_IS_DCE41(rdev))
num_afmt = 2;
It was succesfully tested on HD7750 (DCE6). Signed-off-by: Rafa? Mi?ecki <zajec5@gmail.com> --- V2: Update comments, change DCE61 AFMTs amount to 6 --- drivers/gpu/drm/radeon/radeon_display.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-)