Commit Graph

807 Commits (faa46122993bc5970b3d67933bd81d863a3c4762)

Author SHA1 Message Date
Thomas Hellstrom 1c6f0ea43c Activate error message that was never hit since it was masked
by drm_lock_transfer.
Ifdef out drm_lock_transfer. I see no use for it currently. Should be removed.
2006-09-27 19:11:27 +02:00
Thomas Hellstrom f2c03ecae6 Fix racy buffer object destruction. 2006-09-27 19:07:55 +02:00
Thomas Hellstrom c97149b45b Fix tt fixed size that slipped through in previous commit. 2006-09-27 09:31:39 +02:00
Thomas Hellstrom 235f6fc650 Adapt to architecture-specific hooks for gatt pages. 2006-09-27 09:27:31 +02:00
Thomas Hellstrom 26528627a6 Remove the call to drm_lock_transfer, since it is not used anymore.
Fix up drm_lock_free to retain the last locking context information.
2006-09-26 14:40:11 +02:00
Thomas Hellstrom 711f077b74 Allow for a driver to overload the ttm backend object methods. 2006-09-26 14:36:53 +02:00
Thomas Hellstrom 273eb7833d Add /proc filesystem buffer / fence object accounting.
Check for NULL pointer in the i915 flush handler.
Remove i915_sync_flush declaration.
2006-09-25 11:51:08 +02:00
Thomas Hellstrom a02155a0d9 Fix proc formatting broken by last commit.
GPU lockup error reporting.
2006-09-22 09:25:36 +02:00
Felix Kuhling 62f6ea2256 bug 5942: add stubs for drm_mtrr_add/del for non-MTRR configured linux 2006-09-22 03:46:54 +10:00
Thomas Hellstrom fa511a3ff5 Allow for 64-bit map handles of ttms and buffer objects. 2006-09-20 16:31:15 +02:00
Thomas Hellstrom aac918e7c7 Fence handler fix 2006-09-18 21:50:00 +02:00
Thomas Hellstrom ca1b15d645 Alternative implementation of page table zeroing using zap page_range.
(Disabled for now)
Fix bo_wait_idle bug.
Remove stray debug message.
2006-09-18 20:43:31 +02:00
Thomas Hellstrom c4fad4c961 More verbose error reporting in some cases.
Add a buffer object waitIdle user-space function.
Fix some names and minor glitches.
2006-09-18 16:02:33 +02:00
Dave Airlie ef98a8e20d drm: put domain number back to 0, domain support is seriously fubar.. 2006-09-18 21:23:34 +10:00
Thomas Hellstrom f613022cee Allow a "native type" to be associated with a fence sequence.
In the intel case, we can associate a flush with a sequence.
2006-09-15 16:47:09 +02:00
Thomas Hellstrom 49fbeb339c Some bugfixes.
Change the fence object interface somewhat to allow some more flexibility.
Make list IOCTLS really restartable.
Try to avoid busy-waits in the kernel using immediate return to user-space with an -EAGAIN.
2006-09-15 11:18:35 +02:00
Thomas Hellstrom 7223b4e264 Simplify ttm alloc and free. 2006-09-14 16:42:00 +02:00
Thomas Hellstrom 682c6ed029 Remove the use of reserved pages, and use locked pages instead.
Update compatibility for latest linux versions.
2006-09-14 12:17:38 +02:00
Thomas Hellstrom 9adc9584a7 Fix some debug messages. 2006-09-12 17:39:44 +02:00
Thomas Hellstrom 861b26578c Use lazy fence wait when possible even for RW fences. Saves some CPU.
Lindent.
2006-09-12 16:28:34 +02:00
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
Dave Airlie 3cc64a943a drm: use radeon specific names for radeon flags 2006-09-12 06:13:14 +10:00
Thomas Hellstrom 99acb79366 Various bugfixes. 2006-09-08 17:24:38 +02:00
Eric Anholt 55057660f0 Put the PCI device/vendor id in the drm_device_t.
This helps us unbreak FreeBSD DRM from the 965 changes.
2006-09-06 23:25:14 -07: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
Dave Airlie 3cfab681b3 Merge branch 'master' into nouveau-1 2006-08-29 00:01:19 +10: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
Dave Airlie fef9b30a2b initial import of nouveau code from nouveau CVS 2006-08-27 08:55:02 +10: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
Dave Airlie 0afb877a37 drm: lots of small cleanups and whitespace issues fixed up
remove a mach64 warning, align a lot of things from linux kernel
2006-08-19 17:59:18 +10:00
Dave Airlie 78634c14a8 add static function, and remove bad attributions 2006-08-19 16:56:03 +10:00
Dave Airlie d90a55fe34 fix const pointer warnings with file_operations 2006-08-19 16:55:30 +10:00
Dave Airlie 3a681bb4c1 remove local copies of pci domain/bus/slot/num 2006-08-19 16:55:00 +10:00
Dave Airlie cc71393559 remove some DRM_ARRAY_SIZE from linux core code 2006-08-19 16:43:16 +10:00
Dave Airlie 4b38f72672 fixup some of the comments in drm_context.c 2006-08-19 16:36:26 +10:00
Dave Airlie f89a576aec 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-19 16:31:34 +10: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
Dave Airlie 585f34c3e5 fix card unload 2006-02-18 02:38:07 +00:00
Dave Airlie ff9ecc09f9 Fixup test for memory at end of memory space 2006-02-18 02:34:53 +00:00
Alan Hourihane 07e1126bde add missing name, desc, date, major, minor and patchlevel entries 2006-01-26 12:14:09 +00:00
Thomas Hellstrom d394c9fa08 via: direction bug in get_user_pages call in via_dmablit.c fixed. Bumped
minor since this causes the via DDX to fail with vlc video player.
2006-01-12 19:08:16 +00:00
Thomas Hellstrom 661004544c via: Combine PCI DMA transfers with stride==width (Idea from Luc
Verhaegen). A somewhat saner PCI DMA transfer size check. Fix some
    typos. Bump patchlevel.
