summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2000-02-27 20:48:58 +0000
committerKeith Whitwell <keith@tungstengraphics.com>2000-02-27 20:48:58 +0000
commitf4f0860b8c7eb98ff9a7247da8bd6e724d187516 (patch)
tree1021842a6483507bf1c6b342b2c05e3001f544f9
parent2f2480f94ed93e2ad452c6bc22a1eb63e4f37ea5 (diff)
downloaddrm-f4f0860b8c7eb98ff9a7247da8bd6e724d187516.tar.gz
performance fixes for the i810
-rw-r--r--linux-core/i810_dma.c7
-rw-r--r--linux/Makefile.linux264
-rw-r--r--linux/i810_dma.c7
-rw-r--r--linux/i810_drm_public.h8
4 files changed, 278 insertions, 8 deletions
diff --git a/linux-core/i810_dma.c b/linux-core/i810_dma.c
index 25dfe3ce..aa66a6c2 100644
--- a/linux-core/i810_dma.c
+++ b/linux-core/i810_dma.c
@@ -629,7 +629,7 @@ static inline void i810_dma_emit_flush(drm_device_t *dev)
i810_kernel_lost_context(dev);
BEGIN_LP_RING(2);
OUT_RING( CMD_REPORT_HEAD );
-#if 1
+#if 0
OUT_RING( GFX_OP_BREAKPOINT_INTERRUPT );
#else
OUT_RING( GFX_OP_USER_INTERRUPT );
@@ -655,6 +655,7 @@ static int i810_flush_queue(drm_device_t *dev)
add_wait_queue(&dev_priv->flush_queue, &entry);
for (;;) {
i810_dma_emit_flush(dev);
+ if (atomic_read(&dev_priv->flush_done) == 1) break;
if (atomic_read(&dev_priv->flush_done) == 1) break;
curTime = __gettimeinmillis();
if (startTime == 0 || curTime < startTime /*wrap case*/) {
@@ -663,7 +664,7 @@ static int i810_flush_queue(drm_device_t *dev)
DRM_ERROR("lockup\n");
goto out_wait_flush;
}
- schedule_timeout(HZ/60);
+ schedule_timeout(HZ*3);
if (signal_pending(current)) {
ret = -EINTR; /* Can't restart */
break;
@@ -731,6 +732,7 @@ int i810_lock(struct inode *inode, struct file *filp, unsigned int cmd,
*/
if (!ret) {
+#if 0
if (_DRM_LOCKING_CONTEXT(dev->lock.hw_lock->lock)
!= lock.context) {
long j = jiffies - dev->lock.lock_time;
@@ -742,6 +744,7 @@ int i810_lock(struct inode *inode, struct file *filp, unsigned int cmd,
schedule_timeout(j);
}
}
+#endif
add_wait_queue(&dev->lock.lock_queue, &entry);
for (;;) {
if (!dev->lock.hw_lock) {
diff --git a/linux/Makefile.linux b/linux/Makefile.linux
index f191349b..9037f5c4 100644
--- a/linux/Makefile.linux
+++ b/linux/Makefile.linux
@@ -175,3 +175,267 @@ clean:
rm -f *.o *.a *.po *~ core $(PROGS)
+# DO NOT DELETE
+
+agpsupport.o: drmP.h
+auth.o: drmP.h
+bufs.o: drmP.h /usr/include/linux/un.h
+context.o: drmP.h
+ctxbitmap.o: drmP.h
+dma.o: drmP.h /usr/include/linux/interrupt.h /usr/include/linux/kernel.h
+dma.o: /usr/include/asm/bitops.h /usr/include/asm/atomic.h
+dma.o: /usr/include/asm/hardirq.h /usr/include/linux/threads.h
+dma.o: /usr/include/asm/softirq.h
+drawable.o: drmP.h
+drm.o: /usr/include/asm/ioctl.h
+drmstat.o: /usr/include/stdio.h /usr/include/features.h
+drmstat.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+drmstat.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
+drmstat.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
+drmstat.o: /usr/include/bits/types.h /usr/include/libio.h
+drmstat.o: /usr/include/_G_config.h /usr/include/bits/stdio_lim.h
+drmstat.o: /usr/include/stdlib.h /usr/include/sys/types.h /usr/include/time.h
+drmstat.o: /usr/include/endian.h /usr/include/bits/endian.h
+drmstat.o: /usr/include/sys/select.h /usr/include/bits/select.h
+drmstat.o: /usr/include/bits/sigset.h /usr/include/sys/sysmacros.h
+drmstat.o: /usr/include/alloca.h /usr/include/unistd.h
+drmstat.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h
+drmstat.o: /usr/include/getopt.h /usr/include/sys/time.h
+drmstat.o: /usr/include/bits/time.h /usr/include/sys/mman.h
+drmstat.o: /usr/include/bits/mman.h /usr/include/strings.h
+drmstat.o: /usr/include/errno.h /usr/include/bits/errno.h
+drmstat.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
+drmstat.o: /usr/include/signal.h /usr/include/bits/signum.h
+drmstat.o: /usr/include/bits/siginfo.h /usr/include/bits/sigaction.h
+drmstat.o: /usr/include/bits/sigcontext.h /usr/include/asm/sigcontext.h
+drmstat.o: /usr/include/bits/sigstack.h /usr/include/fcntl.h
+drmstat.o: /usr/include/bits/fcntl.h xf86drm.h
+fops.o: drmP.h /usr/include/linux/poll.h /usr/include/asm/poll.h
+gamma_dma.o: drmP.h gamma_drv.h /usr/include/linux/interrupt.h
+gamma_dma.o: /usr/include/linux/kernel.h /usr/include/asm/bitops.h
+gamma_dma.o: /usr/include/asm/atomic.h /usr/include/asm/hardirq.h
+gamma_dma.o: /usr/include/linux/threads.h /usr/include/asm/softirq.h
+gamma_drv.o: drmP.h gamma_drv.h
+i810_bufs.o: drmP.h i810_drv.h i810_drm_public.h i810_dma.h
+i810_bufs.o: /usr/include/linux/un.h
+i810_context.o: /usr/include/linux/sched.h /usr/include/asm/param.h
+i810_context.o: /usr/include/linux/binfmts.h /usr/include/linux/ptrace.h
+i810_context.o: /usr/include/asm/ptrace.h /usr/include/linux/capability.h
+i810_context.o: /usr/include/linux/types.h /usr/include/linux/config.h
+i810_context.o: /usr/include/linux/autoconf.h
+i810_context.o: /usr/include/linux/posix_types.h /usr/include/linux/stddef.h
+i810_context.o: /usr/include/asm/posix_types.h /usr/include/asm/types.h
+i810_context.o: /usr/include/linux/fs.h /usr/include/linux/linkage.h
+i810_context.o: /usr/include/linux/limits.h /usr/include/linux/wait.h
+i810_context.o: /usr/include/linux/vfs.h /usr/include/asm/statfs.h
+i810_context.o: /usr/include/linux/net.h /usr/include/linux/socket.h
+i810_context.o: /usr/include/asm/socket.h /usr/include/asm/sockios.h
+i810_context.o: /usr/include/linux/sockios.h /usr/include/linux/uio.h
+i810_context.o: /usr/include/linux/kdev_t.h /usr/include/linux/ioctl.h
+i810_context.o: /usr/include/asm/ioctl.h /usr/include/linux/list.h
+i810_context.o: /usr/include/linux/dcache.h /usr/include/linux/stat.h
+i810_context.o: /usr/include/linux/cache.h /usr/include/asm/cache.h
+i810_context.o: /usr/include/asm/atomic.h /usr/include/asm/bitops.h
+i810_context.o: /usr/include/linux/personality.h /usr/include/linux/threads.h
+i810_context.o: /usr/include/linux/kernel.h /usr/include/linux/times.h
+i810_context.o: /usr/include/linux/timex.h /usr/include/asm/timex.h
+i810_context.o: /usr/include/asm/msr.h /usr/include/asm/system.h
+i810_context.o: /usr/include/asm/segment.h /usr/include/linux/bitops.h
+i810_context.o: /usr/include/asm/semaphore.h /usr/include/asm/rwlock.h
+i810_context.o: /usr/include/asm/page.h /usr/include/linux/smp.h
+i810_context.o: /usr/include/linux/tty.h /usr/include/linux/sem.h
+i810_context.o: /usr/include/linux/ipc.h /usr/include/asm/ipcbuf.h
+i810_context.o: /usr/include/asm/sembuf.h /usr/include/linux/signal.h
+i810_context.o: /usr/include/asm/signal.h /usr/include/asm/siginfo.h
+i810_context.o: /usr/include/linux/securebits.h /usr/include/linux/time.h
+i810_context.o: /usr/include/linux/param.h /usr/include/linux/resource.h
+i810_context.o: /usr/include/asm/resource.h /usr/include/linux/timer.h
+i810_context.o: /usr/include/asm/processor.h /usr/include/asm/vm86.h
+i810_context.o: /usr/include/asm/math_emu.h /usr/include/asm/sigcontext.h
+i810_context.o: drmP.h i810_drv.h i810_drm_public.h
+i810_dma.o: drmP.h i810_drm_public.h i810_drv.h i810_dma.h
+i810_dma.o: /usr/include/linux/interrupt.h /usr/include/linux/kernel.h
+i810_dma.o: /usr/include/asm/bitops.h /usr/include/asm/atomic.h
+i810_dma.o: /usr/include/asm/hardirq.h /usr/include/linux/threads.h
+i810_dma.o: /usr/include/asm/softirq.h /usr/include/linux/time.h
+i810_dma.o: /usr/include/asm/param.h /usr/include/linux/types.h
+i810_dma.o: /usr/include/linux/config.h /usr/include/linux/autoconf.h
+i810_dma.o: /usr/include/linux/posix_types.h /usr/include/linux/stddef.h
+i810_dma.o: /usr/include/asm/posix_types.h /usr/include/asm/types.h
+i810_dma.o: i810_drm_public.h
+i810_drv.o: drmP.h i810_drv.h i810_drm_public.h i810_dma.h
+i810_drv.o: i810_drm_public.h
+init.o: drmP.h
+ioctl.o: drmP.h
+lists.o: drmP.h
+lock.o: drmP.h
+memory.o: drmP.h
+mga_bufs.o: drmP.h mga_drv.h mga_drm_public.h mga_dma.h
+mga_bufs.o: /usr/include/linux/un.h
+mga_clear.o: drmP.h mga_drv.h mga_drm_public.h mgareg_flags.h mga_dma.h
+mga_clear.o: mga_state.h
+mga_context.o: /usr/include/linux/sched.h /usr/include/asm/param.h
+mga_context.o: /usr/include/linux/binfmts.h /usr/include/linux/ptrace.h
+mga_context.o: /usr/include/asm/ptrace.h /usr/include/linux/capability.h
+mga_context.o: /usr/include/linux/types.h /usr/include/linux/config.h
+mga_context.o: /usr/include/linux/autoconf.h /usr/include/linux/posix_types.h
+mga_context.o: /usr/include/linux/stddef.h /usr/include/asm/posix_types.h
+mga_context.o: /usr/include/asm/types.h /usr/include/linux/fs.h
+mga_context.o: /usr/include/linux/linkage.h /usr/include/linux/limits.h
+mga_context.o: /usr/include/linux/wait.h /usr/include/linux/vfs.h
+mga_context.o: /usr/include/asm/statfs.h /usr/include/linux/net.h
+mga_context.o: /usr/include/linux/socket.h /usr/include/asm/socket.h
+mga_context.o: /usr/include/asm/sockios.h /usr/include/linux/sockios.h
+mga_context.o: /usr/include/linux/uio.h /usr/include/linux/kdev_t.h
+mga_context.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
+mga_context.o: /usr/include/linux/list.h /usr/include/linux/dcache.h
+mga_context.o: /usr/include/linux/stat.h /usr/include/linux/cache.h
+mga_context.o: /usr/include/asm/cache.h /usr/include/asm/atomic.h
+mga_context.o: /usr/include/asm/bitops.h /usr/include/linux/personality.h
+mga_context.o: /usr/include/linux/threads.h /usr/include/linux/kernel.h
+mga_context.o: /usr/include/linux/times.h /usr/include/linux/timex.h
+mga_context.o: /usr/include/asm/timex.h /usr/include/asm/msr.h
+mga_context.o: /usr/include/asm/system.h /usr/include/asm/segment.h
+mga_context.o: /usr/include/linux/bitops.h /usr/include/asm/semaphore.h
+mga_context.o: /usr/include/asm/rwlock.h /usr/include/asm/page.h
+mga_context.o: /usr/include/linux/smp.h /usr/include/linux/tty.h
+mga_context.o: /usr/include/linux/sem.h /usr/include/linux/ipc.h
+mga_context.o: /usr/include/asm/ipcbuf.h /usr/include/asm/sembuf.h
+mga_context.o: /usr/include/linux/signal.h /usr/include/asm/signal.h
+mga_context.o: /usr/include/asm/siginfo.h /usr/include/linux/securebits.h
+mga_context.o: /usr/include/linux/time.h /usr/include/linux/param.h
+mga_context.o: /usr/include/linux/resource.h /usr/include/asm/resource.h
+mga_context.o: /usr/include/linux/timer.h /usr/include/asm/processor.h
+mga_context.o: /usr/include/asm/vm86.h /usr/include/asm/math_emu.h
+mga_context.o: /usr/include/asm/sigcontext.h drmP.h mga_drv.h
+mga_context.o: mga_drm_public.h
+mga_dma.o: drmP.h mga_drv.h mga_drm_public.h mgareg_flags.h mga_dma.h
+mga_dma.o: /usr/include/linux/interrupt.h /usr/include/linux/kernel.h
+mga_dma.o: /usr/include/asm/bitops.h /usr/include/asm/atomic.h
+mga_dma.o: /usr/include/asm/hardirq.h /usr/include/linux/threads.h
+mga_dma.o: /usr/include/asm/softirq.h
+mga_dma.o: mga_drm_public.h
+mga_drv.o: drmP.h mga_drv.h mga_drm_public.h
+mga_drv.o: mga_drm_public.h
+mga_state.o: drmP.h mga_drv.h mga_drm_public.h mgareg_flags.h mga_dma.h drm.h
+mga_state.o: /usr/include/asm/ioctl.h
+mga_state.o: mga_drv.h mga_drm_public.h
+picker.o: /usr/include/linux/autoconf.h /usr/include/linux/version.h
+proc.o: drmP.h
+sigio.o: /usr/include/unistd.h /usr/include/features.h
+sigio.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+sigio.o: /usr/include/bits/posix_opt.h /usr/include/bits/types.h
+sigio.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
+sigio.o: /usr/include/bits/confname.h /usr/include/getopt.h
+sigio.o: /usr/include/signal.h /usr/include/bits/sigset.h
+sigio.o: /usr/include/bits/signum.h /usr/include/time.h
+sigio.o: /usr/include/bits/siginfo.h /usr/include/bits/sigaction.h
+sigio.o: /usr/include/bits/sigcontext.h /usr/include/asm/sigcontext.h
+sigio.o: /usr/include/bits/sigstack.h /usr/include/fcntl.h
+sigio.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
+sigio.o: /usr/include/endian.h /usr/include/bits/endian.h
+sigio.o: /usr/include/sys/select.h /usr/include/bits/select.h
+sigio.o: /usr/include/sys/sysmacros.h /usr/include/sys/time.h
+sigio.o: /usr/include/bits/time.h /usr/include/errno.h
+sigio.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
+sigio.o: /usr/include/asm/errno.h /usr/include/stdio.h
+sigio.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
+sigio.o: /usr/include/libio.h /usr/include/_G_config.h
+sigio.o: /usr/include/bits/stdio_lim.h /usr/include/string.h
+tdfx_context.o: /usr/include/linux/sched.h /usr/include/asm/param.h
+tdfx_context.o: /usr/include/linux/binfmts.h /usr/include/linux/ptrace.h
+tdfx_context.o: /usr/include/asm/ptrace.h /usr/include/linux/capability.h
+tdfx_context.o: /usr/include/linux/types.h /usr/include/linux/config.h
+tdfx_context.o: /usr/include/linux/autoconf.h
+tdfx_context.o: /usr/include/linux/posix_types.h /usr/include/linux/stddef.h
+tdfx_context.o: /usr/include/asm/posix_types.h /usr/include/asm/types.h
+tdfx_context.o: /usr/include/linux/fs.h /usr/include/linux/linkage.h
+tdfx_context.o: /usr/include/linux/limits.h /usr/include/linux/wait.h
+tdfx_context.o: /usr/include/linux/vfs.h /usr/include/asm/statfs.h
+tdfx_context.o: /usr/include/linux/net.h /usr/include/linux/socket.h
+tdfx_context.o: /usr/include/asm/socket.h /usr/include/asm/sockios.h
+tdfx_context.o: /usr/include/linux/sockios.h /usr/include/linux/uio.h
+tdfx_context.o: /usr/include/linux/kdev_t.h /usr/include/linux/ioctl.h
+tdfx_context.o: /usr/include/asm/ioctl.h /usr/include/linux/list.h
+tdfx_context.o: /usr/include/linux/dcache.h /usr/include/linux/stat.h
+tdfx_context.o: /usr/include/linux/cache.h /usr/include/asm/cache.h
+tdfx_context.o: /usr/include/asm/atomic.h /usr/include/asm/bitops.h
+tdfx_context.o: /usr/include/linux/personality.h /usr/include/linux/threads.h
+tdfx_context.o: /usr/include/linux/kernel.h /usr/include/linux/times.h
+tdfx_context.o: /usr/include/linux/timex.h /usr/include/asm/timex.h
+tdfx_context.o: /usr/include/asm/msr.h /usr/include/asm/system.h
+tdfx_context.o: /usr/include/asm/segment.h /usr/include/linux/bitops.h
+tdfx_context.o: /usr/include/asm/semaphore.h /usr/include/asm/rwlock.h
+tdfx_context.o: /usr/include/asm/page.h /usr/include/linux/smp.h
+tdfx_context.o: /usr/include/linux/tty.h /usr/include/linux/sem.h
+tdfx_context.o: /usr/include/linux/ipc.h /usr/include/asm/ipcbuf.h
+tdfx_context.o: /usr/include/asm/sembuf.h /usr/include/linux/signal.h
+tdfx_context.o: /usr/include/asm/signal.h /usr/include/asm/siginfo.h
+tdfx_context.o: /usr/include/linux/securebits.h /usr/include/linux/time.h
+tdfx_context.o: /usr/include/linux/param.h /usr/include/linux/resource.h
+tdfx_context.o: /usr/include/asm/resource.h /usr/include/linux/timer.h
+tdfx_context.o: /usr/include/asm/processor.h /usr/include/asm/vm86.h
+tdfx_context.o: /usr/include/asm/math_emu.h /usr/include/asm/sigcontext.h
+tdfx_context.o: drmP.h tdfx_drv.h
+tdfx_drv.o: drmP.h tdfx_drv.h
+vm.o: drmP.h
+xf86_OSproc.o: /usr/include/X11/Xfuncproto.h
+xf86drm.o: /usr/include/stdio.h /usr/include/features.h
+xf86drm.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+xf86drm.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
+xf86drm.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
+xf86drm.o: /usr/include/bits/types.h /usr/include/libio.h
+xf86drm.o: /usr/include/_G_config.h /usr/include/bits/stdio_lim.h
+xf86drm.o: /usr/include/stdlib.h /usr/include/sys/types.h /usr/include/time.h
+xf86drm.o: /usr/include/endian.h /usr/include/bits/endian.h
+xf86drm.o: /usr/include/sys/select.h /usr/include/bits/select.h
+xf86drm.o: /usr/include/bits/sigset.h /usr/include/sys/sysmacros.h
+xf86drm.o: /usr/include/alloca.h /usr/include/unistd.h
+xf86drm.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h
+xf86drm.o: /usr/include/getopt.h /usr/include/string.h /usr/include/ctype.h
+xf86drm.o: /usr/include/fcntl.h /usr/include/bits/fcntl.h
+xf86drm.o: /usr/include/errno.h /usr/include/bits/errno.h
+xf86drm.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
+xf86drm.o: /usr/include/signal.h /usr/include/bits/signum.h
+xf86drm.o: /usr/include/bits/siginfo.h /usr/include/bits/sigaction.h
+xf86drm.o: /usr/include/bits/sigcontext.h /usr/include/asm/sigcontext.h
+xf86drm.o: /usr/include/bits/sigstack.h /usr/include/sys/stat.h
+xf86drm.o: /usr/include/bits/stat.h /usr/include/sys/ioctl.h
+xf86drm.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
+xf86drm.o: /usr/include/asm/ioctl.h /usr/include/bits/ioctl-types.h
+xf86drm.o: /usr/include/sys/ttydefaults.h /usr/include/sys/mman.h
+xf86drm.o: /usr/include/bits/mman.h /usr/include/sys/time.h
+xf86drm.o: /usr/include/bits/time.h xf86drm.h drm.h
+xf86drmHash.o: xf86drm.h /usr/include/stdio.h /usr/include/features.h
+xf86drmHash.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+xf86drmHash.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
+xf86drmHash.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
+xf86drmHash.o: /usr/include/bits/types.h /usr/include/libio.h
+xf86drmHash.o: /usr/include/_G_config.h /usr/include/bits/stdio_lim.h
+xf86drmHash.o: /usr/include/stdlib.h /usr/include/sys/types.h
+xf86drmHash.o: /usr/include/time.h /usr/include/endian.h
+xf86drmHash.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+xf86drmHash.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+xf86drmHash.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
+xf86drmRandom.o: xf86drm.h /usr/include/stdio.h /usr/include/features.h
+xf86drmRandom.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+xf86drmRandom.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
+xf86drmRandom.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
+xf86drmRandom.o: /usr/include/bits/types.h /usr/include/libio.h
+xf86drmRandom.o: /usr/include/_G_config.h /usr/include/bits/stdio_lim.h
+xf86drmRandom.o: /usr/include/stdlib.h /usr/include/sys/types.h
+xf86drmRandom.o: /usr/include/time.h /usr/include/endian.h
+xf86drmRandom.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+xf86drmRandom.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+xf86drmRandom.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
+xf86drmSL.o: xf86drm.h /usr/include/stdio.h /usr/include/features.h
+xf86drmSL.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h
+xf86drmSL.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stddef.h
+xf86drmSL.o: /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include/stdarg.h
+xf86drmSL.o: /usr/include/bits/types.h /usr/include/libio.h
+xf86drmSL.o: /usr/include/_G_config.h /usr/include/bits/stdio_lim.h
+xf86drmSL.o: /usr/include/stdlib.h /usr/include/sys/types.h
+xf86drmSL.o: /usr/include/time.h /usr/include/endian.h
+xf86drmSL.o: /usr/include/bits/endian.h /usr/include/sys/select.h
+xf86drmSL.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
+xf86drmSL.o: /usr/include/sys/sysmacros.h /usr/include/alloca.h
diff --git a/linux/i810_dma.c b/linux/i810_dma.c
index 25dfe3ce..aa66a6c2 100644
--- a/linux/i810_dma.c
+++ b/linux/i810_dma.c
@@ -629,7 +629,7 @@ static inline void i810_dma_emit_flush(drm_device_t *dev)
i810_kernel_lost_context(dev);
BEGIN_LP_RING(2);
OUT_RING( CMD_REPORT_HEAD );
-#if 1
+#if 0
OUT_RING( GFX_OP_BREAKPOINT_INTERRUPT );
#else
OUT_RING( GFX_OP_USER_INTERRUPT );
@@ -655,6 +655,7 @@ static int i810_flush_queue(drm_device_t *dev)
add_wait_queue(&dev_priv->flush_queue, &entry);
for (;;) {
i810_dma_emit_flush(dev);
+ if (atomic_read(&dev_priv->flush_done) == 1) break;
if (atomic_read(&dev_priv->flush_done) == 1) break;
curTime = __gettimeinmillis();
if (startTime == 0 || curTime < startTime /*wrap case*/) {
@@ -663,7 +664,7 @@ static int i810_flush_queue(drm_device_t *dev)
DRM_ERROR("lockup\n");
goto out_wait_flush;
}
- schedule_timeout(HZ/60);
+ schedule_timeout(HZ*3);
if (signal_pending(current)) {
ret = -EINTR; /* Can't restart */
break;
@@ -731,6 +732,7 @@ int i810_lock(struct inode *inode, struct file *filp, unsigned int cmd,
*/
if (!ret) {
+#if 0
if (_DRM_LOCKING_CONTEXT(dev->lock.hw_lock->lock)
!= lock.context) {
long j = jiffies - dev->lock.lock_time;
@@ -742,6 +744,7 @@ int i810_lock(struct inode *inode, struct file *filp, unsigned int cmd,
schedule_timeout(j);
}
}
+#endif
add_wait_queue(&dev->lock.lock_queue, &entry);
for (;;) {
if (!dev->lock.hw_lock) {
diff --git a/linux/i810_drm_public.h b/linux/i810_drm_public.h
index 73f60894..7213def1 100644
--- a/linux/i810_drm_public.h
+++ b/linux/i810_drm_public.h
@@ -58,15 +58,15 @@ typedef struct _xf86drmClipRectRec {
#define I810_USE_BATCH 1
-#define I810_DMA_BUF_ORDER 14
+#define I810_DMA_BUF_ORDER 12
#define I810_DMA_BUF_SZ (1<<I810_DMA_BUF_ORDER)
-#define I810_DMA_BUF_NR 32
+#define I810_DMA_BUF_NR 256
#define I810_NR_SAREA_CLIPRECTS 2
-/* Each region is a minimum of 64k, and there are at most 128 of them.
+/* Each region is a minimum of 64k, and there are at most 64 of them.
*/
-#define I810_NR_TEX_REGIONS 128
+#define I810_NR_TEX_REGIONS 64
#define I810_LOG_MIN_TEX_REGION_SIZE 16
typedef struct {