Bug 28440

Summary: Linux kernel 2.6.34's KMS crashes and disables GPU acceleration with X1250.
Product: DRI Reporter: crocket <crockabiscuit>
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED NOTABUG QA Contact:
Severity: normal    
Priority: medium    
Version: XOrg git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
2.6.34 kernel's KMS doesn't support X1250 well. none

Description crocket 2010-06-08 04:06:59 UTC
Created attachment 36138 [details]
2.6.34 kernel's KMS doesn't support X1250 well.

OS: Slackware64 13.1
Kernel : 2.6.34-smp(It's not included in slackware. I compiled myself)
I told kernel to enable KMS automatically and compiled the kernel.
While I boot 2.6.34-smp, I see a fuzzy brown rectangle in the right side of my screen for about half a second.

dmesg tells me GPU acceleration is disabled, and I can't use compiz.
I included dmesg.txt.
Comment 1 Jerome Glisse 2010-06-08 04:14:28 UTC
Try booting with radeon.dynpm=0 and attach new dmesg.
Comment 2 Jerome Glisse 2010-06-08 04:45:48 UTC
Was boot parameter closing.
Comment 3 crocket 2010-06-08 05:11:53 UTC
It was "vga=791" that crashed KMS, and after I replaced it with video=1024x768, everything went fine.
Comment 4 Marcin Slusarz 2010-06-08 09:10:50 UTC
If disabling vesafb fixes your problem, it means vesafb->radeon handoff does not work properly. I fixed similar issue in nouveau code and I can prepare a patch for radeon. Are you willing to test it?
Comment 5 crocket 2010-06-08 22:23:53 UTC
If you prepare it, sure. I am willing to test it although it takes about 15~20 minutes to recompile a kernel.

Why don't you use KMS from the beginning?
I included radeon in initrd, but radeon in initrd complains like the below.
[    4.227541] platform radeon_cp.0: firmware: requesting radeon/RS600_cp.bin
[   64.227150] [drm:r100_cp_init] *ERROR* Failed to load firmware!
[   64.227295] radeon 0000:01:05.0: Disabling GPU acceleration
You saw it right. Initrd tried for a while to load the firmware and had it display a black screen until it failed to load the firmware. I thought the kernel was in a panic.

Unless I know how to have initrd recognize or include the firmware, compiling radeon into kernel is the only solution for making KMS appear so early. However, recompiling kernel each time I compile radeon would be a waste of time, which emphasizes the importance of including radeon with the right firmware in initrd.
Comment 6 crocket 2010-06-08 22:26:15 UTC
No.... vesafb was not likely a problem.
I specified vga=791 as a global option in /etc/lilo.conf, and it caused the problem. After I replaced vga=791 with video=800x600, KMS started working again.

Whether vesafb handles the control over to KMS well should be tested since I didn't test it.
Comment 7 Marcin Slusarz 2010-06-09 08:07:20 UTC
I'm confused. You seem to respond to some questions I didn't ask... vga=791 enables vesafb, but you claim you didn't test it...
Comment 8 crocket 2010-06-09 18:08:09 UTC
Sorry for my bad language plus sleep deprivation.
The original configuration was vesafb & DRM & radeon & KMS compiled into the kernel with vga=791 in /etc/lilo.conf.
When it generated error, I removed vesafb from the kernel, recompiled the kernel, replaced vga=791 with video=800x600 in /etc/lilo.conf, and rebooted.
Thus, I only tested if vga=791 crashes KMS, but I couldn't test if vesafb handles the control over to KMS smoothly with or without video=800x600 in /etc/lilo.conf. But I guess vesafb(or uvesafb) and KMS can live together if vesafb has no problem with video=800x600.

I pasted dmesg. http://pastebin.org/322359
Beware this paste will be expired after a month from now.
Comment 9 Marcin Slusarz 2010-06-10 12:51:28 UTC
So there was no bug - just a problem with missing firmware?
If yes, please close the bug.
Comment 10 crocket 2010-06-10 16:58:21 UTC
This is not a bug although the missing firmware is another bug.
This bug is closed.

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.