diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2012-03-30 08:59:57 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-04-24 04:50:14 -0400 |
commit | f122c6109b1a79153cfb1e188c665ce3f312a886 (patch) | |
tree | 9b8d9211c0be59a0a96a906373bd85d187d23ab4 /drivers/gpu/drm/radeon/r600_hdmi.c | |
parent | 3a2a67aa28725bb500505087067e7830cfa9c137 (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.c | 17 |
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 */ |