Thomas Hellstrom
191e284709
More bugfixes.
...
Disable the i915 IRQ turnoff for now since it seems to be causing problems.
2006-09-12 12:01:00 +02:00
Thomas Hellstrom
99acb79366
Various bugfixes.
2006-09-08 17:24:38 +02:00
Thomas Hellstrom
6042153968
Fence all unfenced buffers function.
2006-09-05 18:00:25 +02:00
Thomas Hellstrom
034fc31292
i915: Only turn on user IRQs when they are needed.
2006-09-05 14:23:18 +02:00
Thomas Hellstrom
8c613a8363
Fix memory cache initialization.
2006-09-05 11:00:52 +02:00
Thomas Hellstrom
550f51b4bf
Buffer object wait IOCTL operation.
...
Remove option to wait for fence / buffers and block signals.
2006-09-04 21:50:12 +02:00
Thomas Hellstrom
a6b8e3eaf4
Make memory caches global so that they can be used with
...
multiple heads.
2006-09-04 16:57:20 +02:00
Thomas Hellstrom
a96b61fdc4
Lindent drm_bo.c
2006-09-01 18:11:34 +02:00
Thomas Hellstrom
405b5d9ca8
Flag bit pattern bugfixes. Remove some error messages.
2006-09-01 18:11:05 +02:00
Thomas Hellstrom
ef8e618cf3
Export buffer info on map and validate ioctls.
...
Add an info ioctl operation.
2006-09-01 16:38:06 +02:00
Thomas Hellstrom
11f51a9a87
Bugfixes,
...
Memory allocation optimizations.
Buffer manager takedown.
2006-09-01 15:41:55 +02:00
Thomas Hellstrom
4edb95d6e0
Various bugfixes.
2006-09-01 11:23:21 +02:00
Thomas Hellstrom
44f6d08988
Validation and fencing.
2006-08-31 21:42:29 +02:00
Thomas Hellstrom
03c137c5f8
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.
2006-08-31 15:36:40 +02:00
Thomas Hellstrom
ec8c79b79d
More mapping synchronization.
...
libdrm validate and fencing functions.
2006-08-31 14:10:13 +02:00
Thomas Hellstrom
ed9de124cc
Lindenting drm_bo.c and drm_ttm.c
2006-08-30 21:31:38 +02:00
Thomas Hellstrom
914a77a15a
Buffer object binding.
...
Some code reordering.
2006-08-30 21:30:47 +02:00
Thomas Hellstrom
611662ab28
Buffer eviction.
...
Reworked map refcounting so that any process waiting on buffer object unmap
will allow in other processes to unmap the buffer object.
2006-08-30 20:23:40 +02:00
Thomas Hellstrom
d39055174b
Remove the buffer object hint field and use it only
...
as an argument.
Validate stub.
2006-08-30 17:40:07 +02:00
Thomas Hellstrom
14a835be61
Buffer object mapping and mapping synchronization for multiple clients.
2006-08-30 15:08:40 +02:00
Thomas Hellstrom
e47a4fda2e
Memory manager init and takedown.
2006-08-30 13:04:08 +02:00
Thomas Hellstrom
033bda07e9
Buffer object reply fill in.
...
Lindent of drm_bo.c drm_ttm.c
2006-08-30 09:57:35 +02:00
Thomas Hellstrom
23f01c9fe8
Checkpoint commit. Buffer object flags and IOCTL argument list.
2006-08-29 18:40:08 +02:00
Thomas Hellstrom
0dedfc2cd0
Checkpoint ttm addition to buffer objects.
2006-08-29 14:52:02 +02:00
Thomas Hellstrom
279e8d26c6
64-bit IOCTL integer (Michel Dnzer & Brian Paul)
2006-08-29 10:45:34 +02:00
Thomas Hellstrom
2057406470
Buffer object creation.
2006-08-28 17:51:53 +02:00
Thomas Hellstrom
0d67356de4
Proper TTM dereferencing
...
Initial buffer object creation.
2006-08-28 16:36:37 +02:00
Thomas Hellstrom
05536a6478
Buffer object idle and mapping synchronization.
2006-08-28 13:51:39 +02:00
Thomas Hellstrom
480ea65ee4
Checkpoint buffer object IOCTL stub.
2006-08-28 10:58:21 +02:00
Thomas Hellstrom
e181f594a4
Add a 64-bit drm unsigned type for 64-bit clean IOCTLS.
...
Conversion functions in drmP.h and xf86drm.c.
2006-08-28 09:49:09 +02:00
Thomas Hellstrom
4ddabd1562
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into drm-ttm-0-2-branch
...
Conflicts:
linux-core/drmP.h
2006-08-28 09:28:10 +02:00
Dave Airlie
9b984b34e9
drm: lots of small cleanups and whitespace issues fixed up
...
remove a mach64 warning, align a lot of things from linux kernel
2006-08-28 11:31:43 +10:00
Dave Airlie
60ddaaf2e0
add static function, and remove bad attributions
2006-08-28 11:28:38 +10:00
Dave Airlie
3586ecd060
fix const pointer warnings with file_operations
2006-08-28 11:27:13 +10:00
Dave Airlie
205c573e44
remove local copies of pci domain/bus/slot/num
2006-08-28 11:27:09 +10:00
Dave Airlie
b4feb2c04e
remove some DRM_ARRAY_SIZE from linux core code
2006-08-28 11:27:05 +10:00
Dave Airlie
3a91e1a5fb
fixup some of the comments in drm_context.c
2006-08-28 11:27:01 +10:00
Dave Airlie
27c72b67ec
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>
2006-08-28 11:26:57 +10:00
Thomas Hellstrom
886d3b3061
Bugfixes.
2006-08-27 22:01:33 +02:00
Thomas Hellstrom
b4b7b99760
Remove the ioctl multiplexing, and instead allow for generic
...
drm ioctls 0x80 - 0xFF.
2006-08-27 21:16:13 +02:00
Thomas Hellstrom
ac26b51503
Have TTM create and reference ioctl call return the actual TTM size.
2006-08-27 19:45:38 +02:00
Thomas Hellstrom
4fa58aa152
Add TTM map handle on reference.
2006-08-27 19:07:38 +02:00
Thomas Hellstrom
65e7274008
ttm create / destroy / ref / unref ioctl.
2006-08-27 19:03:20 +02:00
Thomas Hellstrom
c488e25ceb
More ioctl stubs.
...
Buffer object locking order documentation.
2006-08-25 20:03:39 +02:00
Thomas Hellstrom
35c8ce6c29
ttm and buffer objects ioctl stubs.
2006-08-25 19:03:42 +02:00
Thomas Hellstrom
1d3cf107d2
Module protection map access is moving into mainline kernels.
...
Update drm_compat accordingly.
(Reported by Dave Airlie)
2006-08-25 18:14:22 +02:00
Thomas Hellstrom
4c03030b12
Checkpoint commit
...
Buffer object code.
2006-08-25 18:05:35 +02:00
Thomas Hellstrom
ea57099973
Fix previous commit: Only fall back to hashed handles
...
when there is a duplicate handle error. Not for other errors.
2006-08-23 13:49:13 +02:00
Thomas Hellstrom
8fa43d4b2f
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into drm-ttm-0-2-branch
2006-08-23 13:31:45 +02:00
Thomas Hellstrom
459b234d79
Allow multiple addMaps with the same 32-bit map offset.
...
(Reported by Dave Airlie)
2006-08-23 11:31:10 +02:00
Thomas Hellstrom
8dfe917cb2
Fix hashtab implementation leaking illegal error codes to user space.
...
(Reported by Dave Airlie)
2006-08-23 11:21:33 +02:00
Thomas Hellstrom
e201511a0f
More ttm cleanups.
2006-08-22 11:57:08 +02:00
Thomas Hellstrom
ca4e34e532
ttm code cleanup.
...
Fix the sleep-in-page-table-spinlock bug discovered by Dave Airlie
2006-08-22 11:19:53 +02:00
Thomas Hellstrom
a6535c8db4
Add a fence object class field for future use (For example VSYNC fence objects)
2006-08-22 10:44:09 +02:00
Thomas Hellstrom
7058d06317
Initial i915 buffer object driver
2006-08-22 10:24:48 +02:00
Thomas Hellstrom
b81ca5e031
AGP backends for TTM.
2006-08-22 10:09:57 +02:00
Thomas Hellstrom
700bf80ca9
Bring in stripped TTM functionality.
2006-08-22 09:47:33 +02:00
Thomas Hellstrom
8d5b7c77f9
Allow longer sequence lifetimes.
2006-08-21 21:37:43 +02:00
Thomas Hellstrom
e089de33e8
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).
2006-08-21 21:36:00 +02:00
Thomas Hellstrom
6571f74a49
Remove some accidently included TTM code.
2006-08-21 21:12:29 +02:00
Thomas Hellstrom
657bacc395
Add missing fence type define.
...
Add drm_fence.o to Makefile
2006-08-21 21:04:36 +02:00
Thomas Hellstrom
166da9355d
User / Kernel space fence objects (device-independent part).
2006-08-21 21:02:08 +02:00
Thomas Hellstrom
1c787f0d39
Backwards compatibility code for ttms.
2006-08-21 20:38:57 +02:00
Thomas Hellstrom
42c2cfcf7d
Generic DRM support base-class support for user-space objects, like
...
fence objects and buffer objects:
Refcounting,
Inter-process sharing,
Synchronization
Destruction.
2006-08-21 20:30:19 +02:00
Thomas Hellstrom
11f9e404fb
Avoid using vmalloc for small hash tables.
2006-08-21 17:02:44 +02:00
Thomas Hellstrom
0316f93d51
Remove hash tables on DRM exit.
2006-08-16 16:36:56 +02:00
Thomas Hellstrom
4daa024918
Avoid kernel oops in some error paths calling drm_lastclose().
2006-08-14 17:11:14 +02:00
Dave Airlie
0d60cd0036
remove all TRUE instances as well
2006-08-14 11:52:34 +10:00
Dave Airlie
18a48a9267
remove all TRUE/FALSE no need for this in the drm, use 0 or 1
2006-08-14 11:49:52 +10:00
Dave Airlie
5340a70227
cleanup some whitespace issue and move compat code to compat header
2006-08-10 14:32:18 +10:00
Dave Airlie
28069ff10f
drm: ati_pcigart cleanup
...
use NULL instead of 0, cleanup some whitespace
2006-08-10 14:31:22 +10:00
Dave Airlie
e524028630
drm: whitespace cleanup in new files
2006-08-07 21:34:40 +10:00
Dave Airlie
4b3ea90bc4
drm: remove extra whitespace from drm_mm.c
2006-08-07 21:00:13 +10:00
Dave Airlie
248d1a32a2
drm: fixup whitespace and style for Linux kernel import
2006-08-07 20:56:38 +10:00
Dave Airlie
09c901e4bd
remove incorrect exit marking on cleanup pci as this is called from other paths
2006-07-24 11:09:41 +10:00
Dave Airlie
5cfbd5dbab
switch drm to use Linux mutexes instead of semaphore.
...
I hope the fallback compat code works if not shout at me.
2006-07-24 10:51:27 +10:00
Michel Dänzer
b9243ce3d5
.cvsignore -> .gitignore
...
Sort the merged file, remove the redundant explicit .ko lines and add
some generated symlinks.
2006-07-19 18:31:43 +02:00
Thomas Hellstrom
126673d62a
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.
2006-07-11 14:37:37 +00:00
Thomas Hellstrom
a392349691
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.
2006-07-10 13:00:21 +00:00
Thomas Hellstrom
c21a7b763a
SiS 315 Awareness.
2006-07-05 15:52:35 +00:00
Thomas Hellstrom
264f60ded4
Add missing semaphore release.
2006-07-05 14:39:22 +00:00
Alan Hourihane
aafedbf7c5
Fix compilation problem on 2.6.9 kernels (bug #6211 )
2006-06-23 16:29:39 +00:00
Thomas Hellstrom
58b63ee5cc
Fix buffer cleanup on close. Move memory manager reset from final_context
...
to lastclose.
2006-06-19 09:12:50 +00:00
Thomas Hellstrom
0203edaa21
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.
2006-06-16 15:20:20 +00:00
Thomas Hellstrom
ca1a77683d
via:
...
-Remove out of memory error message.
-Move sman cleanup from final_context to lastclose.
-Add the P4VM800PRO (?) PCI ID.
2006-06-15 18:37:05 +00:00
Thomas Hellstrom
6c7faf5814
s/list_entry/drm_hash_entry/ for "drm_hash_item"s.
2006-06-06 17:52:03 +00:00
Thomas Hellstrom
1a9e5bae10
Fix drm_remove_magic potential memory leak / corruption. Move drm
...
authentication token hashing to new generic hash table implementation.
2006-06-06 17:46:17 +00:00
Thomas Hellstrom
6bacb180ce
Merge in the drm-sman-branch
2006-06-06 14:19:00 +00:00
Dave Airlie
79e5969172
rip out unneeded back compat code
2006-05-19 04:11:22 +00:00
Dave Airlie
d365f03129
fixup GFP_COMP for older kernels and get_page/put_page for newer
2006-04-23 09:05:05 +00:00
Dave Airlie
4f53bf3545
remove stupid init and exit flags..
2006-04-05 01:23:57 +00:00
Dave Airlie
ac5bd25208
make add context non master...
2006-04-03 08:06:51 +00:00
Dave Airlie
6bb92ab086
fix issue in mga from kernel
2006-03-19 07:53:46 +00:00
Dave Airlie
9c0634bbad
set dma pages reserved
2006-02-21 11:10:05 +00:00
Dave Airlie
abd3904bf0
use coherent memory for PCI allocations with COMP flag
2006-02-21 10:28:47 +00:00
Dave Airlie
0a211db23c
experimental PCI DMA fixes use proper Linux interfaces
2006-02-19 12:08:14 +00:00
Dave Airlie
a25667894a
make some functions static from the kernel
2006-02-18 05:43:19 +00:00
Dave Airlie
b2523e7aa1
always enable and set master on pci device
2006-02-18 04:18:45 +00:00
Dave Airlie
08fafc424a
fix build wrong function call
2006-02-18 03:01:38 +00:00
Dave Airlie
4791dc8856
major realigment of DRM CVS with kernel code, makes integration much easier
2006-02-18 02:53:36 +00:00