Summary: | RS482: Freeze when coming back from suspend to RAM | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Jure Repinc <jlp.bugs> | ||||||||||||||
Component: | Driver/Radeon | Assignee: | xf86-video-ati maintainers <xorg-driver-ati> | ||||||||||||||
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||||||||||||
Severity: | major | ||||||||||||||||
Priority: | medium | CC: | andyrtr, bryce, kbloom, markus.heier, matthijs, the.dmol | ||||||||||||||
Version: | git | ||||||||||||||||
Hardware: | x86-64 (AMD64) | ||||||||||||||||
OS: | Linux (All) | ||||||||||||||||
URL: | http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=7d9f643ae3d07e51e644a5979ca90bc2c102bc89 | ||||||||||||||||
Whiteboard: | |||||||||||||||||
i915 platform: | i915 features: | ||||||||||||||||
Attachments: |
|
Description
Jure Repinc
2009-06-07 09:42:18 UTC
Created attachment 26511 [details]
Xorg.0.log
Created attachment 26512 [details]
xorg.conf
Same chipset, same problem, same behaviour. (read this as "I confirm and I can always reproduce") *** Bug 22134 has been marked as a duplicate of this bug. *** 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. What kernel or drm modules are you using? [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 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. 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. # 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 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. 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? *** Bug 23666 has been marked as a duplicate of this bug. *** 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). Created attachment 31702 [details]
Xorg.log of a modeswitch with the broken code
Created attachment 31703 [details]
Xorg.log of a modeswitch with the working code
I've gone ahead and committed the crtc2 dpms fix: f082b1693d6f7f763ccf5a8436a89890ca2c6129 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 on attachment 31711 [details] [review] only mask/set what we need nevermind. Commit 3d59746808bc5f335104d27a8dce0fe94ab3cb78 works for me. *** Bug 19581 has been marked as a duplicate of this bug. *** Created attachment 32086 [details] [review] possible fix Does this patch fix things? 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. No need to patch. I've pushed the patch to master and 6.12-branch. 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. 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.