Bug 22140 - RS482: Freeze when coming back from suspend to RAM
Summary: RS482: Freeze when coming back from suspend to RAM
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Radeon (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium major
Assignee: xf86-video-ati maintainers
QA Contact: Xorg Project Team
URL: http://cgit.freedesktop.org/xorg/driv...
Whiteboard:
Keywords:
: 19581 22134 23666 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-06-07 09:42 UTC by Jure Repinc
Modified: 2009-12-16 20:31 UTC (History)
6 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Xorg.0.log (43.44 KB, text/x-log)
2009-06-07 09:43 UTC, Jure Repinc
no flags Details
xorg.conf (5.29 KB, text/plain)
2009-06-07 09:44 UTC, Jure Repinc
no flags Details
Xorg.log of a modeswitch with the broken code (58.34 KB, text/plain)
2009-12-03 04:20 UTC, Matthijs Kooijman
no flags Details
Xorg.log of a modeswitch with the working code (60.39 KB, text/plain)
2009-12-03 04:20 UTC, Matthijs Kooijman
no flags Details
only mask/set what we need (1.23 KB, patch)
2009-12-03 09:27 UTC, Alex Deucher
no flags Details | Splinter Review
possible fix (1.48 KB, patch)
2009-12-15 08:25 UTC, Alex Deucher
no flags Details | Splinter Review

Description Jure Repinc 2009-06-07 09:42:18 UTC
I have an HP Compaq nx6325 laptop with integrated ATI Technologies Inc RS482 [Radeon Xpress 200M]. Recently I've updated the driver from Git and started to notice that the laptop would freeze every time when waking up from suspend to RAM. It would also hang after some switches from console to X (I've been quickly pressing Ctrl+Alt+F1 and Ctrl+Alt+F7). When this happens the laptop would switch to X and the screen would remain black and the laptop was frozen. 

