Michel Dänzer [Wed, 28 Feb 2007 14:57:08 +0000 (15:57 +0100)]
i915: Only clean up page flipping when the last client goes away, not any one.
Michel Dänzer [Wed, 28 Feb 2007 14:23:19 +0000 (15:23 +0100)]
i915: Don't emit waits for pending flips before emitting synchronous flips.
The assumption is that synchronous flips are not isolated usually, and waiting
for all of them could result in stalling the pipeline for long periods of time.
Also use i915_emit_mi_flush() instead of an old-fashioned way to achieve the
same effect.
Michel Dänzer [Wed, 28 Feb 2007 11:33:56 +0000 (12:33 +0100)]
i915: Fix test for synchronous flip affecting both pipes.
Michel Dänzer [Thu, 22 Feb 2007 16:21:18 +0000 (17:21 +0100)]
i915: Add support for scheduled buffer swaps to be done as flips.
Unfortunately, emitting asynchronous flips during vertical blank results in
tearing. So we have to wait for the previous vertical blank and emit a
synchronous flip.
Michel Dänzer [Thu, 22 Feb 2007 16:19:30 +0000 (17:19 +0100)]
Add DRM_VBLANK_FLIP.
Used to request that a scheduled buffer swap be done as a flip instead of a
blit.
Michel Dänzer [Mon, 19 Feb 2007 11:27:54 +0000 (12:27 +0100)]
i915: Improved page flipping support, including triple buffering.
Pages are tracked independently on each pipe.
Bump the minor version for 3D clients to know page flipping is usable, and
bump driver date.
Michel Dänzer [Fri, 2 Feb 2007 16:28:43 +0000 (17:28 +0100)]
i915: Page flipping enhancements.
Leave it to the client to wait for the flip to complete when necessary,
but wait for a previous flip to complete before emitting another one. This
should help avoid unnecessary stalling of the ring due to pending flips.
Call i915_do_cleanup_pageflip() unconditionally in preclose.
Michel Dänzer [Fri, 2 Feb 2007 16:23:42 +0000 (17:23 +0100)]
i915: Unify breadcrumb emission.
Dave Airlie [Sun, 18 Feb 2007 06:59:40 +0000 (17:59 +1100)]
drm: remove last usage of VM_OFFSET
Thomas Hellstrom [Fri, 16 Feb 2007 19:25:26 +0000 (20:25 +0100)]
Leftover files from previous commit.
Thomas Hellstrom [Fri, 16 Feb 2007 19:22:24 +0000 (20:22 +0100)]
Simple fence object sample driver for via, based on idling the GPU.
Buffer object driver for via.
Some changes to buffer object driver callbacks.
Improve fence flushing.
Thomas Hellstrom [Thu, 15 Feb 2007 11:10:33 +0000 (12:10 +0100)]
Initial support for fence object classes.
(Fence objects belonging to different command submission mechanisms).
Michel Dänzer [Thu, 15 Feb 2007 08:26:16 +0000 (09:26 +0100)]
Fix build against older kernels.
Thomas Hellstrom [Wed, 14 Feb 2007 14:33:40 +0000 (15:33 +0100)]
Merge branch 'ttm-vram-0-1-branch'
Thomas Hellstrom [Wed, 14 Feb 2007 14:32:08 +0000 (15:32 +0100)]
Fix multiple spinlock unlocking
Thomas Hellstrom [Wed, 14 Feb 2007 13:10:10 +0000 (14:10 +0100)]
Rename drm_ttm.h to drm_objects.h
Fix up some header incompatibilities in drm_fence.c caused by the previous
commit.
Thomas Hellstrom [Wed, 14 Feb 2007 13:05:40 +0000 (14:05 +0100)]
Move fence- and buffer-object related header stuff to drm_ttm.h
Thomas Hellstrom [Wed, 14 Feb 2007 12:31:35 +0000 (13:31 +0100)]
Remove an intel-specific hack and replace it with a fence driver callback.
Thomas Hellstrom [Wed, 14 Feb 2007 11:39:02 +0000 (12:39 +0100)]
Set the drm bus map type for each buffer object memory type.
Thomas Hellstrom [Wed, 14 Feb 2007 09:49:37 +0000 (10:49 +0100)]
Rework buffer object vm code to use nopfn() for kernels >= 2.6.19.
Stephane Marchesin [Tue, 13 Feb 2007 23:08:55 +0000 (00:08 +0100)]
nouveau: fix the build on big endian (thanks CyberFoxx)
B. Rathmann [Tue, 13 Feb 2007 23:07:31 +0000 (00:07 +0100)]
nouveau: fix memory initialization with multiple cards.
Thomas Hellstrom [Tue, 13 Feb 2007 19:46:56 +0000 (20:46 +0100)]
Remove debug printout.
Thomas Hellstrom [Sun, 11 Feb 2007 19:33:57 +0000 (20:33 +0100)]
Bugzilla Bug #9457
Add refcounting of user waiters to the DRM hardware lock, so that we can use the
DRM_LOCK_CONT flag more conservatively.
Also add a kernel waiter refcount that if nonzero transfers the lock for the kernel context,
when it is released. This is useful when waiting for idle and can be used
for very simple fence object driver implementations for the new memory manager.
It also resolves the AIGLX startup deadlock for the sis and the via drivers.
i810, i830 still require that the hardware lock is really taken so the deadlock remains
for those two. I'm not sure about ffb. Anyone familiar with that code?
Thomas Hellstrom [Tue, 13 Feb 2007 19:05:32 +0000 (20:05 +0100)]
More bugfixes.
Fixed memory, pinned buffers and unmappable memory now seems
fully functional.
Adam Jackson [Mon, 12 Feb 2007 20:45:51 +0000 (15:45 -0500)]
Fix some outdated URLs, remove others.
Thomas Hellstrom [Mon, 12 Feb 2007 20:40:42 +0000 (21:40 +0100)]
Update flags and comments.
Thomas Hellstrom [Mon, 12 Feb 2007 19:34:50 +0000 (20:34 +0100)]
Lindent.
Thomas Hellstrom [Mon, 12 Feb 2007 19:32:03 +0000 (20:32 +0100)]
More bugfixes.
Thomas Hellstrom [Mon, 12 Feb 2007 16:47:57 +0000 (17:47 +0100)]
Cleanup and fix support for pinned buffers.
Thomas Hellstrom [Sat, 10 Feb 2007 11:06:36 +0000 (12:06 +0100)]
Various bugfixes.
Thomas Hellstrom [Fri, 9 Feb 2007 15:36:53 +0000 (16:36 +0100)]
I915 accelerated blit copy functional.
Fixed - to System memory copies are implemented by
flipping in a cache-coherent TTM,
blitting to it, and then flipping it out.
Thomas Hellstrom [Fri, 9 Feb 2007 11:43:18 +0000 (12:43 +0100)]
Reinstate some LRU handling.
Thomas Hellstrom [Thu, 8 Feb 2007 23:11:53 +0000 (00:11 +0100)]
Remove some code that should have gone in
commit
6a49d9a8abd9f168211017c2d585d0d64e89c530
Thomas Hellstrom [Thu, 8 Feb 2007 23:07:29 +0000 (00:07 +0100)]
Fix copyright statements.
Thomas Hellstrom [Thu, 8 Feb 2007 23:02:02 +0000 (00:02 +0100)]
Fix evict_mutex locking range.
Implement unmappable buffers. (fault moves them to mappable when needed).
Various bugfixes.
Thomas Hellstrom [Thu, 8 Feb 2007 20:28:33 +0000 (21:28 +0100)]
Add an accelerated buffer copy cleanup helper.
Export helper functions and make some important buffer-object functions non-static.
Add an i915 accelerated blit buffer move for pci memory buffers.
Thomas Hellstrom [Thu, 8 Feb 2007 18:06:39 +0000 (19:06 +0100)]
Don't create a ttm just to copy from.
Thomas Hellstrom [Thu, 8 Feb 2007 17:59:02 +0000 (18:59 +0100)]
Fix mm_block leak.
Some other minor fixes.
Thomas Hellstrom [Thu, 8 Feb 2007 15:21:38 +0000 (16:21 +0100)]
A minor function interface change and some memcpy bugfixing.
Hooray!! it sort of works with a fixed AGP area as faked VRAM.
Thomas Hellstrom [Thu, 8 Feb 2007 12:29:08 +0000 (13:29 +0100)]
Simplify external ttm page allocation.
Implement a memcpy fallback for copying between buffers.
Thomas Hellstrom [Thu, 8 Feb 2007 10:55:24 +0000 (11:55 +0100)]
Update memory compatibility tests.
Now only pinned buffers are broken.
Eric Anholt [Tue, 23 Jan 2007 00:34:25 +0000 (08:34 +0800)]
Warning fix: correct type of i915_mmio argument.
Eric Anholt [Tue, 23 Jan 2007 00:19:43 +0000 (08:19 +0800)]
Define __iomem for systems without it.
Eric Anholt [Tue, 23 Jan 2007 00:05:36 +0000 (08:05 +0800)]
Add chip family flags to i915 driver, and fix a missing '"' in mach64 ID list.
Thomas Hellstrom [Wed, 7 Feb 2007 16:25:13 +0000 (17:25 +0100)]
Checkpoint commit.
Flag handling and memory type selection cleanup.
glxgears won't start.
Thomas Hellstrom [Wed, 7 Feb 2007 11:52:23 +0000 (12:52 +0100)]
Fix a stray unlock_kernel() in drm_vm.c
Add a file for memory move helpers, drm_bo_move.c
Implement generic memory move.
Cached, no_move and unmapped memory temporarily broken.
Thomas Hellstrom [Tue, 6 Feb 2007 15:59:45 +0000 (16:59 +0100)]
Simplify pci map vs no pci map choice.
Thomas Hellstrom [Tue, 6 Feb 2007 14:56:43 +0000 (15:56 +0100)]
Implement a drm_mem_reg_t substructure in the buffer object type.
Thomas Hellstrom [Tue, 6 Feb 2007 13:20:33 +0000 (14:20 +0100)]
Implement a policy for selecting memory types.
Stephane Marchesin [Tue, 6 Feb 2007 00:17:32 +0000 (01:17 +0100)]
nouveau: more work on the nv04 context switch code.
Thomas Hellstrom [Mon, 5 Feb 2007 15:13:32 +0000 (16:13 +0100)]
i915: Add copy-blit operation.
Stephane Marchesin [Sat, 3 Feb 2007 05:13:27 +0000 (06:13 +0100)]
nouveau: and of course, I was missing the last nv04 piece.
Stephane Marchesin [Sat, 3 Feb 2007 05:02:12 +0000 (06:02 +0100)]
nouveau: add missing nv04_graph.c symlink.
Stephane Marchesin [Sat, 3 Feb 2007 05:00:29 +0000 (06:00 +0100)]
nouveau: plugin the nv04 graph init function.
Stephane Marchesin [Sat, 3 Feb 2007 04:56:42 +0000 (05:56 +0100)]
nouveau: cleanup the nv04 pgraph save/restore mechanism.
Stephane Marchesin [Sat, 3 Feb 2007 04:25:36 +0000 (05:25 +0100)]
nouveau: fix nv04 graph routines for new register names.
Stephane Marchesin [Sat, 3 Feb 2007 03:57:06 +0000 (04:57 +0100)]
nouveau: rename registers to their proper names.
Stephane Marchesin [Mon, 29 Jan 2007 03:03:59 +0000 (04:03 +0100)]
nouveau: add NV04 registers required for PGRAPH context switching.
Matthieu Castet [Fri, 2 Feb 2007 22:01:03 +0000 (23:01 +0100)]
nouveau: nv ctx switch opps the size of array was wrong
Matthieu Castet [Fri, 2 Feb 2007 19:08:33 +0000 (20:08 +0100)]
nouveau: nv10 ctx switch, some regs are nv17+ only
Thomas Hellstrom [Fri, 2 Feb 2007 18:49:11 +0000 (19:49 +0100)]
Make also later kernels work with buffer object vm
and clean up some function names.
Thomas Hellstrom [Fri, 2 Feb 2007 13:47:44 +0000 (14:47 +0100)]
Make vm handle buffer objects instead of ttm objects.
Remove ttm objects.
Make vm aware of PCI memory type buffer objects.
(Only works for pre 2.6.16 kernels for now).
Michel Dänzer [Thu, 18 Jan 2007 09:34:59 +0000 (10:34 +0100)]
Make git ignore generated config.h.in.
Thomas Hellstrom [Fri, 2 Feb 2007 08:15:44 +0000 (09:15 +0100)]
via: Try to improve command-buffer chaining.
Bump driver date and patchlevel.
Thomas Hellstrom [Fri, 2 Feb 2007 08:20:16 +0000 (09:20 +0100)]
Disable AGP DMA for chips with the new 3D engine.
Thomas Hellstrom [Thu, 1 Feb 2007 12:19:05 +0000 (13:19 +0100)]
Fix missing ttm_open_vma call from previous commit.
Honour the ttm backend cant-use-aperture flag.
Thomas Hellstrom [Thu, 1 Feb 2007 09:53:07 +0000 (10:53 +0100)]
Prepare for removal of the ttm_object type.
Thomas Hellstrom [Wed, 31 Jan 2007 23:38:57 +0000 (00:38 +0100)]
Protect drm_mmap against disappearing maps.
The map lists and hash tables are protected using dev->struct_mutex,
but drm_mmap strangely never locked this mutex.
Thomas Hellstrom [Wed, 31 Jan 2007 13:50:57 +0000 (14:50 +0100)]
memory manager: Make device driver aware of different memory types.
Memory types are either fixed (on-card or pre-bound AGP) or not fixed
(dynamically bound) to an aperture. They also carry information about:
1) Whether they can be mapped cached.
2) Whether they are at all mappable.
3) Whether they need an ioremap to be accessible from kernel space.
In this way VRAM memory and, for example, pre-bound AGP appear
identical to the memory manager.
This also makes support for unmappable VRAM simple to implement.
Thomas Hellstrom [Wed, 31 Jan 2007 10:41:44 +0000 (11:41 +0100)]
Make the utility runnable also for normal users.
Thomas Hellstrom [Wed, 31 Jan 2007 10:03:53 +0000 (11:03 +0100)]
Fix an error-path oops.
Thomas Hellstrom [Tue, 30 Jan 2007 15:20:23 +0000 (16:20 +0100)]
Add a buffer object transfer function.
Creates a placeholder for the old buffer contents
when it is transfered to / from static memory like VRAM.
Thomas Hellstrom [Tue, 30 Jan 2007 13:42:27 +0000 (14:42 +0100)]
Indent according to xorg rules.
Thomas Hellstrom [Tue, 30 Jan 2007 13:41:02 +0000 (14:41 +0100)]
Add license header.
Thomas Hellstrom [Tue, 30 Jan 2007 13:38:49 +0000 (14:38 +0100)]
Add some relevant tests for the new buffer object interface.
Thomas Hellstrom [Tue, 30 Jan 2007 11:56:51 +0000 (12:56 +0100)]
Add the ttmtest test utility.
Thomas Hellstrom [Tue, 30 Jan 2007 11:33:46 +0000 (12:33 +0100)]
Clean up buffer object destruction somewhat.
Thomas Hellstrom [Mon, 29 Jan 2007 12:36:17 +0000 (13:36 +0100)]
Use pre-defined list_splice function.
Thomas Hellstrom [Mon, 29 Jan 2007 12:19:20 +0000 (13:19 +0100)]
s/buf/bo/ for consistency.
Thomas Hellstrom [Mon, 29 Jan 2007 12:11:55 +0000 (13:11 +0100)]
Some cleanup. A buffer object should only have one active memory type.
Ben Skeggs [Sun, 28 Jan 2007 12:48:33 +0000 (23:48 +1100)]
nouveau: determine chipset type at startup, instead of every time we use it.
Matthieu Castet [Fri, 26 Jan 2007 20:57:44 +0000 (21:57 +0100)]
make works ctx switch on nv10.
Patrice Mandin [Fri, 26 Jan 2007 20:05:59 +0000 (21:05 +0100)]
nouveau: oops, wrong indexing in nv17 regs
Patrice Mandin [Fri, 26 Jan 2007 18:54:35 +0000 (19:54 +0100)]
nouveau: read gpu type once
Patrice Mandin [Fri, 26 Jan 2007 18:25:49 +0000 (19:25 +0100)]
nouveau: only save/restore nv17 regs on nv17,18 hw
Patrice Mandin [Fri, 26 Jan 2007 18:24:34 +0000 (19:24 +0100)]
nouveau: add extra pgraph registers
Patrice Mandin [Fri, 26 Jan 2007 17:10:31 +0000 (18:10 +0100)]
nouveau: add some nv10 pgraph defines
Patrice Mandin [Thu, 25 Jan 2007 22:06:48 +0000 (23:06 +0100)]
nouveau: simplify and fix BIG_ENDIAN flags
Thomas Hellstrom [Thu, 25 Jan 2007 13:26:58 +0000 (14:26 +0100)]
Remove a scary error printed when we were leaking memory caches.
We don't use memory caches anymore...
Fix memory accounting initialization to only use low or DMA32 memory.
Ben Skeggs [Thu, 25 Jan 2007 00:11:01 +0000 (11:11 +1100)]
nouveau: nv4c default context
Ben Skeggs [Wed, 24 Jan 2007 21:16:23 +0000 (08:16 +1100)]
nouveau: always print nsource/nstatus regs on PGRAPH errors
Zou Nan hai [Wed, 24 Jan 2007 08:33:21 +0000 (16:33 +0800)]
vblank interrupt fix
Ben Skeggs [Fri, 19 Jan 2007 04:41:51 +0000 (15:41 +1100)]
nouveau: fix getparam from 32-bit client on 64-bit kernel
Ben Skeggs [Sat, 13 Jan 2007 23:42:58 +0000 (10:42 +1100)]
nouveau: re-add 6150 Go pciid (0x0244)
Jeremy Kolb [Fri, 19 Jan 2007 02:39:36 +0000 (21:39 -0500)]
nouveau: cleanup nv30_graph.c
Jeremy Kolb [Fri, 19 Jan 2007 02:39:09 +0000 (21:39 -0500)]
nouveau: Remove write to CTX_SIZE. This gives us proper nv3x PGRAPH switching.
Dave Jones [Thu, 18 Jan 2007 06:28:49 +0000 (01:28 -0500)]
add missing quadro id
Jeremy Kolb [Wed, 17 Jan 2007 13:46:59 +0000 (08:46 -0500)]
nouveau: Try to get nv35 pgraph switching working. Doesn't quite yet.
Hook into nv20 pgraph switching functions (they're identical for nv3x).
Actually call nv30_pgraph_context_init so the ctx_table is allocated.
Thanks to Carlos Martin for the help.
Matthieu Castet [Sun, 14 Jan 2007 19:04:20 +0000 (20:04 +0100)]
nouveau: opps nv20 ctx ramin size was wrong