Bug 114856

Summary: Cannot enable DRI with ATI Radeon on PowerPC
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Lenz Grimmer <lgrimmer>
Component: X.OrgAssignee: Stefan Dirsch <sndirsch>
Status: RESOLVED FIXED QA Contact: Stefan Dirsch <sndirsch>
Severity: Enhancement    
Priority: P5 - None    
Version: Beta 3   
Target Milestone: ---   
Hardware: PowerPC   
OS: All   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: xorg.conf
Xorg.log
agp_drm_diffs_2.6.11vs2.6.13.tar.gz

Description Lenz Grimmer 2005-09-01 20:29:07 UTC
I tried to enable 3D acceleration for the ATI Radeon 9200 video card on my
Genesi Pegasos II system by adding the following line to the xorg.conf file
generated by SaX:

  Load "dri"

However, the DRM kernel module seems to have problems to load - I see the
following in /var/log/messages:

Sep  1 22:17:39 pegasos kernel: Linux agpgart interface v0.101 (c) Dave Jones
Sep  1 22:17:39 pegasos kernel: [drm] Initialized drm 1.0.0 20040925
Sep  1 22:17:39 pegasos kernel: [drm] Initialized radeon 1.16.0 20050311 on minor 0:
Sep  1 22:17:39 pegasos kernel: [drm:radeon_cp_init] *ERROR* radeon_cp_init
called without lock held
Sep  1 22:17:39 pegasos kernel: [drm:drm_unlock] *ERROR* Process 5832 using
kernel context 0

This causes the X server to disable DRI - from /var/log/Xorg.0.log:

(II) RADEON(0): [drm] loaded kernel module for "radeon" driver
(II) RADEON(0): [drm] DRM interface version 1.2
(II) RADEON(0): [drm] created "radeon" driver at busid "pci:0000:01:08.0"
(II) RADEON(0): [drm] added 8192 byte SAREA at 0xe1030000
(II) RADEON(0): [drm] mapped SAREA 0xe1030000 to 0x3001a000
(II) RADEON(0): [drm] framebuffer handle = 0xc0000000
(II) RADEON(0): [drm] added 1 reserved context for kernel
(WW) RADEON(0): [agp] AGP not available
(EE) RADEON(0): [agp] AGP failed to initialize. Disabling the DRI.
(II) RADEON(0): [agp] You may want to make sure the agpgart kernel module
is loaded before the radeon kernel module.
(II) RADEON(0): [drm] removed 1 reserved context for kernel
(II) RADEON(0): [drm] unmapping 8192 bytes of SAREA 0xe1030000 at 0x3001a000

hwinfo output for this card:
pegasos:~ # hwinfo --gfxcard

17: PCI(AGP) 10108.0: 0300 VGA compatible controller (VGA)
  [Created at pci.277]
  UDI: /org/freedesktop/Hal/devices/pci_1002_5964
  Unique ID: F+Ss.etu5C_BKvA3
  SysFS ID: /devices/pci0001:01/0001:01:08.0
  SysFS BusID: 0001:01:08.0
  Hardware Class: graphics card
  Model: "ABIT RV280 5964"
  Vendor: pci 0x1002 "ATI Technologies Inc"
  Device: pci 0x5964 "RV280 5964"
  SubVendor: pci 0x147b "ABIT Computer Corp."
  SubDevice: pci 0x6191
  Revision: 0x01
  Driver: "radeonfb"
  Memory Range: 0xc0000000-0xc7ffffff (rw,prefetchable)
  I/O Ports: 0xf8001000-0xf80010ff (rw)
  Memory Range: 0xc8000000-0xc800ffff (rw,non-prefetchable)
  Memory Range: 0xc8020000-0xc803ffff (ro,prefetchable,disabled)
  IRQ: 9 (18871 events)
  Module Alias: "pci:v00001002d00005964sv0000147Bsd00006191bc03sc00i00"
  Driver Info #0:
    XFree86 v4 Server Module: radeon
  Config Status: cfg=new, avail=yes, need=no, active=unknown

18: PCI 10108.1: 0380 Display controller
  [Created at pci.277]
  UDI: /org/freedesktop/Hal/devices/pci_1002_5d44
  Unique ID: cDH9.JdDHyJ1NNK2
  SysFS ID: /devices/pci0001:01/0001:01:08.1
  SysFS BusID: 0001:01:08.1
  Hardware Class: graphics card
  Model: "ABIT RV280 [Radeon 9200 SE] (Secondary)"
  Vendor: pci 0x1002 "ATI Technologies Inc"
  Device: pci 0x5d44 "RV280 [Radeon 9200 SE] (Secondary)"
  SubVendor: pci 0x147b "ABIT Computer Corp."
  SubDevice: pci 0x6190
  Revision: 0x01
  Memory Range: 0xd0000000-0xd7ffffff (rw,prefetchable,disabled)
  Memory Range: 0xc8010000-0xc801ffff (rw,non-prefetchable,disabled)
  Module Alias: "pci:v00001002d00005D44sv0000147Bsd00006190bc03sc80i00"
  Config Status: cfg=new, avail=yes, need=no, active=unknown