So I've started to bisect the Git commits and it looks like that the commit whith which this bug appears is:
radeon: fix several dpms issues
http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=7d9f643ae3d07e51e644a5979ca90bc2c102bc89
After going back one commit al is working fine again.
Comment 1 Jure Repinc 2009-06-07 09:43:10 UTC
Created attachment 26511 [details]
Xorg.0.log
Comment 2 Jure Repinc 2009-06-07 09:44:46 UTC
Created attachment 26512 [details]
xorg.conf
Comment 3 koolfy 2009-06-07 12:43:35 UTC
Same chipset, same problem, same behaviour. (read this as "I confirm and I can always reproduce")
Comment 4 Alex Deucher 2009-06-08 10:15:38 UTC
*** Bug 22134 has been marked as a duplicate of this bug. ***
Comment 5 Ken Bloom 2009-07-27 17:51:59 UTC
This is Debian bug #529830. (http://bugs.debian.org/529830) There they've bisected it to commit 421085949e195596000e37ea6693489db7c075b5 which is exactly the same commit as the one you've bisected it to here.
Comment 6 Alex Deucher 2009-07-28 07:28:05 UTC
What kernel or drm modules are you using?
Comment 7 Ken Bloom 2009-07-28 08:10:47 UTC
[bloom@little-cat-a ~]$ uname -a
Linux little-cat-a 2.6.30-1-amd64 #1 SMP Sat Jul 18 12:55:06 UTC 2009 x86_64 GNU/Linux
[bloom@little-cat-a ~]$ lsmod
Module                  Size  Used by
snd_atiixp             17220  0 
radeon                141952  2 
drm                   172512  3 radeon
rfkill_input            6688  0 
ppdev                   7800  0 
parport_pc             27080  0 
lp                     10612  0 
parport                38224  3 ppdev,parport_pc,lp
dm_snapshot            22684  0 
dm_mirror              14536  0 
dm_region_hash         12704  1 dm_mirror
dm_log                  9924  2 dm_mirror,dm_region_hash
dm_mod                 59224  3 dm_snapshot,dm_mirror,dm_log
fuse                   54576  1 
powernow_k8            14052  0 
ide_generic             2452  0 [permanent]
snd_atiixp_modem       13004  0 
snd_ac97_codec        113960  2 snd_atiixp,snd_atiixp_modem
ac97_bus                2080  1 snd_ac97_codec
snd_pcm_oss            37200  0 
snd_mixer_oss          15072  1 snd_pcm_oss
snd_pcm                78504  4 snd_atiixp,snd_atiixp_modem,snd_ac97_codec,snd_pcm_oss
snd_seq_midi            6976  0 
snd_rawmidi            23008  1 snd_seq_midi
snd_seq_midi_event      7696  1 snd_seq_midi
arc4                    2048  2 
ecb                     3072  2 
snd_seq                51264  2 snd_seq_midi,snd_seq_midi_event
snd_timer              21824  2 snd_pcm,snd_seq
snd_seq_device          7476  3 snd_seq_midi,snd_rawmidi,snd_seq
joydev                 10992  0 
snd                    63880  10 snd_atiixp,snd_atiixp_modem,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore               7984  1 snd
k8temp                  5152  0 
yenta_socket           24940  1 
serio_raw               5844  0 
tifm_7xx1               6176  0 
b43                   122136  0 
shpchp                 32588  0 
rfkill                 12084  3 rfkill_input,b43
rng_core                4872  1 b43
snd_page_alloc          9936  3 snd_atiixp,snd_atiixp_modem,snd_pcm
mac80211              160320  1 b43
cfg80211               65096  2 b43,mac80211
rsrc_nonstatic         10224  1 yenta_socket
input_polldev           4544  1 b43
pci_hotplug            29040  1 shpchp
tifm_core               9096  1 tifm_7xx1
i2c_piix4              11040  0 
i2c_core               25408  2 drm,i2c_piix4
pcspkr                  2800  0 
wmi                     7488  0 
processor              40096  2 powernow_k8
battery                 7840  0 
psmouse                42140  0 
evdev                  10448  16 
button                  6512  0 
ac                      3872  0 
ext3                  122544  1 
jbd                    47976  1 ext3
mbcache                 8804  1 ext3
ide_cd_mod             29016  0 
cdrom                  34360  1 ide_cd_mod
ide_gd_mod             23384  3 
ide_pci_generic         4964  0 
ata_generic             5924  0 
libata                175260  1 ata_generic
scsi_mod              158560  1 libata
sdhci_pci               8112  0 
sdhci                  17540  1 sdhci_pci
ssb                    43664  1 b43
atiixp                  4292  2 
ohci_hcd               22700  0 
firewire_ohci          22324  0 
mmc_core               55136  1 sdhci
led_class               5048  2 b43,sdhci
pcmcia                 27640  2 b43,ssb
pcmcia_core            37092  5 yenta_socket,b43,rsrc_nonstatic,ssb,pcmcia
firewire_core          44836  1 firewire_ohci
crc_itu_t               2720  1 firewire_core
8139cp                 20848  0 
8139too                25716  0 
mii                     5600  2 8139cp,8139too
ehci_hcd               33564  0 
ide_core              104864  5 ide_generic,ide_cd_mod,ide_gd_mod,ide_pci_generic,atiixp
video                  21884  0 
output                  3472  1 video
thermal                15952  0 
fan                     5240  0 
thermal_sys            16480  4 processor,video,thermal,fan
[bloom@little-cat-a ~]$ lspci
00:00.0 Host bridge: ATI Technologies Inc RS480 Host Bridge (rev 01)
00:01.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge
00:13.0 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.1 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.2 USB Controller: ATI Technologies Inc IXP SB400 USB2 Host Controller
00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 11)
00:14.1 IDE interface: ATI Technologies Inc IXP SB400 IDE Controller
00:14.3 ISA bridge: ATI Technologies Inc IXP SB400 PCI-ISA Bridge
00:14.4 PCI bridge: ATI Technologies Inc IXP SB400 PCI-PCI Bridge
00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 02)
00:14.6 Modem: ATI Technologies Inc SB400 AC'97 Modem Controller (rev 02)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc Radeon XPRESS 200M 5955 (PCIE)
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
05:02.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
05:09.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
05:09.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller
05:09.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
05:09.4 SD Host controller: Texas Instruments PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller
Comment 8 Laszlo Vitos 2009-07-30 13:39:33 UTC
Same graphic chipset on Asus X51RL. I did not do a bisect, but for me version 6.9.0 of xf86-video-ati still works, while 6.10.0 doesn't.
Comment 9 Ken Bloom 2009-07-30 19:32:11 UTC
Laszlo Vitos, if you're seeing this between 6.9 and 6.10, then you have some other bug with the same symptoms. This bug showed up between 6.12.1 and 6.12.2.
Comment 10 Jure Repinc 2009-07-31 19:59:29 UTC
# uname -a
Linux phoenix 2.6.31-desktop-0.rc4.1mnb #1 SMP Tue Jul 28 11:39:16 EDT 2009 x86_64 AMD Turion(tm) 64 X2 Mobile Technology TL-56 GNU/Linux

