Bug 63391

Summary: Radeon RS880 doesn't resume from suspend with radeon dpm enabled
Product: Drivers Reporter: Tasev Nikola (tasev.stefanoska)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: RESOLVED INSUFFICIENT_DATA    
Severity: normal CC: alexdeucher, Dieter
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.12-rc5 Subsystem:
Regression: No Bisected commit-id:
Attachments: Dmesg 3.12-rc5 with dpm enabled
Xorg.0.log 3.12-rc5 dpm enabled
Dmesg 3.11.6 dpm enabled and working ok
Xorg.0.log 3.11.6 dpm enabled and working ok

Description Tasev Nikola 2013-10-21 07:42:52 UTC
Created attachment 111831 [details]
Dmesg 3.12-rc5 with dpm enabled

Hi,

I found last week that my system with radeon RS880 doesn't resume from suspend with radeon dpm enabled with kernel 3.12-rc5. Then i tested with kernel 3.12-rc2
to 3.12-rc4 this weekend with the same result. If i remove radeon.dpm=1 from the command line in grub then everything works fine (like always on this system).
It works also fine with kernel 3.11 with dpm enabled. I found no errors in dmesg
an Xorg.0.log, both are attached. The kernels are from the ubuntu kernel mainline ppa and i also try with a self compiled vanilla kernel.

Tasev Nikola
Comment 1 Tasev Nikola 2013-10-21 07:45:04 UTC
Created attachment 111841 [details]
Xorg.0.log 3.12-rc5 dpm enabled
Comment 2 Dieter Nützel 2013-10-21 19:09:56 UTC
(In reply to Tasev Nikola from comment #0)
> Created attachment 111831 [details]
> Dmesg 3.12-rc5 with dpm enabled
> 
> Hi,
> 
> I found last week that my system with radeon RS880 doesn't resume from
> suspend with radeon dpm enabled with kernel 3.12-rc5. Then i tested with
> kernel 3.12-rc2
> to 3.12-rc4 this weekend with the same result. If i remove radeon.dpm=1 from
> the command line in grub then everything works fine (like always on this
> system).
> It works also fine with kernel 3.11 with dpm enabled.

Please append your working 3.11 dmesg and Xorg.0.log.
Maybe comparison could help.

-Dieter
Comment 3 Alex Deucher 2013-10-22 05:00:05 UTC
(In reply to Tasev Nikola from comment #0)
> It works also fine with kernel 3.11 with dpm enabled.

Can you bisect?
Comment 4 Tasev Nikola 2013-10-22 10:40:28 UTC
Created attachment 111911 [details]
Dmesg 3.11.6 dpm enabled and working ok

Dmesg 3.11.6 dpm enabled and working ok
Comment 5 Tasev Nikola 2013-10-22 10:42:20 UTC
Created attachment 111921 [details]
Xorg.0.log 3.11.6 dpm enabled and working ok

Xorg.0.log 3.11.6 dpm enabled and working ok
Comment 6 Tasev Nikola 2013-10-22 10:56:59 UTC
(In reply to Alex Deucher from comment #3)
> (In reply to Tasev Nikola from comment #0)
> > It works also fine with kernel 3.11 with dpm enabled.
> 
> Can you bisect?

Hi,

I remember now that i was using 3-4 days 3.12-rc1 before i have reported 
this bug https://bugs.freedesktop.org/show_bug.cgi?id=70035 (gpu loockup)
and the kernel was working fine. 
I just reinstalled 3.12-rc1 now and i will
report later (maybe tomorow) if it works with dpm. 

I also tested 3.12-rc6 this morning but with no success.

I'm reading about bisect the kernel now. 
Is this a good tutorial for starting ? : http://www.project-insanity.org/blog/2013/02/13/how-i-found-a-kernel-regression-using-git-bisect/
Comment 7 Tasev Nikola 2013-10-22 17:29:29 UTC
Hi,

The 3.12-rc1 kernel is running fine with dpm enabled for more than 7 hours now 
with 10-15 suspend resume cycles.
Comment 8 Tasev Nikola 2013-10-24 06:47:22 UTC
Hi,

I start the bisect yesterday between 3.12-rc1 and 3.12-rc2.
I will report when i'm finish.
Comment 9 Tasev Nikola 2013-10-27 18:53:49 UTC
Hi 

I finish the bisect today, here is the result.

1cd8b21aa22c4fe8835abe614da5fa989c66dca9 is the first bad commit
commit 1cd8b21aa22c4fe8835abe614da5fa989c66dca9
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Fri Sep 13 14:07:03 2013 -0400

    drm/radeon/dpm: rework auto performance level enable
    
    Calling force_performance_level() from set_power_state()
    doesn't work on some asics because the current power
    state pointer has not been properly updated at that point.
    Move the calls to force_performance_level() out of the
    asic specific set_power_state() functions and into
    the main power state sequence.
    
    Fixes dpm resume on SI.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>



I don't understand much about but looking the commit i didn't see
something related to RS880 . 

Here is the git bisect log just in case it possibly help : 

git bisect start                                                                                                                               
# bad: [4a10c2ac2f368583138b774ca41fac4207911983] Linux 3.12-rc2                                                                               
git bisect bad 4a10c2ac2f368583138b774ca41fac4207911983                                                                                        
# good: [272b98c6455f00884f0350f775c5342358ebb73f] Linux 3.12-rc1                                                                              
git bisect good 272b98c6455f00884f0350f775c5342358ebb73f
# bad: [b75ff5e84bb6c2d43a8ec39b240c80f0543821f0] Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
git bisect bad b75ff5e84bb6c2d43a8ec39b240c80f0543821f0
# bad: [e9ff04dd94d46c817bbb103531cdef6e7bd5d022] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
git bisect bad e9ff04dd94d46c817bbb103531cdef6e7bd5d022
# good: [3fe03debfc58aba8f5ddb32abd7343237d07714c] Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
git bisect good 3fe03debfc58aba8f5ddb32abd7343237d07714c
# good: [42e169be3e4be6b6a85344ab219c7d57e158ad46] Merge branch 'drm-fixes-3.12' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
git bisect good 42e169be3e4be6b6a85344ab219c7d57e158ad46
# bad: [4f7d1bc973ec71dfeeb951765cafe1ff3a63243e] Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes
git bisect bad 4f7d1bc973ec71dfeeb951765cafe1ff3a63243e
# bad: [1cd8b21aa22c4fe8835abe614da5fa989c66dca9] drm/radeon/dpm: rework auto performance level enable
git bisect bad 1cd8b21aa22c4fe8835abe614da5fa989c66dca9
# good: [ce7b30e02578dda6b2263b05308c640f3b57d32c] drm/radeon/dpm/rs780: add some sanity checking to sclk scaling
git bisect good ce7b30e02578dda6b2263b05308c640f3b57d32c
# good: [c2ee29d00266a9a80fb312042b14a56f8baf978d] drm/radeon/dpm/rs780: fix force_performance state for same sclks
git bisect good c2ee29d00266a9a80fb312042b14a56f8baf978d
# good: [d592fca9407d065f0754ba29790c66ecbc0366ad] drm/radeon: Fix hmdi typo
git bisect good d592fca9407d065f0754ba29790c66ecbc0366ad
Comment 10 Tasev Nikola 2013-11-05 07:47:47 UTC
Hi,

I tested final 3.12 and the bug is still there.
I 'm closing this bug because for me is not a big issue, i just disabled
dpm and my system is stable. I hear that in next 3.13 kernel the dpm will
be enabled by default, i hope that the kernel parameter will still exist
so i can disable it. I don't no how to help moore to debug this so for now 
i'm closing this bug.