From: Slava Grigorev <slava.grigo...@amd.com>

Signed-off-by: Slava Grigorev <slava.grigorev at amd.com>
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
---
 drivers/gpu/drm/radeon/cik.c          |  2 +-
 drivers/gpu/drm/radeon/dce6_afmt.c    | 13 -------------
 drivers/gpu/drm/radeon/evergreen.c    |  4 ++--
 drivers/gpu/drm/radeon/ni.c           |  5 +----
 drivers/gpu/drm/radeon/r600.c         |  4 ++--
 drivers/gpu/drm/radeon/r600_hdmi.c    | 13 -------------
 drivers/gpu/drm/radeon/radeon_audio.c | 13 +++++++++++++
 drivers/gpu/drm/radeon/radeon_audio.h |  1 +
 drivers/gpu/drm/radeon/rs600.c        |  4 ++--
 drivers/gpu/drm/radeon/rs690.c        |  4 ++--
 drivers/gpu/drm/radeon/rv770.c        |  2 +-
 drivers/gpu/drm/radeon/si.c           |  2 +-
 12 files changed, 26 insertions(+), 41 deletions(-)

diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
index 16b6fa8..6881686 100644
--- a/drivers/gpu/drm/radeon/cik.c
+++ b/drivers/gpu/drm/radeon/cik.c
@@ -8541,7 +8541,7 @@ int cik_suspend(struct radeon_device *rdev)
 {
        radeon_kfd_suspend(rdev);
        radeon_pm_suspend(rdev);
-       dce6_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        radeon_vm_manager_fini(rdev);
        cik_cp_enable(rdev, false);
        cik_sdma_enable(rdev, false);
diff --git a/drivers/gpu/drm/radeon/dce6_afmt.c 
b/drivers/gpu/drm/radeon/dce6_afmt.c
index 7fd7f15..c4ff60f 100644
--- a/drivers/gpu/drm/radeon/dce6_afmt.c
+++ b/drivers/gpu/drm/radeon/dce6_afmt.c
@@ -248,16 +248,3 @@ void dce6_audio_enable(struct radeon_device *rdev,
        WREG32_ENDPOINT(pin->offset, AZ_F0_CODEC_PIN_CONTROL_HOT_PLUG_CONTROL,
                        enable_mask ? AUDIO_ENABLED : 0);
 }
-
-void dce6_audio_fini(struct radeon_device *rdev)
-{
-       int i;
-
-       if (!rdev->audio.enabled)
-               return;
-
-       for (i = 0; i < rdev->audio.num_pins; i++)
-               radeon_audio_enable(rdev, &rdev->audio.pin[i], false);
-
-       rdev->audio.enabled = false;
-}
diff --git a/drivers/gpu/drm/radeon/evergreen.c 
b/drivers/gpu/drm/radeon/evergreen.c
index 406ea8e..78600f5 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -5333,7 +5333,7 @@ int evergreen_resume(struct radeon_device *rdev)
 int evergreen_suspend(struct radeon_device *rdev)
 {
        radeon_pm_suspend(rdev);
-       r600_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        uvd_v1_0_fini(rdev);
        radeon_uvd_suspend(rdev);
        r700_cp_stop(rdev);
@@ -5483,7 +5483,7 @@ int evergreen_init(struct radeon_device *rdev)
 void evergreen_fini(struct radeon_device *rdev)
 {
        radeon_pm_fini(rdev);
-       r600_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        r700_cp_fini(rdev);
        r600_dma_fini(rdev);
        r600_irq_fini(rdev);
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index 5203e0c..0f0ba52 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -2135,10 +2135,7 @@ int cayman_resume(struct radeon_device *rdev)
 int cayman_suspend(struct radeon_device *rdev)
 {
        radeon_pm_suspend(rdev);
-       if (ASIC_IS_DCE6(rdev))
-               dce6_audio_fini(rdev);
-       else
-               r600_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        radeon_vm_manager_fini(rdev);
        cayman_cp_enable(rdev, false);
        cayman_dma_stop(rdev);
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index de7878a..07a71a2 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -3106,7 +3106,7 @@ int r600_resume(struct radeon_device *rdev)
 int r600_suspend(struct radeon_device *rdev)
 {
        radeon_pm_suspend(rdev);
-       r600_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        r600_cp_stop(rdev);
        if (rdev->has_uvd) {
                uvd_v1_0_fini(rdev);
@@ -3225,7 +3225,7 @@ int r600_init(struct radeon_device *rdev)
 void r600_fini(struct radeon_device *rdev)
 {
        radeon_pm_fini(rdev);
-       r600_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        r600_cp_fini(rdev);
        r600_irq_fini(rdev);
        if (rdev->has_uvd) {
diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c 
b/drivers/gpu/drm/radeon/r600_hdmi.c
index f92eb77..1c49f4d 100644
--- a/drivers/gpu/drm/radeon/r600_hdmi.c
+++ b/drivers/gpu/drm/radeon/r600_hdmi.c
@@ -183,19 +183,6 @@ void r600_audio_enable(struct radeon_device *rdev,
        WREG32(AZ_HOT_PLUG_CONTROL, tmp);
 }

-/*
- * release the audio timer
- * TODO: How to do this correctly on SMP systems?
- */
-void r600_audio_fini(struct radeon_device *rdev)
-{
-       if (!rdev->audio.enabled)
-               return;
-
-       radeon_audio_enable(rdev, &rdev->audio.pin[0], 0);
-       rdev->audio.enabled = false;
-}
-
 struct r600_audio_pin *r600_audio_get_pin(struct radeon_device *rdev)
 {
        /* only one pin on 6xx-NI */
diff --git a/drivers/gpu/drm/radeon/radeon_audio.c 
b/drivers/gpu/drm/radeon/radeon_audio.c
index eed5c74..e6c73f8 100644
--- a/drivers/gpu/drm/radeon/radeon_audio.c
+++ b/drivers/gpu/drm/radeon/radeon_audio.c
@@ -380,3 +380,16 @@ void radeon_audio_enable(struct radeon_device *rdev,
        if (rdev->audio.funcs->enable)
                rdev->audio.funcs->enable(rdev, pin, enable_mask);
 }
+
+void radeon_audio_fini(struct radeon_device *rdev)
+{
+       int i;
+
+       if (!rdev->audio.enabled)
+               return;
+
+       for (i = 0; i < rdev->audio.num_pins; i++)
+               radeon_audio_enable(rdev, &rdev->audio.pin[i], false);
+
+       rdev->audio.enabled = false;
+}
diff --git a/drivers/gpu/drm/radeon/radeon_audio.h 
b/drivers/gpu/drm/radeon/radeon_audio.h
index 2bd845d..5844993 100644
--- a/drivers/gpu/drm/radeon/radeon_audio.h
+++ b/drivers/gpu/drm/radeon/radeon_audio.h
@@ -68,5 +68,6 @@ struct r600_audio_pin *radeon_audio_get_pin(struct 
drm_encoder *encoder);
 void radeon_audio_select_pin(struct drm_encoder *encoder);
 void radeon_audio_enable(struct radeon_device *rdev,
        struct r600_audio_pin *pin, u8 enable_mask);
+void radeon_audio_fini(struct radeon_device *rdev);

 #endif
diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c
index c26f960..68f154a 100644
--- a/drivers/gpu/drm/radeon/rs600.c
+++ b/drivers/gpu/drm/radeon/rs600.c
@@ -1054,7 +1054,7 @@ int rs600_resume(struct radeon_device *rdev)
 int rs600_suspend(struct radeon_device *rdev)
 {
        radeon_pm_suspend(rdev);
-       r600_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        r100_cp_disable(rdev);
        radeon_wb_disable(rdev);
        rs600_irq_disable(rdev);
@@ -1065,7 +1065,7 @@ int rs600_suspend(struct radeon_device *rdev)
 void rs600_fini(struct radeon_device *rdev)
 {
        radeon_pm_fini(rdev);
-       r600_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        r100_cp_fini(rdev);
        radeon_wb_fini(rdev);
        radeon_ib_pool_fini(rdev);
diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c
index 0fc5592..516ca27 100644
--- a/drivers/gpu/drm/radeon/rs690.c
+++ b/drivers/gpu/drm/radeon/rs690.c
@@ -771,7 +771,7 @@ int rs690_resume(struct radeon_device *rdev)
 int rs690_suspend(struct radeon_device *rdev)
 {
        radeon_pm_suspend(rdev);
-       r600_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        r100_cp_disable(rdev);
        radeon_wb_disable(rdev);
        rs600_irq_disable(rdev);
@@ -782,7 +782,7 @@ int rs690_suspend(struct radeon_device *rdev)
 void rs690_fini(struct radeon_device *rdev)
 {
        radeon_pm_fini(rdev);
-       r600_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        r100_cp_fini(rdev);
        radeon_wb_fini(rdev);
        radeon_ib_pool_fini(rdev);
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
index 9bdeb4e..01ee96a 100644
--- a/drivers/gpu/drm/radeon/rv770.c
+++ b/drivers/gpu/drm/radeon/rv770.c
@@ -1830,7 +1830,7 @@ int rv770_resume(struct radeon_device *rdev)
 int rv770_suspend(struct radeon_device *rdev)
 {
        radeon_pm_suspend(rdev);
-       r600_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        uvd_v1_0_fini(rdev);
        radeon_uvd_suspend(rdev);
        r700_cp_stop(rdev);
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
index acc7a25..7e65311 100644
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
@@ -6899,7 +6899,7 @@ int si_resume(struct radeon_device *rdev)
 int si_suspend(struct radeon_device *rdev)
 {
        radeon_pm_suspend(rdev);
-       dce6_audio_fini(rdev);
+       radeon_audio_fini(rdev);
        radeon_vm_manager_fini(rdev);
        si_cp_enable(rdev, false);
        cayman_dma_stop(rdev);
-- 
1.8.3.1

Reply via email to