This is SuSE 10b3, Kernel 2.6.13-3-default.
Comment 1 Lenz Grimmer 2005-09-01 20:29:30 UTC
Created attachment 48533 [details]
xorg.conf
Comment 2 Lenz Grimmer 2005-09-01 20:29:51 UTC
Created attachment 48534 [details]
Xorg.log
Comment 3 Lenz Grimmer 2005-09-01 20:31:16 UTC
Let me know, if you need additional info. Thanks!
Comment 4 Stefan Dirsch 2005-09-01 21:00:35 UTC
Correct. 3D support in general on ppc is not supported at all and usually does 
not work. Keeping open as enhancement. Maybe this gets fixed by accident in 
the future (unlikely). 
Comment 5 Lenz Grimmer 2005-09-02 06:51:55 UTC
FWIW, I can use the 3D acceleration offered by this card just fine using the
Debian 3.1 system that is installed in parallel. So I can't confirm this is
broken in general. Shall I provide more details on how they do it?
Comment 6 Stefan Dirsch 2005-09-02 07:00:40 UTC
Sure, which kernel version, which XFree86 version is this? Which Mesa version
are they still using? I assume it's still Kernel 2.4, XFree86 4.2 and Mesa 5 or
even older.
Comment 7 Lenz Grimmer 2005-09-02 08:53:12 UTC
This is on Debian 3.1/PPC, running on Kernel 2.6.11, XFree86 Version 4.3.99.12
(DRI trunk), Mesa version 5.0.0-5.1:

snippet from /var/log/messages:

[SNIP]
Aug 30 10:07:48 pegasos kernel: Linux agpgart interface v0.100 (c) Dave Jones
Aug 30 10:07:48 pegasos kernel: [drm] Initialized drm 1.0.0 20040925
Aug 30 10:07:48 pegasos kernel: [drm] Initialized radeon 1.14.0 20050125 on
minor 0: ATI Technologies Inc RV280 [Radeon 9200 SE]
Aug 30 10:07:48 pegasos kernel: [drm] Loading R200 Microcode
[SNIP]

snippet from /var/log/XFree86.0.log:

[SNIP]
XFree86 Version 4.3.99.12 (DRI trunk)
Release Date: 10 September 2003
X Protocol Version 11, Revision 0, Release 6.6
Build Operating System: Linux 2.6.3-ben1 ppc [ELF]
Current Operating System: Linux pegasos 2.6.11-powerpc #1 Fri May 13 15:47:19
CEST 2005 ppc
Build Date: 05 March 2004
[...]
(II) LoadModule: "dri"
(II) Loading /usr/X11R6/lib/modules-dri-trunk/extensions/libdri.a
(II) Module dri: vendor="The XFree86 Project"
        compiled for 4.3.99.12, module version = 1.0.0
        ABI class: XFree86 Server Extension, version 0.2
(II) Loading sub module "drm"
(II) LoadModule: "drm"
(II) Loading /usr/X11R6/lib/modules-dri-trunk/linux/libdrm.a
(II) Module drm: vendor="The XFree86 Project"
        compiled for 4.3.99.12, module version = 1.0.0
        ABI class: XFree86 Server Extension, version 0.2
(II) Loading extension XFree86-DRI
[...]
(II) RADEON(0): [drm] loaded kernel module for "radeon" driver
(II) RADEON(0): [drm] DRM interface version 1.2
(II) RADEON(0): [drm] created "radeon" driver at busid "pci:0000:01:08.0"
(II) RADEON(0): [drm] added 8192 byte SAREA at 0xe239e000
(II) RADEON(0): [drm] mapped SAREA 0xe239e000 to 0x380cc000
(II) RADEON(0): [drm] framebuffer handle = 0xc0000000
(II) RADEON(0): [drm] added 1 reserved context for kernel
(II) RADEON(0): [pci] 8192 kB allocated with handle 0xe24e6000
(II) RADEON(0): [pci] ring handle = 0xe24e6000
(II) RADEON(0): [pci] Ring mapped at 0x380ce000
(II) RADEON(0): [pci] Ring contents 0x00000000
(II) RADEON(0): [pci] ring read ptr handle = 0xe25e7000
(II) RADEON(0): [pci] Ring read ptr mapped at 0x381cf000
(II) RADEON(0): [pci] Ring read ptr contents 0x00000000
(II) RADEON(0): [pci] vertex/indirect buffers handle = 0xe25e8000
(II) RADEON(0): [pci] Vertex/indirect buffers mapped at 0x381d0000
(II) RADEON(0): [pci] Vertex/indirect buffers contents 0x00000000
(II) RADEON(0): [pci] GART texture map handle = 0xe27e8000
(II) RADEON(0): [pci] GART Texture map mapped at 0x383d0000
(II) RADEON(0): [drm] register handle = 0xc8000000
(II) RADEON(0): [dri] Visual configs initialized
(II) RADEON(0): CP in BM mode
(II) RADEON(0): Using 8 MB GART aperture
(II) RADEON(0): Using 1 MB for the ring buffer
(II) RADEON(0): Using 2 MB for vertex/indirect buffers
(II) RADEON(0): Using 5 MB for GART textures
(II) RADEON(0): Memory manager initialized to (0,0) (1280,8191)
(II) RADEON(0): Reserved area from (0,1024) to (1280,1026)
(II) RADEON(0): Largest offscreen area available: 1280 x 7165
(II) RADEON(0): Will use back buffer at offset 0x1400000
(II) RADEON(0): Will use depth buffer at offset 0x1900000
(II) RADEON(0): Will use 100352 kb for textures at offset 0x1e00000
(II) RADEON(0): Acceleration enabled
(II) RADEON(0): Using hardware cursor (scanline 1026)
(II) RADEON(0): Largest offscreen area available: 1280 x 7161
(**) RADEON(0): DPMS enabled
(II) RADEON(0): X context handle = 0x00000001
(II) RADEON(0): [drm] installed DRM signal handler
(II) RADEON(0): [DRI] installation complete
(II) RADEON(0): [drm] Added 32 65536 byte vertex/indirect buffers
(II) RADEON(0): [drm] Mapped 32 vertex/indirect buffers
(II) RADEON(0): [drm] dma control initialized, using IRQ 9
(II) RADEON(0): [drm] Initialized kernel GART heap manager, 5111808
(II) RADEON(0): Direct rendering enabled
[SNIP]

Seems like Debian is using a different code base than SUSE here? But at least it
is working nicely here - so it's not like it does not work at all...
Comment 8 Stefan Dirsch 2005-09-02 09:25:22 UTC
I assume there's sth. different in Kernel drm/agp support. What you can do is diff
the drm/agp sources of both kernels. Not much fun, I know ...
Comment 9 Lenz Grimmer 2005-09-02 10:02:53 UTC
Created attachment 48575 [details]
agp_drm_diffs_2.6.11vs2.6.13.tar.gz

Attached please find a diff of the source files in
/usr/src/linux/drivers/char/{agp,drm} from the Debian 2.6.11 kernel against the
2.6.13 kernel of SUSE 10.0b3. I can't make much sense out of it, but maybe you
notice something relevant?
Comment 10 Stefan Dirsch 2005-09-02 10:17:19 UTC
Sure, there are huge differences in agp/drm code between 2.6.11 and 2.6.13.
Comment 11 Olaf Hering 2005-09-06 19:49:21 UTC
try 	Option	"BusType"  "PCI" in the Device[0] section.
Comment 12 Stefan Dirsch 2005-12-14 11:56:21 UTC
I think this should be retried with 10.1 (Alpha). Setting to LATER.
Comment 13 Stefan Dirsch 2006-01-25 13:02:53 UTC
reopen for retesting ...
Comment 14 Stefan Dirsch 2006-01-25 13:03:15 UTC
Could you try again with 10.1 Beta? Thanks.
Comment 15 Stefan Dirsch 2006-02-20 11:30:06 UTC
Lenz, no time for testing, right?
Comment 16 Lenz Grimmer 2006-02-20 11:56:39 UTC
Hi Stefan, you are right :(

Life has been too busy recently and I did not even had a chance to beta test the x86 version of 10.1 so far.

In addition to that, my Pegasos box hosts my personal web site, so I can not take it down for beta testing easily. But did't Genesi send you a Pegasos system for testing? I would assume that it would show the same behaviour as mine.

I am sorry for the delay!
Comment 17 Stefan Dirsch 2006-02-20 12:02:44 UTC
Another Pegasos box. Yes, I think we have such machines here for testing. Ok. Maybe I'll find some time for testing later. I don't think it makes sense to wait any longer for feedback. The bugreport remains open. Enhancements don't hurt. :-)
Comment 18 Wilken Gottwalt 2006-08-14 12:02:03 UTC
Comment #11 should be the only option for the Pegasos board. The Marvel chipset of the Pegasos has no AGP support, it only supports PCI and PCI-X. The AGP port is a fake port. It is a AGP/PCI-X converter behaving like AGP v2, supporting only AGPx1 and 3.3 Volts.
Comment 19 Stefan Dirsch 2006-09-01 16:48:31 UTC
Could you give it a try again with openSUSE 10.2 >= Alpha 3?
Comment 20 Stefan Dirsch 2006-10-27 15:51:03 UTC
openSUSE 10.2 Beta1 has just been released.
Comment 21 Stefan Dirsch 2006-11-30 00:20:51 UTC
To prevent this bugreport remaining open for the time being I close
this one now as fixed - assuming it *is* fixed. Don't hesitate to
reopen it again if you still can reproduce it with openSUSE >= 10.2.
The final release of openSUSE 10.2 is scheduled for 2006-12-07.