2006-01-06 11:19:06 +00:00
Dave Airlie 3f23f9b99d nothing from VIA or S3 in this 2006-01-02 09:17:41 +00:00
Dave Airlie 92150972e5 use drm_cards_limit instead of cards_limit 2006-01-02 05:54:10 +00:00
Dave Airlie 781d96c61f use common read/write routines 2006-01-02 05:52:17 +00:00
Dave Airlie 8fef6fe4f0 sparse cleanups 2006-01-02 05:43:04 +00:00
Dave Airlie dcbcc60864 align spacing with kernel 2006-01-02 05:38:03 +00:00
Dave Airlie 42cd50fa90 Realign via driver with changes in Linux kernel (mainly whitespace) 2006-01-02 03:25:49 +00:00
Dave Airlie b14d15ac41 Add vblank support to i915 DRM.. 2005-12-28 23:49:59 +00:00
Dave Airlie be16e93537 Fix from SuSE for issue with context creation failure 2005-12-04 01:24:23 +00:00
Dave Airlie 0db80529d5 Fix from Hugh Dickins for consistent mapping 2005-11-29 09:46:27 +00:00
Thomas Hellstrom c8261e3d24 Loosen via dmablit alignment checks somewhat. Adapt stride check to maximum
sceen size for EXA.
2005-11-15 11:20:47 +00:00
Dave Airlie b5d71f63cd enable i915 32/64 bit ioctls 2005-11-11 12:23:18 +00:00
Dave Airlie eff1b8fbdf i810 should be fine with i810.. no idea what this crack is .. 2005-11-11 10:52:23 +00:00
Dave Airlie cd4a9ad8e2 whitespace align with kernel 2005-11-11 09:21:05 +00:00
Dave Airlie a204d5acb2 realign whitespace with kernel 2005-11-11 09:09:03 +00:00