diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2014-04-08 11:28:54 -0400 |
---|---|---|
committer | Christian König <christian.koenig@amd.com> | 2014-04-08 11:43:48 -0400 |
commit | be0949f5eb9c8133a05cf25f108f09e85e79cd32 (patch) | |
tree | ac46b2e056e7484620ed5096ecbdb26f882141a3 | |
parent | 379dfc25e257ffe10eb53b86d2375f7c0f4f33ef (diff) |
drm/radeon: fix audio pin counts for DCE6+ (v2)
There is actually quite a bit of variance based on
the asic.
v2: fix typo noticed by Jerome.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Cc: stable@vger.kernel.org
-rw-r--r-- | drivers/gpu/drm/radeon/dce6_afmt.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon.h | 5 |
2 files changed, 14 insertions, 5 deletions
diff --git a/drivers/gpu/drm/radeon/dce6_afmt.c b/drivers/gpu/drm/radeon/dce6_afmt.c index 94e858751994..0a65dc7e93e7 100644 --- a/drivers/gpu/drm/radeon/dce6_afmt.c +++ b/drivers/gpu/drm/radeon/dce6_afmt.c | |||
@@ -309,11 +309,17 @@ int dce6_audio_init(struct radeon_device *rdev) | |||
309 | 309 | ||
310 | rdev->audio.enabled = true; | 310 | rdev->audio.enabled = true; |
311 | 311 | ||
312 | if (ASIC_IS_DCE8(rdev)) | 312 | if (ASIC_IS_DCE81(rdev)) /* KV: 4 streams, 7 endpoints */ |
313 | rdev->audio.num_pins = 7; | ||
314 | else if (ASIC_IS_DCE83(rdev)) /* KB: 2 streams, 3 endpoints */ | ||
315 | rdev->audio.num_pins = 3; | ||
316 | else if (ASIC_IS_DCE8(rdev)) /* BN/HW: 6 streams, 7 endpoints */ | ||
317 | rdev->audio.num_pins = 7; | ||
318 | else if (ASIC_IS_DCE61(rdev)) /* TN: 4 streams, 6 endpoints */ | ||
313 | rdev->audio.num_pins = 6; | 319 | rdev->audio.num_pins = 6; |
314 | else if (ASIC_IS_DCE61(rdev)) | 320 | else if (ASIC_IS_DCE64(rdev)) /* OL: 2 streams, 2 endpoints */ |
315 | rdev->audio.num_pins = 4; | 321 | rdev->audio.num_pins = 2; |
316 | else | 322 | else /* SI: 6 streams, 6 endpoints */ |
317 | rdev->audio.num_pins = 6; | 323 | rdev->audio.num_pins = 6; |
318 | 324 | ||
319 | for (i = 0; i < rdev->audio.num_pins; i++) { | 325 | for (i = 0; i < rdev->audio.num_pins; i++) { |
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index f21db7a0b34d..05b08e16e1f5 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
@@ -739,7 +739,7 @@ union radeon_irq_stat_regs { | |||
739 | struct cik_irq_stat_regs cik; | 739 | struct cik_irq_stat_regs cik; |
740 | }; | 740 | }; |
741 | 741 | ||
742 | #define RADEON_MAX_HPD_PINS 6 | 742 | #define RADEON_MAX_HPD_PINS 7 |
743 | #define RADEON_MAX_CRTCS 6 | 743 | #define RADEON_MAX_CRTCS 6 |
744 | #define RADEON_MAX_AFMT_BLOCKS 7 | 744 | #define RADEON_MAX_AFMT_BLOCKS 7 |
745 | 745 | ||
@@ -2631,6 +2631,9 @@ void r100_pll_errata_after_index(struct radeon_device *rdev); | |||
2631 | #define ASIC_IS_DCE64(rdev) ((rdev->family == CHIP_OLAND)) | 2631 | #define ASIC_IS_DCE64(rdev) ((rdev->family == CHIP_OLAND)) |
2632 | #define ASIC_IS_NODCE(rdev) ((rdev->family == CHIP_HAINAN)) | 2632 | #define ASIC_IS_NODCE(rdev) ((rdev->family == CHIP_HAINAN)) |
2633 | #define ASIC_IS_DCE8(rdev) ((rdev->family >= CHIP_BONAIRE)) | 2633 | #define ASIC_IS_DCE8(rdev) ((rdev->family >= CHIP_BONAIRE)) |
2634 | #define ASIC_IS_DCE81(rdev) ((rdev->family == CHIP_KAVERI)) | ||
2635 | #define ASIC_IS_DCE82(rdev) ((rdev->family == CHIP_BONAIRE)) | ||
2636 | #define ASIC_IS_DCE83(rdev) ((rdev->family == CHIP_KABINI)) | ||
2634 | 2637 | ||
2635 | #define ASIC_IS_LOMBOK(rdev) ((rdev->ddev->pdev->device == 0x6849) || \ | 2638 | #define ASIC_IS_LOMBOK(rdev) ((rdev->ddev->pdev->device == 0x6849) || \ |
2636 | (rdev->ddev->pdev->device == 0x6850) || \ | 2639 | (rdev->ddev->pdev->device == 0x6850) || \ |