# lsmod
Module                  Size  Used by
fuse                   73920  2      
af_packet              25184  2      
ipv6                  349040  16     
arc4                    2336  2      
ecb                     3680  2      
snd_hda_intel          31528  0      
radeon                375904  2      
b43                   176560  0      
snd_hda_codec          94944  1 snd_hda_intel
rng_core                5640  1 b43          
mac80211              210352  1 b43          
snd_hwdep              10088  1 snd_hda_codec
drm                   205728  3 radeon       
snd_seq_dummy           3524  0              
snd_seq_oss            38240  0              
snd_seq_midi_event      9376  1 snd_seq_oss  
snd_seq                67872  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
cfg80211              110520  2 b43,mac80211                                
snd_seq_device          9108  3 snd_seq_dummy,snd_seq_oss,snd_seq           
rfkill                 24680  1 cfg80211                                    
snd_pcm_oss            53248  0                                             
snd_pcm               104392  3 snd_hda_intel,snd_hda_codec,snd_pcm_oss     
snd_timer              27600  2 snd_seq,snd_pcm                             
snd_mixer_oss          20064  1 snd_pcm_oss                                 
snd                    82984  10 snd_hda_intel,snd_hda_codec,snd_hwdep,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_pcm,snd_timer,snd_mixer_oss                                                   
ssb                    55152  1 b43                                                                 
tg3                   124996  0                                                                     
libphy                 30496  1 tg3                                                                 
i2c_piix4              15088  0                                                                     
i2c_core               35296  2 drm,i2c_piix4                                                       
sr_mod                 19300  0                                                                     
soundcore               9408  1 snd                                                                 
snd_page_alloc         11376  2 snd_hda_intel,snd_pcm                                               
sdhci_pci               9920  0                                                                     
sdhci                  24068  1 sdhci_pci                                                           
led_class               5704  2 b43,sdhci                                                           
pcspkr                  3392  0                                                                     
serio_raw               7076  0                                                                     
shpchp                 39708  0                                                                     
sg                     36544  0                                                                     
pci_hotplug            35152  1 shpchp                                                              
binfmt_misc            10348  1                                                                     
reiserfs              269392  2                                                                     
pcmcia                 42516  2 b43,ssb                                                             
yenta_socket           42316  1                                                                     
rsrc_nonstatic         12544  1 yenta_socket                                                        
pcmcia_core            43844  5 b43,ssb,pcmcia,yenta_socket,rsrc_nonstatic                          
cpufreq_ondemand        8848  1                                                                     
cpufreq_conservative     9200  0                                                                    
cpufreq_powersave       1952  0                                                                     
powernow_k8            15588  1                                                                     
freq_table              5600  2 cpufreq_ondemand,powernow_k8                                        
tifm_sd                14920  0                                                                     
mmc_block              13288  0                                                                     
mmc_core               71968  3 sdhci,tifm_sd,mmc_block                                             
tifm_7xx1               8768  0                                                                     
tifm_core              10696  2 tifm_sd,tifm_7xx1                                                   
nvram                   9484  0                                                                     
tpm_infineon           10204  0                                                                     
tpm                    19904  1 tpm_infineon                                                        
k8temp                  5760  0                                                                     
amd64_edac_mod         24320  0                                                                     
edac_core              53484  1 amd64_edac_mod                                                      
fan                     5768  0                                                                     
video                  24604  0                                                                     
joydev                 13248  0                                                                     
tpm_bios                7936  1 tpm
container               4480  0
rtc_cmos               15192  0
output                  4000  1 video
wmi                     8640  0
ac                      5576  0
battery                13832  0
processor              43292  1 powernow_k8
thermal                17664  0
ohci_hcd               37244  0
button                  7232  0
evdev                  13088  12
ehci_hcd               56080  0
usbcore               228564  3 ohci_hcd,ehci_hcd
sbp2                   27276  0
ohci1394               34836  0
ieee1394              107264  2 sbp2,ohci1394
pata_atiixp             6304  0
ata_generic             6276  0
ide_pci_generic         5252  0
ide_gd_mod             31304  0
ide_core              131456  2 ide_pci_generic,ide_gd_mod
pata_acpi               5728  0
sata_sil               12104  4
libata                210924  4 pata_atiixp,ata_generic,pata_acpi,sata_sil
sd_mod                 41864  5
scsi_mod              193240  5 sr_mod,sg,sbp2,libata,sd_mod
crc_t10dif              2240  1 sd_mod
ext4                  339432  1
jbd2                   90272  1 ext4
crc16                   2432  1 ext4
Comment 11 Ken Bloom 2009-09-10 09:45:31 UTC
This bug has gotten worse in verison 6.12.3. When I start the X
server, the whole machine freezes, and I never even see the GDM 
greeter.

Reverting 421085949e195596000e37ea6693489db7c075b5 still fixes this
bug.
Comment 12 Matthijs Kooijman 2009-12-02 11:54:49 UTC
While trying to debug Bug 23666 (which seems to be a duplicate of this bug), I've also bisected to the same commit. I've found a very reliable way of reproducing this bug: If I unplug or plug my AC adapter and then (within a few seconds) switch from text to X, the machine freezes.

