diff mbox

[1/2] drm/radeon/audio: don't set speaker allocation on DCE3.2

Message ID 1382041373-2162-1-git-send-email-alexander.deucher@amd.com (mailing list archive)
State New, archived
Headers show

Commit Message

Alex Deucher Oct. 17, 2013, 8:22 p.m. UTC
It causes hangs on some asics.

Bug:
https://bugs.freedesktop.org/show_bug.cgi?id=70439

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
---
 drivers/gpu/drm/radeon/r600_hdmi.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Christian König Oct. 18, 2013, 6:37 a.m. UTC | #1
Am 17.10.2013 22:22, schrieb Alex Deucher:
> It causes hangs on some asics.
>
> Bug:
> https://bugs.freedesktop.org/show_bug.cgi?id=70439
>
> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

Both are: Reviewed-by: Christian König <christian.koenig@amd.com>

> ---
>   drivers/gpu/drm/radeon/r600_hdmi.c | 3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
> index 5b72931..06022e3 100644
> --- a/drivers/gpu/drm/radeon/r600_hdmi.c
> +++ b/drivers/gpu/drm/radeon/r600_hdmi.c
> @@ -309,6 +309,9 @@ static void dce3_2_afmt_write_speaker_allocation(struct drm_encoder *encoder)
>   	u8 *sadb;
>   	int sad_count;
>   
> +	/* XXX: setting this register causes hangs on some asics */
> +	return;
> +
>   	list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) {
>   		if (connector->encoder == encoder)
>   			radeon_connector = to_radeon_connector(connector);
Rafał Miłecki Oct. 18, 2013, 6:49 a.m. UTC | #2
2013/10/17 Alex Deucher <alexdeucher@gmail.com>:
> It causes hangs on some asics.
>
> Bug:
> https://bugs.freedesktop.org/show_bug.cgi?id=70439

I noticed some hangs on BARTS too, let me test this solution on DCE5.
Maybe it's not just DCE3.2.
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
index 5b72931..06022e3 100644
--- a/drivers/gpu/drm/radeon/r600_hdmi.c
+++ b/drivers/gpu/drm/radeon/r600_hdmi.c
@@ -309,6 +309,9 @@  static void dce3_2_afmt_write_speaker_allocation(struct drm_encoder *encoder)
 	u8 *sadb;
 	int sad_count;
 
+	/* XXX: setting this register causes hangs on some asics */
+	return;
+
 	list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) {
 		if (connector->encoder == encoder)
 			radeon_connector = to_radeon_connector(connector);