summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Hartmann <jhartmann@valinux.com>2000-09-08 15:52:43 +0000
committerJeff Hartmann <jhartmann@valinux.com>2000-09-08 15:52:43 +0000
commit3d4dc2c20ebbb92c24ec24dc8cf656e6341ed8da (patch)
tree4d90692a20e467713f980dee833d93ee87b2bb58
parent4f2c60bb65fec6333c4b16bbc33c0c8112244916 (diff)
Sync w/ latest debug work
-rw-r--r--linux-core/mga_drv.c6
-rw-r--r--linux/mga_dma.c5
-rw-r--r--linux/mga_drv.c6
3 files changed, 10 insertions, 7 deletions
diff --git a/linux-core/mga_drv.c b/linux-core/mga_drv.c
index 5e47f4366..db4711a96 100644
--- a/linux-core/mga_drv.c
+++ b/linux-core/mga_drv.c
@@ -95,8 +95,8 @@ static drm_ioctl_desc_t mga_ioctls[] = {
[DRM_IOCTL_NR(DRM_IOCTL_DMA)] = { mga_dma, 1, 0, 1 },
- [DRM_IOCTL_NR(DRM_IOCTL_LOCK)] = { mga_lock, 1, 0, 1 },
- [DRM_IOCTL_NR(DRM_IOCTL_UNLOCK)] = { mga_unlock, 1, 0, 1 },
+ [DRM_IOCTL_NR(DRM_IOCTL_LOCK)] = { mga_lock, 1, 0, 0 },
+ [DRM_IOCTL_NR(DRM_IOCTL_UNLOCK)] = { mga_unlock, 1, 0, 0 },
[DRM_IOCTL_NR(DRM_IOCTL_FINISH)] = { drm_finish, 1, 0, 0 },
[DRM_IOCTL_NR(DRM_IOCTL_AGP_ACQUIRE)] = { drm_agp_acquire, 1, 1, 0 },
@@ -113,7 +113,7 @@ static drm_ioctl_desc_t mga_ioctls[] = {
[DRM_IOCTL_NR(DRM_IOCTL_MGA_CLEAR)] = { mga_clear_bufs, 1, 0, 1 },
[DRM_IOCTL_NR(DRM_IOCTL_MGA_ILOAD)] = { mga_iload, 1, 0, 1 },
[DRM_IOCTL_NR(DRM_IOCTL_MGA_VERTEX)] = { mga_vertex, 1, 0, 1 },
- [DRM_IOCTL_NR(DRM_IOCTL_MGA_FLUSH)] = { mga_flush_ioctl, 1, 0, 1 },
+ [DRM_IOCTL_NR(DRM_IOCTL_MGA_FLUSH)] = { mga_flush_ioctl, 1, 0, 0 },
[DRM_IOCTL_NR(DRM_IOCTL_MGA_INDICES)] = { mga_indices, 1, 0, 1 },
};
diff --git a/linux/mga_dma.c b/linux/mga_dma.c
index 40cc3a55c..4e24258e7 100644
--- a/linux/mga_dma.c
+++ b/linux/mga_dma.c
@@ -182,7 +182,6 @@ static inline void mga_dma_quiescent(drm_device_t *dev)
for (i = 0 ; i < 2000 ; i++) mga_delay();
}
sarea_priv->dirty |= MGA_DMA_FLUSH;
-
out_status:
clear_bit(MGA_IN_DISPATCH, &dev_priv->dispatch_status);
out_nolock:
@@ -956,6 +955,8 @@ static int mga_flush_queue(drm_device_t *dev)
if(dev_priv == NULL) {
return 0;
}
+ /* Get bfscking lock */
+ drm_big_fscking_lock(dev);
if(dev_priv->next_prim->num_dwords != 0) {
current->state = TASK_INTERRUPTIBLE;
@@ -978,6 +979,8 @@ static int mga_flush_queue(drm_device_t *dev)
current->state = TASK_RUNNING;
remove_wait_queue(&dev_priv->flush_queue, &entry);
}
+ drm_big_fscking_unlock(dev);
+
return ret;
}
diff --git a/linux/mga_drv.c b/linux/mga_drv.c
index 5e47f4366..db4711a96 100644
--- a/linux/mga_drv.c
+++ b/linux/mga_drv.c
@@ -95,8 +95,8 @@ static drm_ioctl_desc_t mga_ioctls[] = {
[DRM_IOCTL_NR(DRM_IOCTL_DMA)] = { mga_dma, 1, 0, 1 },
- [DRM_IOCTL_NR(DRM_IOCTL_LOCK)] = { mga_lock, 1, 0, 1 },
- [DRM_IOCTL_NR(DRM_IOCTL_UNLOCK)] = { mga_unlock, 1, 0, 1 },
+ [DRM_IOCTL_NR(DRM_IOCTL_LOCK)] = { mga_lock, 1, 0, 0 },
+ [DRM_IOCTL_NR(DRM_IOCTL_UNLOCK)] = { mga_unlock, 1, 0, 0 },
[DRM_IOCTL_NR(DRM_IOCTL_FINISH)] = { drm_finish, 1, 0, 0 },
[DRM_IOCTL_NR(DRM_IOCTL_AGP_ACQUIRE)] = { drm_agp_acquire, 1, 1, 0 },
@@ -113,7 +113,7 @@ static drm_ioctl_desc_t mga_ioctls[] = {
[DRM_IOCTL_NR(DRM_IOCTL_MGA_CLEAR)] = { mga_clear_bufs, 1, 0, 1 },
[DRM_IOCTL_NR(DRM_IOCTL_MGA_ILOAD)] = { mga_iload, 1, 0, 1 },
[DRM_IOCTL_NR(DRM_IOCTL_MGA_VERTEX)] = { mga_vertex, 1, 0, 1 },
- [DRM_IOCTL_NR(DRM_IOCTL_MGA_FLUSH)] = { mga_flush_ioctl, 1, 0, 1 },
+ [DRM_IOCTL_NR(DRM_IOCTL_MGA_FLUSH)] = { mga_flush_ioctl, 1, 0, 0 },
[DRM_IOCTL_NR(DRM_IOCTL_MGA_INDICES)] = { mga_indices, 1, 0, 1 },
};