Also, it seems that the first radeon driver version you load determines the behaviour. That is, during bisecting I've had a few occasions where I booted using a bad version, installed a good version, restarted X and then it would still freeze (and also the other way around). Perhaps that helps?
Comment 13 Matthijs Kooijman 2009-12-02 11:56:07 UTC
*** Bug 23666 has been marked as a duplicate of this bug. ***
Comment 14 Matthijs Kooijman 2009-12-03 04:17:01 UTC
Since the bisected commit is still a bit of a big one, I've narrowed it down a bit more. While trying to understand the code, I think I found a bug in the commit (but unfortunately, fixing it didn't solve the problem of this report). I've created a fix for this small bug, which I put up here:

  http://git.stderr.nl/gitweb?p=matthijs/upstream/xf86-video-ati.git;a=commit;h=9222a02cf7

Anyway, back to the real bug. I've further narrowed the problem down to the change "- disable the crtcs in legacy crtc dpms". This branch shows my findings:

  http://git.stderr.nl/gitweb?p=matthijs/upstream/xf86-video-ati.git;a=shortlog;h=refs/heads/200m-debug

Two commits are significant here:
Working: http://git.stderr.nl/gitweb?p=matthijs/upstream/xf86-video-ati.git;a=commit;h=e59c01d
Broken: http://git.stderr.nl/gitweb?p=matthijs/upstream/xf86-video-ati.git;a=commit;h=3c4b0090

The first has most of the faulty commit applied, the second has the final part of the faulty commit applied as well. I've also included a some debug output in the working commit that shows the Legacy DPMS mode switches and register contents before the mode switch.

I'm attaching two Xorg logfiles, one made with the working version (which shows startup and a switch to text mode and back to X) and one with the broken version (which shows startup and a switch to text mode, nothing is logged after that due to the freeze).
Comment 15 Matthijs Kooijman 2009-12-03 04:20:17 UTC
Created attachment 31702 [details]
Xorg.log of a modeswitch with the broken code
Comment 16 Matthijs Kooijman 2009-12-03 04:20:42 UTC
Created attachment 31703 [details]
Xorg.log of a modeswitch with the working code
Comment 17 Alex Deucher 2009-12-03 09:25:10 UTC
I've gone ahead and committed the crtc2 dpms fix:
f082b1693d6f7f763ccf5a8436a89890ca2c6129
Comment 18 Alex Deucher 2009-12-03 09:27:06 UTC
Created attachment 31711 [details] [review]
only mask/set what we need

Does this patch help (on top of git master or 6.12-branch)?
Comment 19 Alex Deucher 2009-12-03 09:28:50 UTC
Comment on attachment 31711 [details] [review]
only mask/set what we need

nevermind.
Comment 20 Ken Bloom 2009-12-10 12:37:22 UTC
Commit 3d59746808bc5f335104d27a8dce0fe94ab3cb78 works for me.
Comment 21 Alex Deucher 2009-12-15 08:24:12 UTC
*** Bug 19581 has been marked as a duplicate of this bug. ***
Comment 22 Alex Deucher 2009-12-15 08:25:20 UTC
Created attachment 32086 [details] [review]
possible fix

Does this patch fix things?
Comment 23 Ken Bloom 2009-12-15 08:51:02 UTC
I was confused, and 3d59746808bc5f335104d27a8dce0fe94ab3cb78 didn't actually fix things for me. I'm going to test with your patch, and so as not to confuse things and not embarrass myself, I'm going to keep quiet for a couple days before concluding that it works.
Comment 24 Alex Deucher 2009-12-15 10:33:26 UTC
No need to patch.  I've pushed the patch to master and 6.12-branch.
Comment 25 Matthijs Kooijman 2009-12-15 10:46:54 UTC
Too late, I had just patched my 6.12-branch :-)

Anyway, I just rebooted to test and the problem seems gone for me. I used to be able to reproduce this problem everytime I did a VT switch while plugging my power in or out, but no freezes happened when I did so now. I'll report back if it freezes on me again, but it seems this fix works for me.
Comment 26 Ken Bloom 2009-12-16 19:00:46 UTC
I've been testing this for a couple days now, and haven't had any freezes, and X behaves properly. I've noticed that when I try to switch to a VT, the VT doesn't show up properly (I get a blank black screen), but when I switch back to X, X shows up properly.

I'm using Xorg 1.6.5, Debian kernel 2.6.31-1-amd64 with a non-framebuffer console (/proc/fb is an empty file).


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.