aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r600_hdmi.c
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2012-03-30 08:59:57 -0400
committerDave Airlie <airlied@redhat.com>2012-04-24 04:50:14 -0400
commitf122c6109b1a79153cfb1e188c665ce3f312a886 (patch)
tree9b8d9211c0be59a0a96a906373bd85d187d23ab4 /drivers/gpu/drm/radeon/r600_hdmi.c
parent3a2a67aa28725bb500505087067e7830cfa9c137 (diff)
drm/radeon/kms: fix up audio interrupt handling
- add support for rs6xx - add support for DCE4/5 - fixup 6xx/7xx Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/r600_hdmi.c')
-rw-r--r--drivers/gpu/drm/radeon/r600_hdmi.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
index 0b5920671450..37ac1b06753e 100644
--- a/drivers/gpu/drm/radeon/r600_hdmi.c
+++ b/drivers/gpu/drm/radeon/r600_hdmi.c
@@ -548,19 +548,10 @@ void r600_hdmi_enable(struct drm_encoder *encoder)
548 } 548 }
549 } 549 }
550 550
551 if (rdev->irq.installed 551 if (rdev->irq.installed) {
552 && rdev->family != CHIP_RS600
553 && rdev->family != CHIP_RS690
554 && rdev->family != CHIP_RS740
555 && !ASIC_IS_DCE4(rdev)) {
556 /* if irq is available use it */ 552 /* if irq is available use it */
557 rdev->irq.hdmi[offset == R600_HDMI_BLOCK1 ? 0 : 1] = true; 553 rdev->irq.afmt[offset == R600_HDMI_BLOCK1 ? 0 : 1] = true;
558 radeon_irq_set(rdev); 554 radeon_irq_set(rdev);
559
560 r600_audio_disable_polling(encoder);
561 } else {
562 /* if not fallback to polling */
563 r600_audio_enable_polling(encoder);
564 } 555 }
565 556
566 DRM_DEBUG("Enabling HDMI interface @ 0x%04X for encoder 0x%x\n", 557 DRM_DEBUG("Enabling HDMI interface @ 0x%04X for encoder 0x%x\n",
@@ -590,11 +581,9 @@ void r600_hdmi_disable(struct drm_encoder *encoder)
590 offset, radeon_encoder->encoder_id); 581 offset, radeon_encoder->encoder_id);
591 582
592 /* disable irq */ 583 /* disable irq */
593 rdev->irq.hdmi[offset == R600_HDMI_BLOCK1 ? 0 : 1] = false; 584 rdev->irq.afmt[offset == R600_HDMI_BLOCK1 ? 0 : 1] = false;
594 radeon_irq_set(rdev); 585 radeon_irq_set(rdev);
595 586
596 /* disable polling */
597 r600_audio_disable_polling(encoder);
598 587
599 if (ASIC_IS_DCE5(rdev)) { 588 if (ASIC_IS_DCE5(rdev)) {
600 /* TODO */ 589 /* TODO */