diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2000-02-27 20:48:58 +0000 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2000-02-27 20:48:58 +0000 |
commit | f4f0860b8c7eb98ff9a7247da8bd6e724d187516 (patch) | |
tree | 1021842a6483507bf1c6b342b2c05e3001f544f9 | |
parent | 2f2480f94ed93e2ad452c6bc22a1eb63e4f37ea5 (diff) | |
download | drm-f4f0860b8c7eb98ff9a7247da8bd6e724d187516.tar.gz |
performance fixes for the i810
-rw-r--r-- | linux-core/i810_dma.c | 7 | ||||
-rw-r--r-- | linux/Makefile.linux | 264 | ||||
-rw-r--r-- | linux/i810_dma.c | 7 | ||||
-rw-r--r-- | linux/i810_drm_public.h | 8 |
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 { |