Thomas Hellstrom [Thu, 31 Aug 2006 19:42:29 +0000 (21:42 +0200)]
Validation and fencing.
Thomas Hellstrom [Thu, 31 Aug 2006 13:36:40 +0000 (15:36 +0200)]
Remove the buffer manager mutex. Use dev->struct_mutex instead.
Add a function to free buffers on hold for destruction if their
fence object has expired.
Add a timer to periodically call that function when there are
buffers pending deletion.
Thomas Hellstrom [Thu, 31 Aug 2006 12:10:13 +0000 (14:10 +0200)]
More mapping synchronization.
libdrm validate and fencing functions.
Thomas Hellstrom [Wed, 30 Aug 2006 19:31:38 +0000 (21:31 +0200)]
Lindenting drm_bo.c and drm_ttm.c
Thomas Hellstrom [Wed, 30 Aug 2006 19:30:47 +0000 (21:30 +0200)]
Buffer object binding.
Some code reordering.
Thomas Hellstrom [Wed, 30 Aug 2006 18:23:40 +0000 (20:23 +0200)]
Buffer eviction.
Reworked map refcounting so that any process waiting on buffer object unmap
will allow in other processes to unmap the buffer object.
Thomas Hellstrom [Wed, 30 Aug 2006 15:40:07 +0000 (17:40 +0200)]
Remove the buffer object hint field and use it only
as an argument.
Validate stub.
Thomas Hellstrom [Wed, 30 Aug 2006 13:11:50 +0000 (15:11 +0200)]
Add missing map flags.
Thomas Hellstrom [Wed, 30 Aug 2006 13:08:40 +0000 (15:08 +0200)]
Buffer object mapping and mapping synchronization for multiple clients.
Thomas Hellstrom [Wed, 30 Aug 2006 11:04:08 +0000 (13:04 +0200)]
Memory manager init and takedown.
Thomas Hellstrom [Wed, 30 Aug 2006 07:57:35 +0000 (09:57 +0200)]
Buffer object reply fill in.
Lindent of drm_bo.c drm_ttm.c
Thomas Hellstrom [Tue, 29 Aug 2006 19:57:37 +0000 (21:57 +0200)]
Part of buffer object libdrm interface.
Thomas Hellstrom [Tue, 29 Aug 2006 16:40:08 +0000 (18:40 +0200)]
Checkpoint commit. Buffer object flags and IOCTL argument list.
Thomas Hellstrom [Tue, 29 Aug 2006 12:52:02 +0000 (14:52 +0200)]
Checkpoint ttm addition to buffer objects.
Thomas Hellstrom [Tue, 29 Aug 2006 08:45:34 +0000 (10:45 +0200)]
64-bit IOCTL integer (Michel Dänzer & Brian Paul)
Thomas Hellstrom [Mon, 28 Aug 2006 15:51:53 +0000 (17:51 +0200)]
Buffer object creation.
Thomas Hellstrom [Mon, 28 Aug 2006 14:36:37 +0000 (16:36 +0200)]
Proper TTM dereferencing
Initial buffer object creation.
Thomas Hellstrom [Mon, 28 Aug 2006 11:51:39 +0000 (13:51 +0200)]
Buffer object idle and mapping synchronization.
Thomas Hellstrom [Mon, 28 Aug 2006 08:58:21 +0000 (10:58 +0200)]
Checkpoint buffer object IOCTL stub.
Thomas Hellstrom [Mon, 28 Aug 2006 07:49:09 +0000 (09:49 +0200)]
Add a 64-bit drm unsigned type for 64-bit clean IOCTLS.
Conversion functions in drmP.h and xf86drm.c.
Thomas Hellstrom [Mon, 28 Aug 2006 07:28:10 +0000 (09:28 +0200)]
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into drm-ttm-0-2-branch
Conflicts:
linux-core/drmP.h
Dave Airlie [Sat, 19 Aug 2006 07:59:18 +0000 (17:59 +1000)]
drm: lots of small cleanups and whitespace issues fixed up
remove a mach64 warning, align a lot of things from linux kernel
Dave Airlie [Sat, 19 Aug 2006 06:56:03 +0000 (16:56 +1000)]
add static function, and remove bad attributions
Dave Airlie [Sat, 19 Aug 2006 06:55:30 +0000 (16:55 +1000)]
fix const pointer warnings with file_operations
Dave Airlie [Sat, 19 Aug 2006 06:55:00 +0000 (16:55 +1000)]
remove local copies of pci domain/bus/slot/num
Dave Airlie [Sat, 19 Aug 2006 06:43:16 +0000 (16:43 +1000)]
remove some DRM_ARRAY_SIZE from linux core code
Dave Airlie [Sat, 19 Aug 2006 06:36:26 +0000 (16:36 +1000)]
fixup some of the comments in drm_context.c
Dave Airlie [Sat, 19 Aug 2006 06:31:34 +0000 (16:31 +1000)]
drm: i810_dma.c: fix pointer arithmetic for 64-bit target
First warning result from open-coded PTR_ERR,
the rest is caused by code like this:
*(u32 *) ((u32) buf_priv->kernel_virtual + used)
I've also fixed a missing PTR_ERR in i830_dma.c
From: Denis Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
Thomas Hellstrom [Sun, 27 Aug 2006 20:01:33 +0000 (22:01 +0200)]
Bugfixes.
Thomas Hellstrom [Sun, 27 Aug 2006 19:21:06 +0000 (21:21 +0200)]
Initialize i915 saved flush flags.
Thomas Hellstrom [Sun, 27 Aug 2006 19:16:13 +0000 (21:16 +0200)]
Remove the ioctl multiplexing, and instead allow for generic
drm ioctls 0x80 - 0xFF.
Thomas Hellstrom [Sun, 27 Aug 2006 17:45:38 +0000 (19:45 +0200)]
Have TTM create and reference ioctl call return the actual TTM size.
Thomas Hellstrom [Sun, 27 Aug 2006 17:07:38 +0000 (19:07 +0200)]
Add TTM map handle on reference.
Thomas Hellstrom [Sun, 27 Aug 2006 17:03:20 +0000 (19:03 +0200)]
ttm create / destroy / ref / unref ioctl.
Michel Dänzer [Sat, 26 Aug 2006 10:21:11 +0000 (12:21 +0200)]
Bug #7595: Avoid u32 overflows in radeon_check_and_fixup_offset().
The overflows could cause valid offsets to get rejected under some
circumstances, e.g. when the framebuffer resides at the very end of the card's
address space.
Thomas Hellstrom [Fri, 25 Aug 2006 18:03:39 +0000 (20:03 +0200)]
More ioctl stubs.
Buffer object locking order documentation.
Thomas Hellstrom [Fri, 25 Aug 2006 17:03:42 +0000 (19:03 +0200)]
ttm and buffer objects ioctl stubs.
Thomas Hellstrom [Fri, 25 Aug 2006 16:14:22 +0000 (18:14 +0200)]
Module protection map access is moving into mainline kernels.
Update drm_compat accordingly.
(Reported by Dave Airlie)
Thomas Hellstrom [Fri, 25 Aug 2006 16:05:35 +0000 (18:05 +0200)]
Checkpoint commit
Buffer object code.
Thomas Hellstrom [Wed, 23 Aug 2006 11:49:13 +0000 (13:49 +0200)]
Fix previous commit: Only fall back to hashed handles
when there is a duplicate handle error. Not for other errors.
Thomas Hellstrom [Wed, 23 Aug 2006 11:31:45 +0000 (13:31 +0200)]
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into drm-ttm-0-2-branch
Thomas Hellstrom [Wed, 23 Aug 2006 09:31:10 +0000 (11:31 +0200)]
Allow multiple addMaps with the same 32-bit map offset.
(Reported by Dave Airlie)
Thomas Hellstrom [Wed, 23 Aug 2006 09:21:33 +0000 (11:21 +0200)]
Fix hashtab implementation leaking illegal error codes to user space.
(Reported by Dave Airlie)
Thomas Hellstrom [Tue, 22 Aug 2006 09:57:08 +0000 (11:57 +0200)]
More ttm cleanups.
Thomas Hellstrom [Tue, 22 Aug 2006 09:19:53 +0000 (11:19 +0200)]
ttm code cleanup.
Fix the sleep-in-page-table-spinlock bug discovered by Dave Airlie
Thomas Hellstrom [Tue, 22 Aug 2006 08:44:09 +0000 (10:44 +0200)]
Add a fence object class field for future use (For example VSYNC fence objects)
Thomas Hellstrom [Tue, 22 Aug 2006 08:24:48 +0000 (10:24 +0200)]
Initial i915 buffer object driver
Thomas Hellstrom [Tue, 22 Aug 2006 08:09:57 +0000 (10:09 +0200)]
AGP backends for TTM.
Thomas Hellstrom [Tue, 22 Aug 2006 07:47:33 +0000 (09:47 +0200)]
Bring in stripped TTM functionality.
Thomas Hellstrom [Mon, 21 Aug 2006 19:37:43 +0000 (21:37 +0200)]
Allow longer sequence lifetimes.
Thomas Hellstrom [Mon, 21 Aug 2006 19:36:00 +0000 (21:36 +0200)]
i915 fence object driver implementing 2 fence object types:
0x00 EXE fence. Signals when command stream interpreter has reached the point
where the fence was emitted.
0x01 FLUSH fence. Signals when command stream interpreter has reached the point
where the fence was emitted, and all previous drawing operations have been
completed and flushed.
Implements busy wait (for fastest response time / high CPU) and
lazy wait (User interrupt or timer driven).
Thomas Hellstrom [Mon, 21 Aug 2006 19:12:29 +0000 (21:12 +0200)]
Remove some accidently included TTM code.
Thomas Hellstrom [Mon, 21 Aug 2006 19:04:36 +0000 (21:04 +0200)]
Add missing fence type define.
Add drm_fence.o to Makefile
Thomas Hellstrom [Mon, 21 Aug 2006 19:02:08 +0000 (21:02 +0200)]
User / Kernel space fence objects (device-independent part).
Thomas Hellstrom [Mon, 21 Aug 2006 18:38:57 +0000 (20:38 +0200)]
Backwards compatibility code for ttms.
Thomas Hellstrom [Mon, 21 Aug 2006 18:30:19 +0000 (20:30 +0200)]
Generic DRM support base-class support for user-space objects, like
fence objects and buffer objects:
Refcounting,
Inter-process sharing,
Synchronization
Destruction.
Thomas Hellstrom [Mon, 21 Aug 2006 15:02:44 +0000 (17:02 +0200)]
Avoid using vmalloc for small hash tables.
Thomas Hellstrom [Wed, 16 Aug 2006 14:36:56 +0000 (16:36 +0200)]
Remove hash tables on DRM exit.
Thomas Hellstrom [Mon, 14 Aug 2006 15:11:14 +0000 (17:11 +0200)]
Avoid kernel oops in some error paths calling drm_lastclose().
Dave Airlie [Mon, 14 Aug 2006 01:52:34 +0000 (11:52 +1000)]
remove all TRUE instances as well
Dave Airlie [Mon, 14 Aug 2006 01:49:52 +0000 (11:49 +1000)]
remove all TRUE/FALSE no need for this in the drm, use 0 or 1
Dave Airlie [Thu, 10 Aug 2006 04:38:50 +0000 (14:38 +1000)]
i965 code and Linux coding style < 0
smack my whitespace up.
Dave Airlie [Thu, 10 Aug 2006 04:32:18 +0000 (14:32 +1000)]
cleanup some whitespace issue and move compat code to compat header
Dave Airlie [Thu, 10 Aug 2006 04:31:56 +0000 (14:31 +1000)]
clean up script to create an lk drm directory
Dave Airlie [Thu, 10 Aug 2006 04:31:22 +0000 (14:31 +1000)]
drm: ati_pcigart cleanup
use NULL instead of 0, cleanup some whitespace
Alan Hourihane [Tue, 8 Aug 2006 22:05:54 +0000 (15:05 -0700)]
Add support for Intel i965G chipsets.
This is a patch prepared by Guangdeng Liao based off of Tungsten Graphics's
final code drop.
Dave Airlie [Mon, 7 Aug 2006 11:34:40 +0000 (21:34 +1000)]
drm: whitespace cleanup in new files
Dave Airlie [Mon, 7 Aug 2006 11:00:13 +0000 (21:00 +1000)]
drm: remove extra whitespace from drm_mm.c
Dave Airlie [Mon, 7 Aug 2006 10:56:38 +0000 (20:56 +1000)]
drm: fixup whitespace and style for Linux kernel import
Michel Dänzer [Wed, 26 Jul 2006 16:21:32 +0000 (18:21 +0200)]
Revert "Make sure busmastering gets disabled on module unload."
This reverts
af7b89d7246efbed7d05c38fcaa6a13c4b89db90 commit. It causes an oops
on X server shutdown here, and for the reporter of bug #7629 as well.
Michel Dänzer [Wed, 26 Jul 2006 16:14:20 +0000 (18:14 +0200)]
Bug #7629: Fix for CHIP_IS_AGP getting 'restored' with non-AGP cards
Commit
2a47f6bfecea5dabcbf79d5e1aaf271f50070b89 caused the CHIP_IS_AGP flag to
get 'restored' with PCI(e) cards. I can't think of a way to fix this without
introducing a (otherwise redundant) CHIP_IS_PCI flag.
Dave Airlie [Mon, 24 Jul 2006 01:09:41 +0000 (11:09 +1000)]
remove incorrect exit marking on cleanup pci as this is called from other paths
Dave Airlie [Mon, 24 Jul 2006 00:51:27 +0000 (10:51 +1000)]
switch drm to use Linux mutexes instead of semaphore.
I hope the fallback compat code works if not shout at me.
Adam Jackson [Wed, 19 Jul 2006 20:19:25 +0000 (16:19 -0400)]
Delete the pre-core DRM code with extreme prejudice.
Adam Jackson [Wed, 19 Jul 2006 19:35:31 +0000 (15:35 -0400)]
Make sure busmastering gets disabled on module unload.
Michel Dänzer [Wed, 19 Jul 2006 17:18:32 +0000 (19:18 +0200)]
Use RADEON_RB3D_DSTCACHE_CTLSTAT instead of RADEON_RB2D_DSTCACHE_CTLSTAT.
The latter seems to be a read-only mirror of the former.
Michel Dänzer [Wed, 19 Jul 2006 17:16:26 +0000 (19:16 +0200)]
Make sure CHIP_IS_AGP flag is set when not overriding to PCI mode.
This allows using AGP after overriding to PCI mode in a previous session
without reloading the DRM.
Michel Dänzer [Wed, 19 Jul 2006 17:13:00 +0000 (19:13 +0200)]
When writeback isn't used, actually disable it in the hardware.
Not doing this might waste bus bandwidth or even cause memory corruption or
system crashes on systems that check bus transfers. No such incident has been
reported though.
Michel Dänzer [Wed, 19 Jul 2006 17:07:06 +0000 (19:07 +0200)]
Implement RADEON_PARAM_SCRATCH_OFFSET getparam.
When this succeeds, userspace can read the scratch register contents from the
mapped writeback page directly.
Michel Dänzer [Wed, 19 Jul 2006 17:01:33 +0000 (19:01 +0200)]
Some debug output when the getparam ioctl is called with an unknown parameter.
Michel Dänzer [Wed, 19 Jul 2006 16:31:43 +0000 (18:31 +0200)]
.cvsignore -> .gitignore
Sort the merged file, remove the redundant explicit .ko lines and add
some generated symlinks.
Thomas Hellstrom [Tue, 11 Jul 2006 14:37:37 +0000 (14:37 +0000)]
Keep hashed user tokens, with the following changes:
32-bit physical device addresses are mapped directly to user-tokens. No
duplicate maps are allowed, and the addresses are assumed to be outside
of the range 0x10000000 through 0x30000000. The user-token is identical
to the 32-bit physical start-address of the map.
64-bit physical device addressed are mapped to user-tokens in the range
0x10000000 to 0x30000000 with page-size increments. The user_token should
not be interpreted as an address.
Other map types, like upcoming TTM maps are mapped to user-tokens in the
range
0x10000000 to 0x30000000 with page-size increments. The user_token should
not be interpreted as an address.
This keeps compatibility with buggy drivers, while still implementing a
hashed map lookup. The SiS and via device driver major bumps are
reverted.
Thomas Hellstrom [Mon, 10 Jul 2006 13:00:21 +0000 (13:00 +0000)]
Change drm Map handles to be arbitrary 32-bit hash tokens in the range
0x10000000 to 0x90000000 in PAGE_SIZE increments.
Implement hashed map lookups.
This potentially breaks both 2D and 3D drivers. If so, the corresponding
2D and 3D driver should be fixed, and it's corresponding drm device driver
should have its major bumped as soon as possible.
Bump sis and via drm device driver majors.
The SiS and Unichrome 3D drivers are fixed in Mesa CVS HEAD and
mesa_6_4_branch.
Thomas Hellstrom [Wed, 5 Jul 2006 15:52:35 +0000 (15:52 +0000)]
SiS 315 Awareness.
Thomas Hellstrom [Wed, 5 Jul 2006 14:39:22 +0000 (14:39 +0000)]
Add missing semaphore release.
Adam Jackson [Tue, 27 Jun 2006 21:04:50 +0000 (21:04 +0000)]
Disable building static libraries. Bump to 2.0.2 for header updates.
Alan Hourihane [Fri, 23 Jun 2006 16:29:39 +0000 (16:29 +0000)]
Fix compilation problem on 2.6.9 kernels (bug #6211)
Keith Packard [Thu, 22 Jun 2006 21:34:44 +0000 (21:34 +0000)]
Remove spurious debug messages from i915 vblank config paths
Keith Packard [Wed, 21 Jun 2006 00:15:10 +0000 (00:15 +0000)]
i915: Save vblank pipe configuration to restore on resume
Keith Packard [Mon, 19 Jun 2006 20:15:53 +0000 (20:15 +0000)]
Add i915 ioctls to configure pipes for vblank interrupt.
i915 vblanks can be generated from either pipe a or b, however a disabled
pipe generates no interrupts. This change allows the X server to select
which pipe generates vblank interrupts.
Thomas Hellstrom [Mon, 19 Jun 2006 09:12:50 +0000 (09:12 +0000)]
Fix buffer cleanup on close. Move memory manager reset from final_context
to lastclose.
Thomas Hellstrom [Mon, 19 Jun 2006 09:01:31 +0000 (09:01 +0000)]
via: Bump version number and date.
Thomas Hellstrom [Fri, 16 Jun 2006 15:20:20 +0000 (15:20 +0000)]
via: Return the requested size instead of the correct size of the allocated
regions. The 2D driver and XvMC lib has problems when the returned size
is not the same as the allocated size.
Thomas Hellstrom [Thu, 15 Jun 2006 18:37:05 +0000 (18:37 +0000)]
via:
-Remove out of memory error message.
-Move sman cleanup from final_context to lastclose.
-Add the P4VM800PRO (?) PCI ID.
Thomas Hellstrom [Tue, 6 Jun 2006 17:52:03 +0000 (17:52 +0000)]
s/list_entry/drm_hash_entry/ for "drm_hash_item"s.
Thomas Hellstrom [Tue, 6 Jun 2006 17:46:17 +0000 (17:46 +0000)]
Fix drm_remove_magic potential memory leak / corruption. Move drm
authentication token hashing to new generic hash table implementation.
Thomas Hellstrom [Tue, 6 Jun 2006 14:19:00 +0000 (14:19 +0000)]
Merge in the drm-sman-branch
Thomas Hellstrom [Sun, 28 May 2006 16:20:29 +0000 (16:20 +0000)]
file via_mm.c was initially added on branch drm-sman-branch.
Thomas Hellstrom [Sun, 28 May 2006 16:20:29 +0000 (16:20 +0000)]
file drm_sman.h was initially added on branch drm-sman-branch.
Thomas Hellstrom [Sun, 28 May 2006 16:20:29 +0000 (16:20 +0000)]
file sis_mm.c was initially added on branch drm-sman-branch.