summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/radeon/radeon_audio.h
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2015-07-23 17:01:09 +0300
committerAlex Deucher <alexander.deucher@amd.com>2015-07-29 22:48:05 +0300
commitd0ea397e22f9ad0113c1dbdaab14eded050472eb (patch)
tree89b8156f682f9cf56160edbdaf00d9f417342371 /drivers/gpu/drm/radeon/radeon_audio.h
parentb3fcf36aeef3aeb890d9413c2066048ec7fda7e5 (diff)
downloadlinux-d0ea397e22f9ad0113c1dbdaab14eded050472eb.tar.xz
drm/radeon: rework audio detect (v4)
1. Always assign audio function pointers even if the display does not support audio. We need to properly disable the audio stream when when using a non-audio capable monitor. Fixes purple line on some hdmi monitors. 2. Check if a pin is in use by another encoder before disabling it. v2: make sure we've fetched the edid before checking audio and look up the encoder before calling audio_detect since connector->encoder may not be assigned yet. Separate pin and afmt. They are allocated at different times and have no dependency on eachother. v3: fix connector fetching in encoder functions v4: fix missed dig->pin check in dce6_afmt_write_latency_fields bugs: https://bugzilla.kernel.org/show_bug.cgi?id=93701 https://bugzilla.redhat.com/show_bug.cgi?id=1236337 https://bugs.freedesktop.org/show_bug.cgi?id=91041 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_audio.h')
-rw-r--r--drivers/gpu/drm/radeon/radeon_audio.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_audio.h b/drivers/gpu/drm/radeon/radeon_audio.h
index 8438304f7139..059cc3012062 100644
--- a/drivers/gpu/drm/radeon/radeon_audio.h
+++ b/drivers/gpu/drm/radeon/radeon_audio.h
@@ -68,7 +68,8 @@ struct radeon_audio_funcs
int radeon_audio_init(struct radeon_device *rdev);
void radeon_audio_detect(struct drm_connector *connector,
- enum drm_connector_status status);
+ struct drm_encoder *encoder,
+ enum drm_connector_status status);
u32 radeon_audio_endpoint_rreg(struct radeon_device *rdev,
u32 offset, u32 reg);
void radeon_audio_endpoint_wreg(struct radeon_device *rdev,