I'm seeing what might be the same problem with an NV4E (a GeForce 6150 which is built into my ASUS M2NPV-VM motherboard) running in a 64-bit environment. I have a work-around, but it doesn't make any sense to me.
I've managed to track my issue down to the TTM interface changes:
77bce8e drm/nouveau: fix for ttm interface changes, and
ad49f50 drm/ttm/radeon: add dma32 support.
If I force the last argument to ttm_bo_device_init to false then the GPU channel is successfully created and 2D acceleration works. I'm currently using the following patch:
I'm seeing what might be the same problem with an NV4E (a GeForce 6150 which is built into my ASUS M2NPV-VM motherboard) running in a 64-bit environment. I have a work-around, but it doesn't make any sense to me.
I've managed to track my issue down to the TTM interface changes:
77bce8e drm/nouveau: fix for ttm interface changes, and
ad49f50 drm/ttm/radeon: add dma32 support.
If I force the last argument to ttm_bo_device_init to false then the GPU channel is successfully created and 2D acceleration works. I'm currently using the following patch:
diff --git a/drivers/ gpu/drm/ nouveau/ nouveau_ mem.c b/drivers/ gpu/drm/ nouveau/ nouveau_ mem.c gpu/drm/ nouveau/ nouveau_ mem.c gpu/drm/ nouveau/ nouveau_ mem.c mem_init( struct drm_device *dev) device_ init(&dev_ priv->ttm. bdev,
dev_ priv->ttm. bo_global_ ref.ref. object,
&nouveau_ bo_driver, DRM_FILE_ PAGE_OFFSET,
NV_ERROR( dev, "Error initialising bo driver: %d\n", ret);
return ret;
index 8f3a12f..10d1663 100644
--- a/drivers/
+++ b/drivers/
@@ -590,7 +590,7 @@ nouveau_
ret = ttm_bo_
- dma_bits <= 32 ? true : false);
+ /* dma_bits <= 32 ? true : */ false);
if (ret) {
The bit that I find most confusing is that I can't just force dma_bits to be 40 (or 64, for that matter) -- it apparently must be 32.
To summarize, this only works for me if: dma_bits=32 and TTM_PAGE_FLAG_DMA32 is not in bdev's flags.
I hope this means something to someone...
Thanks,
-Ted