Commit 6b53a050 authored by Rafał Miłecki's avatar Rafał Miłecki Committed by Dave Airlie

drm/radeon: enable HDMI on DCE5 (AKA NI excluding Aruba)

After recent changes HDMI code is ready to be enabled on DCE5. This
patch just changes conditions to execute already present code on DCE5.
Signed-off-by: default avatarRafał Miłecki <zajec5@gmail.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Tested-by: default avatarChristian König <christian.koenig@amd.com>
Tested-by: default avatarAndre Heider <a.heider@gmail.com>
Tested-by: default avatarZoltán Böszörményi <zboszor@pr.hu>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 648ccc7d
...@@ -1926,7 +1926,9 @@ radeon_atom_encoder_mode_set(struct drm_encoder *encoder, ...@@ -1926,7 +1926,9 @@ radeon_atom_encoder_mode_set(struct drm_encoder *encoder,
if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) { if (atombios_get_encoder_mode(encoder) == ATOM_ENCODER_MODE_HDMI) {
r600_hdmi_enable(encoder); r600_hdmi_enable(encoder);
if (ASIC_IS_DCE4(rdev)) if (ASIC_IS_DCE6(rdev))
; /* TODO (use pointers instead of if-s?) */
else if (ASIC_IS_DCE4(rdev))
evergreen_hdmi_setmode(encoder, adjusted_mode); evergreen_hdmi_setmode(encoder, adjusted_mode);
else else
r600_hdmi_setmode(encoder, adjusted_mode); r600_hdmi_setmode(encoder, adjusted_mode);
......
...@@ -156,9 +156,6 @@ void evergreen_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mode ...@@ -156,9 +156,6 @@ void evergreen_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mode
struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv;
uint32_t offset; uint32_t offset;
if (ASIC_IS_DCE5(rdev))
return;
/* Silent, r600_hdmi_enable will raise WARN for us */ /* Silent, r600_hdmi_enable will raise WARN for us */
if (!dig->afmt->enabled) if (!dig->afmt->enabled)
return; return;
......
...@@ -1303,6 +1303,10 @@ static int cayman_startup(struct radeon_device *rdev) ...@@ -1303,6 +1303,10 @@ static int cayman_startup(struct radeon_device *rdev)
if (r) if (r)
return r; return r;
r = r600_audio_init(rdev);
if (r)
return r;
return 0; return 0;
} }
...@@ -1329,6 +1333,7 @@ int cayman_resume(struct radeon_device *rdev) ...@@ -1329,6 +1333,7 @@ int cayman_resume(struct radeon_device *rdev)
int cayman_suspend(struct radeon_device *rdev) int cayman_suspend(struct radeon_device *rdev)
{ {
r600_audio_fini(rdev);
/* FIXME: we should wait for ring to be empty */ /* FIXME: we should wait for ring to be empty */
radeon_ib_pool_suspend(rdev); radeon_ib_pool_suspend(rdev);
radeon_vm_manager_suspend(rdev); radeon_vm_manager_suspend(rdev);
......
...@@ -57,7 +57,7 @@ static bool radeon_dig_encoder(struct drm_encoder *encoder) ...@@ -57,7 +57,7 @@ static bool radeon_dig_encoder(struct drm_encoder *encoder)
*/ */
static int r600_audio_chipset_supported(struct radeon_device *rdev) static int r600_audio_chipset_supported(struct radeon_device *rdev)
{ {
return (rdev->family >= CHIP_R600 && !ASIC_IS_DCE5(rdev)) return (rdev->family >= CHIP_R600 && !ASIC_IS_DCE6(rdev))
|| rdev->family == CHIP_RS600 || rdev->family == CHIP_RS600
|| rdev->family == CHIP_RS690 || rdev->family == CHIP_RS690
|| rdev->family == CHIP_RS740; || rdev->family == CHIP_RS740;
......
...@@ -322,9 +322,6 @@ void r600_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mode *mod ...@@ -322,9 +322,6 @@ void r600_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mode *mod
struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv;
uint32_t offset; uint32_t offset;
if (ASIC_IS_DCE5(rdev))
return;
/* Silent, r600_hdmi_enable will raise WARN for us */ /* Silent, r600_hdmi_enable will raise WARN for us */
if (!dig->afmt->enabled) if (!dig->afmt->enabled)
return; return;
...@@ -483,7 +480,7 @@ void r600_hdmi_enable(struct drm_encoder *encoder) ...@@ -483,7 +480,7 @@ void r600_hdmi_enable(struct drm_encoder *encoder)
uint32_t offset; uint32_t offset;
u32 hdmi; u32 hdmi;
if (ASIC_IS_DCE5(rdev)) if (ASIC_IS_DCE6(rdev))
return; return;
/* Silent, r600_hdmi_enable will raise WARN for us */ /* Silent, r600_hdmi_enable will raise WARN for us */
...@@ -543,7 +540,7 @@ void r600_hdmi_disable(struct drm_encoder *encoder) ...@@ -543,7 +540,7 @@ void r600_hdmi_disable(struct drm_encoder *encoder)
struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv;
uint32_t offset; uint32_t offset;
if (ASIC_IS_DCE5(rdev)) if (ASIC_IS_DCE6(rdev))
return; return;
/* Called for ATOM_ENCODER_MODE_HDMI only */ /* Called for ATOM_ENCODER_MODE_HDMI only */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment