Hi!
[ I suspect dri-devel is going to bounce my mails, so I'm CC'ing
linux-kernel ]
DRI stopped working on my setup in Linux 2.6.9-rc1-bk12. I've
narrowed the problem down to this changeset (Drop __HAVE_CTX_BITMAP,
__HAVE_SG, __HAVE_PCI_DMA):
http://linux.bkbits.net:8080/linux-2.5/cset@413a5e3ecfrYcOqFo6JOgkPIU-qVmQ
Backing this patch out makes DRI in -bk12 work again.
I've verified this on two machines with PCI Radeon 7000 cards, so
there's PCIGART stuff involved; unfortunately I don't have any AGP
Radeons to test with. (I originally suspected the __REALLY_HAVE_AGP
change, but that's fine, along with the DRIVER_FILE_FIELDS removal).
For what it matters, I'm primarily testing on a ppc Macintosh, but
I've verified this on a PC too.
Wow, there was no kidding about DRM being difficult to read. :-)
I hope this is helpful, but I don't urgently need DRI working. I'd be
glad to give any help tracking the problem down.
On kernels with non-working DRM, I get this message from the kernel:
[drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
[drm:radeon_unlock] *ERROR* Process 2150 using kernel context 0
While X says:
[24] 0 0 0x000003c0 - 0x000003df (0x20) IS[B](OprU)
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (Unknown error 999)
drmOpenDevice: open result is -1, (Unknown error 999)
drmOpenDevice: Open failed
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (Unknown error 999)
drmOpenDevice: open result is -1, (Unknown error 999)
drmOpenDevice: Open failed
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 7, (OK)
drmGetBusid returned ''
(II) RADEON(0): [drm] loaded kernel module for "radeon" driver
(II) RADEON(0): [drm] created "radeon" driver at busid "PCI:0:18:0"
(II) RADEON(0): [drm] added 8192 byte SAREA at 0xcd971000
(II) RADEON(0): [drm] mapped SAREA 0xcd971000 to 0xb5d89000
(II) RADEON(0): [drm] framebuffer handle = 0xd8000000
(II) RADEON(0): [drm] added 1 reserved context for kernel
(EE) RADEON(0): [pci] Out of memory (-1007) <------- *** LOOK HERE ***
(II) RADEON(0): [drm] removed 1 reserved context for kernel
(II) RADEON(0): [drm] unmapping 8192 bytes of SAREA 0xcd971000 at
0xb5d89000
(II) RADEON(0): Memory manager initialized to (0,0) (1280,6553)
(II) RADEON(0): Reserved area from (0,1024) to (1280,1026)
(II) RADEON(0): Largest offscreen area available: 1280 x 5527
(II) RADEON(0): Using XFree86 Acceleration Architecture (XAA)
<snip>
(II) RADEON(0): Direct rendering disabled
Thanks!
--
Joseph Fannin
[email protected]
"Bull in pure form is rare; there is usually some contamination by data."
-- William Graves Perry Jr.
Thanks for this report, I'll look over the changes for pcigart this
evening, I don't own a PCI radeon to test on... hopefully it's just
something small in the reduced macro code...
Dave.
On Wed, 15 Sep 2004 22:59:43 -0400, Joseph Fannin <[email protected]> wrote:
> Hi!
>
> [ I suspect dri-devel is going to bounce my mails, so I'm CC'ing
> linux-kernel ]
>
> DRI stopped working on my setup in Linux 2.6.9-rc1-bk12. I've
> narrowed the problem down to this changeset (Drop __HAVE_CTX_BITMAP,
> __HAVE_SG, __HAVE_PCI_DMA):
>
> http://linux.bkbits.net:8080/linux-2.5/cset@413a5e3ecfrYcOqFo6JOgkPIU-qVmQ
>
> Backing this patch out makes DRI in -bk12 work again.
>
> I've verified this on two machines with PCI Radeon 7000 cards, so
> there's PCIGART stuff involved; unfortunately I don't have any AGP
> Radeons to test with. (I originally suspected the __REALLY_HAVE_AGP
> change, but that's fine, along with the DRIVER_FILE_FIELDS removal).
>
> For what it matters, I'm primarily testing on a ppc Macintosh, but
> I've verified this on a PC too.
>
> Wow, there was no kidding about DRM being difficult to read. :-)
> I hope this is helpful, but I don't urgently need DRI working. I'd be
> glad to give any help tracking the problem down.
>
> On kernels with non-working DRM, I get this message from the kernel:
>
> [drm:radeon_cp_init] *ERROR* radeon_cp_init called without lock held
> [drm:radeon_unlock] *ERROR* Process 2150 using kernel context 0
>
> While X says:
>
> [24] 0 0 0x000003c0 - 0x000003df (0x20) IS[B](OprU)
> drmOpenDevice: minor is 0
> drmOpenDevice: node name is /dev/dri/card0
> drmOpenDevice: open result is -1, (Unknown error 999)
> drmOpenDevice: open result is -1, (Unknown error 999)
> drmOpenDevice: Open failed
> drmOpenDevice: minor is 0
> drmOpenDevice: node name is /dev/dri/card0
> drmOpenDevice: open result is -1, (Unknown error 999)
> drmOpenDevice: open result is -1, (Unknown error 999)
> drmOpenDevice: Open failed
> drmOpenDevice: minor is 0
> drmOpenDevice: node name is /dev/dri/card0
> drmOpenDevice: open result is 7, (OK)
> drmGetBusid returned ''
> (II) RADEON(0): [drm] loaded kernel module for "radeon" driver
> (II) RADEON(0): [drm] created "radeon" driver at busid "PCI:0:18:0"
> (II) RADEON(0): [drm] added 8192 byte SAREA at 0xcd971000
> (II) RADEON(0): [drm] mapped SAREA 0xcd971000 to 0xb5d89000
> (II) RADEON(0): [drm] framebuffer handle = 0xd8000000
> (II) RADEON(0): [drm] added 1 reserved context for kernel
>
> (EE) RADEON(0): [pci] Out of memory (-1007) <------- *** LOOK HERE ***
>
> (II) RADEON(0): [drm] removed 1 reserved context for kernel
> (II) RADEON(0): [drm] unmapping 8192 bytes of SAREA 0xcd971000 at
> 0xb5d89000
> (II) RADEON(0): Memory manager initialized to (0,0) (1280,6553)
> (II) RADEON(0): Reserved area from (0,1024) to (1280,1026)
> (II) RADEON(0): Largest offscreen area available: 1280 x 5527
> (II) RADEON(0): Using XFree86 Acceleration Architecture (XAA)
>
> <snip>
>
> (II) RADEON(0): Direct rendering disabled
>
> Thanks!
>
> --
> Joseph Fannin
> [email protected]
>
> "Bull in pure form is rare; there is usually some contamination by data."
> -- William Graves Perry Jr.
>
>
>
>
This should fix the problem
===== linux/drm_scatter.h 1.6 vs edited =====
--- 1.6/linux/drm_scatter.h Sun Sep 5 21:22:06 2004
+++ edited/linux/drm_scatter.h Thu Sep 16 01:11:13 2004
@@ -73,7 +73,7 @@
DRM_DEBUG( "%s\n", __FUNCTION__ );
- if (drm_core_check_feature(dev, DRIVER_SG))
+ if (!drm_core_check_feature(dev, DRIVER_SG))
return -EINVAL;
if ( dev->sg )
--
Jon Smirl
[email protected]
On Thu, Sep 16, 2004 at 01:17:02AM -0400, Jon Smirl wrote:
> This should fix the problem
>
> ===== linux/drm_scatter.h 1.6 vs edited =====
> +++ edited/linux/drm_scatter.h Thu Sep 16 01:11:13 2004
> @@ -73,7 +73,7 @@
>
> DRM_DEBUG( "%s\n", __FUNCTION__ );
>
> - if (drm_core_check_feature(dev, DRIVER_SG))
> + if (!drm_core_check_feature(dev, DRIVER_SG))
> return -EINVAL;
>
> if ( dev->sg )
>
>
Yes, it does (tested with this change in 2.6.9-rc2-mm1).
Thanks again!
--
Joseph Fannin
[email protected]
"That's all I have to say about that." -- Forrest Gump.