Thomas Hellstrom
d34b2c7b9e
Fix refcounting / lock race.
...
Reported by Steve Wilkins / Michel Dänzer.
2007-06-15 10:26:51 +02:00
Thomas Hellstrom
e1b8eabeee
Locking fixes and instrumentation.
2007-06-15 10:26:51 +02:00
Thomas Hellstrom
62082ab3e6
Make sure we read fence->signaled while spinlocked.
2007-06-13 15:38:59 +02:00
Thomas Hellstrom
5156f1c897
Fix fence object deref race.
2007-06-13 15:19:30 +02:00
Thomas Hellstrom
f984b1b8d1
Fix some obvious bugs.
2007-06-12 12:30:33 +02:00
Thomas Hellstrom
b6b5df24b9
Try to make buffer object / fence object ioctl args 64-bit safe.
...
Introduce tile members for future tiled buffer support.
Allow user-space to explicitly define a fence-class.
Remove the implicit fence-class mechanism.
64-bit wide buffer object flag member.
2007-06-12 12:21:38 +02:00
Dave Airlie
280083d4a2
use krh's idr mods to remove lists from idr code
2007-06-10 15:40:21 +10:00
Dave Airlie
7426da7538
oops must fix this properly at some point
2007-06-07 18:45:00 +10:00
Dave Airlie
e22f428f5f
drm: fix radeon setparam alignment issues on 32/64-bit
2007-06-07 18:41:18 +10:00
Dave Airlie
5bd0ca125e
remove include of linux ioctl32.h from drm drivers
2007-06-05 18:16:44 +10:00
root
a4cddc6596
Revert "drm: add new drm_wait_on function to replace macro"
...
This reverts commit 6e860d08d0
.
As I said not a good plan - this macro will have to stay for now,
trying to do the vbl code with the inline was a bit messy - may need specialised
drm wait on functions
2007-06-03 18:12:28 +10:00
Dave Airlie
4e9d215bdf
radeon: add support for vblank on crtc2
...
This add support for CRTC2 vblank on radeon similiar to the i915 support
2007-06-03 16:28:21 +10:00
Dave Airlie
638c8087de
drm: fixup initialisation of list heads and idr
2007-06-01 19:00:24 +10:00
Dave Airlie
056c2f249a
drm: move context handling code to use linux idr
2007-05-27 08:44:38 +10:00
Dave Airlie
f64674743a
drm: convert drawable handling to use Linux idr
...
This cleans this code up a lot and uses the generic Linux idr which is
designed for this.
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-27 07:26:52 +10:00
Michel Dänzer
8e083c522e
drm: make sure the drawable code doesn't call malloc(0).
...
Signed-off-by: Michel Dänzer <michel@tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-26 04:35:54 +10:00
Dave Airlie
58b2ed7832
Revert "drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls."
...
This reverts commit 3fdef0dc20
.
ditto not on master yet
2007-05-26 03:48:08 +10:00
Dave Airlie
375f3f2884
Revert "drm/ttm: cleanup most of fence ioctl split out"
...
This reverts commit 3dfc1400e9
.
this shouldn't have gone on master yet
2007-05-26 03:47:48 +10:00
Dave Airlie
ce58e53a01
whitespace fixups from kernel
2007-05-26 03:32:34 +10:00
Dave Airlie
adee6f52e6
ati_pcigart: cut to 80 chars
2007-05-26 03:32:34 +10:00
Dave Airlie
3dfc1400e9
drm/ttm: cleanup most of fence ioctl split out
2007-05-26 03:32:34 +10:00
Dave Airlie
3fdef0dc20
drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls.
...
This is the first bunch of ioctls
2007-05-26 03:32:34 +10:00
Dave Airlie
7b48f0022a
drm: cleanup use of Linux list handling macros
...
This makes the drms use of the list handling macros a lot cleaner
and more along the lines of how they should be used.
2007-05-26 04:26:24 +10:00
Stephane Marchesin
ea98d7e796
nouveau: don't build the module by default
2007-05-17 17:35:51 +02:00
Dave Airlie
b2a875ba89
ttm: complete drm buffer object ioctl split
...
retain the op operation for validate/fence operations
2007-05-08 18:25:15 +10:00
Dave Airlie
ae677472af
drm/ttm: remove old fence ioctl
2007-05-08 17:55:57 +10:00
Dave Airlie
25c51f539f
drm/ttm: ioctl cleanup for buffer object - user side only
...
This just cleans up the xf86drm.c to what I want and drm.h,
I need to fix up the kernel internals to suit these changes now.
I've moved to using struct instead of typedefs for the bo and it doesn't look
that bad so I'll do the same thing for mm and fence..
2007-05-08 17:53:58 +10:00
Brian
c4e2caec44
s/OJBECTS/OBJECTS/
2007-05-06 10:09:59 -06:00
Dave Airlie
6a62941eca
drm/ttm: cleanup most of fence ioctl split out
2007-05-06 11:35:11 +10:00
Dave Airlie
ee8954cb53
drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls.
...
This is the first bunch of ioctls
2007-05-06 11:17:30 +10:00
Dave Airlie
c9cd2c768b
drm: remove unused define DRM_HAS_TTM
2007-05-06 10:50:10 +10:00
Dave Airlie
6e860d08d0
drm: add new drm_wait_on function to replace macro
2007-04-28 15:07:43 +10:00
Dave Airlie
e9b3acd257
remove register usage
2007-04-28 15:07:43 +10:00
Dave Airlie
9f9c19065c
remove DRM_GETSAREA and replace with drm_getsarea function
2007-04-28 15:07:43 +10:00
George Sapountzis
3a2c9f4621
linux: minor indent.
2007-04-26 14:16:28 +03:00
Dave Airlie
afc029e935
whitespace cleanup
2007-04-26 16:25:43 +10:00
Dave Airlie
e5c1f1caa2
remove some whitespace violation
2007-04-26 16:22:28 +10:00
Dave Airlie
4b72759b30
drm: nopfn warning on 64-bit
2007-04-26 16:22:11 +10:00
Jesse Barnes
71d44cda52
drm/ttm: allow drm_buffer_object_create to be used in-kernel
2007-04-26 16:09:24 +10:00
Jesse Barnes
3c384a9ad5
Add new buffer object type for kernel allocations that don't initially have a user mapping.
...
(cherry picked from commit 2e21779992
)
2007-04-26 16:04:09 +10:00
Kristian Høgsberg
af3ffcd822
Initialize rwlock using rwlock_init to appease lockdep validator.
2007-04-20 18:06:31 -04:00
Thomas Hellstrom
a8a8108e45
Avoid a fence timeout problem when a signal is pending.
2007-04-20 15:57:41 +02:00
Thomas Hellstrom
1ce9c09231
Fix via compile error
...
(Reported by Benno Schulenberg.)
2007-04-20 15:49:31 +02:00
Thomas Hellstrom
2df2c70e20
Simplify the ttm backend interface and the agp ttm backend.
2007-04-18 16:33:28 +02:00
Thomas Hellstrom
5a96d59ce9
Don't always free up memory space when we unpin buffers.
2007-04-17 14:15:37 +02:00
Thomas Hellstrom
5432cc4abf
Fix buffer object reference problems.
...
(Reported by Dave Airlie).
2007-04-17 10:53:19 +02:00
Thomas Hellstrom
e91ceff6c9
Add a code comment.
2007-04-17 08:46:45 +02:00
Thomas Hellstrom
e6e4946c82
Require the hardware lock for buffer creation
...
(since that implies a validate).
Fix drm_bo_wait_unfenced error messages and codes.
Fix some return codes from libdrm.
2007-04-16 16:23:05 +02:00
Dave Airlie
a70f8e0ab2
radeon: add support for reverse engineered xpress200m
...
The IGPGART setup code was traced using mmio-trace on fglrx by myself
and Phillip Ezolt <phillipezolt@gmail.com> on dri-devel.
This code doesn't let the 3D driver work properly as the card has no
vertex shader support.
Thanks to Matthew Garrett + Ubuntu for providing me some hardware to do this
work on.
2007-04-09 21:52:59 +10:00
Dave Airlie
b25558bb73
fixup install target, not sure what I was smokin...
2007-04-07 07:21:05 +10:00
Dave Airlie
9c79371659
add an install target to the drm modules makefile
2007-04-05 11:18:00 +10:00
Thomas Hellstrom
c496827921
Fix user object reference when caller is not object creator.
...
(Reported by Dave Airlie).
2007-04-03 10:54:23 +02:00
Thomas Hellstrom
38d18acb8f
Add a fence flush event to each fence-signaled check when lazy-waiting
...
to make sure we don't lose any sequence numbers if, for some reason,
they don't generate an IRQ.
2007-04-03 10:29:15 +02:00
Thomas Hellstrom
7743af9449
Evicted no-move buffers can get lost if they end up in another
...
memory type than local.
2007-04-03 10:29:14 +02:00
Thomas Hellstrom
d85e243259
Fix an oops when trying to clean a not yet initialized memory type.
2007-04-03 10:29:14 +02:00
Thomas Hellstrom
72d457fc19
Make sure CMA (Can't map aperture) pages are mapped uncached.
...
(Should really make this write-combined using PATs, at some point).
2007-04-03 10:29:14 +02:00
Dave Airlie
3f70518f0b
drm/bo: avoid oops if the memory manager for this type isn't initialised
2007-03-29 09:25:04 +10:00
Dave Airlie
81b811da37
drm/i915: set the bo up at firstopen time not after DMA init
...
This is required to use TTM to allocate the ring buffer.
2007-03-27 18:01:31 +10:00
Dave Airlie
72a1190f6d
drm/ttm: make sure dev_mapping is set-up for the first opener of the drm
...
This was causing an oops in my miniglx code to try and use a TTM-only setup.
2007-03-27 17:59:30 +10:00
Ben Skeggs
674cefd4fe
nouveau: move card initialisation into the drm
...
The PGRAPH init for the various cards will need cleaning up at some point,
a lot of the values written there are per-context state left over from the
all the hardcoding done in the ddx.
It's possible some cards get broken by this commit, let me know.
Tested on: NV5, NV18, NV28, NV35, NV40, NV4E
2007-03-26 20:59:37 +10:00
Dave Airlie
5ad43f4675
vm: cleanup drm_vm.c along lines of cleanups queued for kernel
2007-03-24 17:58:27 +11:00
Dave Airlie
8d918b0b63
cleanup more whitespace from ttm merge
2007-03-23 14:56:39 +11:00
Dave Airlie
39795501a8
drm: remove second spinlock init for tasklet lock
2007-03-23 14:56:28 +11:00
Dave Airlie
209870a882
rename badly named define
2007-03-20 10:13:58 +11:00
Alan Hourihane
ef71b6230b
remove i830 reference
2007-03-19 11:46:35 +00:00
Alan Hourihane
cbe31d0dc7
Remove old i830 kernel driver.
2007-03-19 11:46:35 +00:00
Dave Airlie
1e77e52755
more return values fixup
2007-03-19 09:20:04 +11:00
Dave Airlie
46fac17082
fixup return values in drm ioctl
2007-03-19 09:12:08 +11:00
Dave Airlie
c991f8e049
cleanup ioctl expansion code
2007-03-19 08:46:39 +11:00
Dave Airlie
a2e3bae8e2
oops missing else
2007-03-19 08:46:25 +11:00
Dave Airlie
bbb6fc9307
make drm fops const from kernel
2007-03-19 08:36:01 +11:00
Dave Airlie
483f6a113d
use ARRAY_SIZE
2007-03-19 08:32:25 +11:00
Dave Airlie
2d7ecb8422
more tab/space conversion
2007-03-19 08:29:07 +11:00
Dave Airlie
2463b03cb4
whitespace cleanup pending a kernel merge
2007-03-19 08:23:43 +11:00
Dave Airlie
6c4428d40c
clean up more of inline functions agp_remap/drm_lookup_map
2007-03-19 08:09:21 +11:00
Dave Airlie
27197d7836
deinline agp_remap along lines of kernel
2007-03-18 21:45:07 +11:00
Dave Airlie
c4808e206b
remove drm_lookup_map unused now
2007-03-18 21:42:48 +11:00
Maarten Maathuis
6a60b47d12
replace instance of SA_SHIRQ with IRQF_SHARED
...
backwards compat added by airlied
2007-03-11 12:13:58 +11:00
Dave Airlie
c9178c3d01
ati: make pcigart code able to handle variable size PCI GART aperture
...
This code doesn't enable a variable aperture it just modifies the codebase
to allow me fix it up later
2007-03-04 18:16:29 +11:00
Jay Estabrook
6a51da7325
Fix Alpha domain/bus issue
2007-02-27 08:56:20 +00:00
Thomas Hellstrom
80468e7532
Fix build for 2.6.21-rc1.
...
The vm subsystem of 2.6.21 is fully compatible with the buffer object
vm code.
2007-02-26 18:17:54 +01:00
Thomas Hellstrom
2b7a9afa09
Some fencing cleanup.
2007-02-22 17:04:20 +01:00
Dave Airlie
a253de2fcf
drm: remove last usage of VM_OFFSET
2007-02-18 17:59:40 +11:00
Thomas Hellstrom
6d8ed5aedd
Leftover files from previous commit.
2007-02-16 20:25:26 +01:00
Thomas Hellstrom
e0f53e59be
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.
2007-02-16 20:22:24 +01:00
Thomas Hellstrom
7766378d97
Initial support for fence object classes.
...
(Fence objects belonging to different command submission mechanisms).
2007-02-15 12:11:38 +01:00
Michel Dänzer
7803977aa9
Fix build against older kernels.
2007-02-15 09:26:16 +01:00
Thomas Hellstrom
a78f70faad
Merge branch 'ttm-vram-0-1-branch'
2007-02-14 15:33:40 +01:00
Thomas Hellstrom
35eb12d8bf
Fix multiple spinlock unlocking
2007-02-14 15:32:08 +01:00
Thomas Hellstrom
1345076c8f
Rename drm_ttm.h to drm_objects.h
...
Fix up some header incompatibilities in drm_fence.c caused by the previous
commit.
2007-02-14 14:10:10 +01:00
Thomas Hellstrom
8ffc1844b0
Move fence- and buffer-object related header stuff to drm_ttm.h
2007-02-14 14:05:40 +01:00
Thomas Hellstrom
5c9a7b0f94
Remove an intel-specific hack and replace it with a fence driver callback.
2007-02-14 13:31:35 +01:00
Thomas Hellstrom
04760563b8
Set the drm bus map type for each buffer object memory type.
2007-02-14 12:39:02 +01:00
Thomas Hellstrom
7bcb62b45d
Rework buffer object vm code to use nopfn() for kernels >= 2.6.19.
2007-02-14 10:49:37 +01:00
Thomas Hellstrom
6b289db054
Remove debug printout.
2007-02-13 20:47:30 +01:00
Thomas Hellstrom
e1460426b8
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?
2007-02-13 20:47:30 +01:00
Thomas Hellstrom
9efdae317c
More bugfixes.
...
Fixed memory, pinned buffers and unmappable memory now seems
fully functional.
2007-02-13 20:05:32 +01:00
Adam Jackson
5bd13c5e15
Fix some outdated URLs, remove others.
2007-02-12 15:45:51 -05:00
Thomas Hellstrom
398913dc0e
Lindent.
2007-02-12 20:34:50 +01:00
Thomas Hellstrom
b0c5339ed6
More bugfixes.
2007-02-12 20:32:03 +01:00