summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/nouveau/nouveau_fifo.c
diff options
context:
space:
mode:
authorBen Skeggs <darktama@iinet.net.au>2006-11-12 02:05:40 +0000
committerBen Skeggs <darktama@iinet.net.au>2006-11-12 02:05:40 +0000
commit6464787bfd1888ea93ebfe53528ceac3c27c993f (patch)
treee620a5a8d0716642eab65c02ee81ec66e3b78ef7 /src/mesa/drivers/dri/nouveau/nouveau_fifo.c
parentd037c84c33d6a164dc8f76dab4e352054a01f32f (diff)
Dont call exit() from the DRI driver, with AIGLX this is particularly nasty
Diffstat (limited to 'src/mesa/drivers/dri/nouveau/nouveau_fifo.c')
-rw-r--r--src/mesa/drivers/dri/nouveau/nouveau_fifo.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_fifo.c b/src/mesa/drivers/dri/nouveau/nouveau_fifo.c
index 5793909705..94d6773d33 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_fifo.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_fifo.c
@@ -109,19 +109,25 @@ void nouveauWaitForIdle(nouveauContextPtr nmesa)
}
// here we call the fifo initialization ioctl and fill in stuff accordingly
-void nouveauFifoInit(nouveauContextPtr nmesa)
+GLboolean nouveauFifoInit(nouveauContextPtr nmesa)
{
drm_nouveau_fifo_alloc_t fifo_init;
int ret;
ret=drmCommandWriteRead(nmesa->driFd, DRM_NOUVEAU_FIFO_ALLOC, &fifo_init, sizeof(fifo_init));
- if (ret)
+ if (ret) {
FATAL("Fifo initialization ioctl failed (returned %d)\n",ret);
+ return GL_FALSE;
+ }
- if (drmMap(nmesa->driFd, fifo_init.cmdbuf, fifo_init.cmdbuf_size, &nmesa->fifo.buffer))
+ if (drmMap(nmesa->driFd, fifo_init.cmdbuf, fifo_init.cmdbuf_size, &nmesa->fifo.buffer)) {
FATAL("Unable to map the fifo\n",ret);
- if (drmMap(nmesa->driFd, fifo_init.ctrl, fifo_init.ctrl_size, &nmesa->fifo.mmio))
+ return GL_FALSE;
+ }
+ if (drmMap(nmesa->driFd, fifo_init.ctrl, fifo_init.ctrl_size, &nmesa->fifo.mmio)) {
FATAL("Unable to map the control regs\n",ret);
+ return GL_FALSE;
+ }
MESSAGE("Fifo init ok. Using context %d\n", fifo_init.channel);
}