Patrice Mandin [Thu, 2 Aug 2007 18:08:05 +0000 (20:08 +0200)]
Merge branch 'master' of git+ssh://pmandin@git.freedesktop.org/git/mesa/drm
Patrice Mandin [Thu, 2 Aug 2007 18:06:37 +0000 (20:06 +0200)]
Add libdrm source dir, to build tests from a different build dir
Dave Airlie [Thu, 2 Aug 2007 09:13:45 +0000 (19:13 +1000)]
drm: add unlocked ioctl code path - not used yet
Dave Airlie [Wed, 25 Jul 2007 04:32:15 +0000 (14:32 +1000)]
drm/fence: shut up lockdep
Dave Airlie [Mon, 30 Jul 2007 23:22:45 +0000 (09:22 +1000)]
drm: fix fencing refcount error
This extra increase was causing fence leaks on my system, due to create/user add already increasing it twice no need for a 3rd go.
Arthur Huillet [Fri, 27 Jul 2007 13:48:04 +0000 (15:48 +0200)]
nouveau: creating notifier in PCI memory for PCIGART
Dave Airlie [Thu, 26 Jul 2007 05:26:36 +0000 (15:26 +1000)]
drm/bo: set the req pointer for each buffer to validate
Dave Airlie [Thu, 26 Jul 2007 03:25:21 +0000 (13:25 +1000)]
drm: fix size argument for copy to/from user
Eric Anholt [Wed, 25 Jul 2007 19:54:15 +0000 (12:54 -0700)]
Improve the drawable test to use multiple drawables.
Eric Anholt [Sun, 22 Jul 2007 08:51:34 +0000 (09:51 +0100)]
Fix copy'n'paste-o in FreeBSD drawable code.
Adrian Bunk [Mon, 23 Jul 2007 08:15:00 +0000 (18:15 +1000)]
drm_rmmap_ioctl(): remove dead code
This patch removes some obviously dead code spotted by the Coverity
checker.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Pekka Paalanen [Sat, 21 Jul 2007 20:13:25 +0000 (23:13 +0300)]
Fix misc ioctl issues, makes Nouveau run.
Debug print fix in drm_release().
Forgotten local variable init in drm_setversion().
Unnecessary put_user() in drm_addmap_ioctl().
ioctl->cmd check broken in drm_ioctl(); workaround.
Dave Airlie [Sat, 21 Jul 2007 12:11:41 +0000 (22:11 +1000)]
fix missing brace placement for IOC_IN
Dave Airlie [Sat, 21 Jul 2007 11:50:25 +0000 (21:50 +1000)]
fix drm no-compile due to BSD :-)
Eric Anholt [Fri, 20 Jul 2007 00:11:11 +0000 (17:11 -0700)]
Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE.
The data is now in kernel space, copied in/out as appropriate according to the
This results in DRM_COPY_{TO,FROM}_USER going away, and error paths to deal
with those failures. This also means that XFree86 4.2.0 support for i810 DRM
is lost.
Eric Anholt [Fri, 20 Jul 2007 13:39:25 +0000 (06:39 -0700)]
Replace filp in ioctl arguments with drm_file *file_priv.
As a fallout, replace filp storage with file_priv storage for "unique
identifier of a client" all over the DRM. There is a 1:1 mapping, so this
should be a noop. This could be a minor performance improvement, as everything
on Linux dereferenced filp to get file_priv anyway, while only the mmap ioctls
went the other direction.
Eric Anholt [Fri, 20 Jul 2007 13:42:18 +0000 (06:42 -0700)]
BSD: Replace symlink building with symlinks in git.
Eric Anholt [Fri, 20 Jul 2007 00:00:17 +0000 (17:00 -0700)]
Remove DRM_ERR OS macro.
This was used to make all ioctl handlers return -errno on linux and errno on
*BSD. Instead, just return -errno in shared code, and flip sign on return from
shared code to *BSD code.
Eric Anholt [Fri, 20 Jul 2007 19:55:51 +0000 (12:55 -0700)]
Fix linux spinlock macros after the last commit.
Eric Anholt [Thu, 19 Jul 2007 13:46:13 +0000 (06:46 -0700)]
FreeBSD warnings cleanup.
Eric Anholt [Thu, 19 Jul 2007 13:31:26 +0000 (06:31 -0700)]
Merge branch 'origin'
Eric Anholt [Thu, 19 Jul 2007 13:17:58 +0000 (06:17 -0700)]
FreeBSD: Fix the recently added drawable add/remove/update code.
Eric Anholt [Thu, 19 Jul 2007 13:17:04 +0000 (06:17 -0700)]
Add a test for drawable add, remove, and update.
Eric Anholt [Thu, 19 Jul 2007 13:02:20 +0000 (06:02 -0700)]
Fix the getclient test (Need this feature for future tests).
Eric Anholt [Thu, 19 Jul 2007 11:59:59 +0000 (04:59 -0700)]
Add some trivial regression tests, one of which fails.
Eric Anholt [Thu, 19 Jul 2007 10:36:57 +0000 (03:36 -0700)]
Add current BSD stuff to .gitignore.
Ben Skeggs [Thu, 19 Jul 2007 06:42:58 +0000 (16:42 +1000)]
nouveau/nv50: get non-default push buffer sizes working.
Eric Anholt [Wed, 18 Jul 2007 21:22:40 +0000 (14:22 -0700)]
Add dry-coded DRM drawable private information storage for FreeBSD.
With this, all modules build again.
Pekka Paalanen [Fri, 6 Jul 2007 17:33:32 +0000 (20:33 +0300)]
nouveau: Make nouveau_wait_for_idle() read PTIMER.
Following my nv28 kmmio dumps, nouveau_wait_for_idle() is modified to
read PTIMER and NV03_PMC_ENABLE. Also a timeout based on PTIMER value is
added, so wait_for_idle() cannot stall indefinitely (unless PTIMER is
halted). The timeout was selected as 1 giga-ticks, which for me is 1s.
Pekka Paalanen [Fri, 6 Jul 2007 16:34:15 +0000 (19:34 +0300)]
nouveau: Add read() method to Engine.timer.
This is not called from anywhere, yet.
Pekka Paalanen [Fri, 6 Jul 2007 10:57:31 +0000 (13:57 +0300)]
nouveau: Add bitfield names for NSOURCE and NSTATUS.
Name strings and pretty-printing in nouveau_graph_dump_trap_info().
Pekka Paalanen [Fri, 6 Jul 2007 09:47:53 +0000 (12:47 +0300)]
nouveau: Replace 0x00400104 and 0x00400108 with names.
NV03_PGRAPH_NSTATUS and NV03_PGRAPH_NSOURCE.
The prefix NV03 is chosen because nv10reg.h had no versioned prefix,
and the code using these registers does not check card_type.
Thomas Hellstrom [Wed, 18 Jul 2007 08:40:03 +0000 (10:40 +0200)]
Fix via dmablit when blit queue is full.
Fix by Simon Farnsworth, Bugzilla Bug #11542
http://bugs.freedesktop.org/show_bug.cgi?id=11542
Dave Airlie [Wed, 18 Jul 2007 05:49:45 +0000 (15:49 +1000)]
fix some missing whitespace/tab
Dave Airlie [Tue, 17 Jul 2007 23:46:16 +0000 (09:46 +1000)]
drm: idr stuff is upstream for 2.6.23
Dave Airlie [Tue, 17 Jul 2007 23:42:06 +0000 (09:42 +1000)]
drm: remove drm_u64_t, replace with uint64_t everwhere
This might break something, stdint.h inclusion in drm.h maybe required
but I'm not sure yet what platforms have it what ones don't.
Dave Airlie [Mon, 16 Jul 2007 23:59:26 +0000 (09:59 +1000)]
drm_context: fix braino
Ben Skeggs [Tue, 17 Jul 2007 04:06:05 +0000 (14:06 +1000)]
nouveau: Destroy PGRAPH context table on PGRAPH takedown
Ben Skeggs [Sun, 15 Jul 2007 07:18:15 +0000 (17:18 +1000)]
nouveau: G8x PCIEGART
Actually a NV04-NV50 ttm backend for both PCI and PCIEGART, but PCIGART
support for G8X using the current mm has been hacked on top of it.
Ian Romanick [Mon, 16 Jul 2007 17:56:43 +0000 (10:56 -0700)]
Correct errors in the usage of pci_map_page.
With these changes the driver no longer instantly hard-locks a 6600LE
on a PowerPC G5. I haven't tested any 3D apps yet.
Eric Anholt [Mon, 16 Jul 2007 08:53:06 +0000 (01:53 -0700)]
Fix FreeBSD build.
Dave Airlie [Mon, 16 Jul 2007 03:52:21 +0000 (13:52 +1000)]
drm: fixup old kernel compat code
Dave Airlie [Mon, 16 Jul 2007 03:50:04 +0000 (13:50 +1000)]
drm: fixup compat wrappers
Dave Airlie [Mon, 16 Jul 2007 03:46:37 +0000 (13:46 +1000)]
drm: remove internal sman typedef
Dave Airlie [Mon, 16 Jul 2007 03:45:39 +0000 (13:45 +1000)]
drm: remove drm_ref_t
Dave Airlie [Mon, 16 Jul 2007 03:42:11 +0000 (13:42 +1000)]
drm: remove drm_buf_t
Dave Airlie [Mon, 16 Jul 2007 03:37:02 +0000 (13:37 +1000)]
drm: detypedef ttm/bo/fence code
Dave Airlie [Mon, 16 Jul 2007 02:48:44 +0000 (12:48 +1000)]
drm: remove hashtab/sman and object typedefs
Dave Airlie [Mon, 16 Jul 2007 02:32:51 +0000 (12:32 +1000)]
drm: remove drmP.h internal typedefs
Dave Airlie [Mon, 16 Jul 2007 01:30:53 +0000 (11:30 +1000)]
drm: remove ttm userspace typedefs
Dave Airlie [Mon, 16 Jul 2007 01:22:15 +0000 (11:22 +1000)]
drm: detypedef drm.h and fixup all problems
Dave Airlie [Mon, 16 Jul 2007 01:13:07 +0000 (11:13 +1000)]
drm: fix typedef in drm_os_linux.h
Dave Airlie [Mon, 16 Jul 2007 00:13:58 +0000 (10:13 +1000)]
drm: remove typedefs in drm.h to their own section
Dave Airlie [Mon, 16 Jul 2007 00:05:20 +0000 (10:05 +1000)]
Merge branch 'drm-ttm-cleanup-branch'
Patrice Mandin [Sat, 14 Jul 2007 16:32:11 +0000 (18:32 +0200)]
nouveau: nv10 and nv11/15 are different
Arthur Huillet [Fri, 13 Jul 2007 18:51:52 +0000 (20:51 +0200)]
applied patch from Ian Romanick fixing PCI DMA object creation code
Arthur Huillet [Fri, 13 Jul 2007 14:03:25 +0000 (16:03 +0200)]
Merge commit 'public/master'
Arthur Huillet [Fri, 13 Jul 2007 13:57:17 +0000 (15:57 +0200)]
now attempting to create PCI object only when there is a pci_heap
Arthur Huillet [Fri, 13 Jul 2007 13:57:17 +0000 (15:57 +0200)]
now attempting to create PCI object only when there is a pci_heap
Ben Skeggs [Fri, 13 Jul 2007 05:09:31 +0000 (15:09 +1000)]
nouveau: nuke internal typedefs, and drm_device_t use.
Ben Skeggs [Thu, 12 Jul 2007 16:18:59 +0000 (02:18 +1000)]
nouveau: unbreak AGP
Ben Skeggs [Thu, 12 Jul 2007 01:55:47 +0000 (11:55 +1000)]
nouveau: mem_alloc() returns offsets, not absolute addresses now.
Ben Skeggs [Thu, 12 Jul 2007 01:39:45 +0000 (11:39 +1000)]
nouveau: nuke left over debug message
Ben Skeggs [Thu, 12 Jul 2007 00:15:16 +0000 (10:15 +1000)]
nouveau: separate region_offset into map_handle and offset.
Arthur Huillet [Thu, 12 Jul 2007 00:35:39 +0000 (02:35 +0200)]
fixed object creation code to not Oops on 64bits, worked around memalloc not working on 64bit for PCIGART
Arthur Huillet [Wed, 11 Jul 2007 13:01:37 +0000 (15:01 +0200)]
NV50 will not attempt to use PCIGART now
Arthur Huillet [Wed, 11 Jul 2007 12:56:27 +0000 (14:56 +0200)]
fixed bug that prevented PCIE cards from actually using PCIGART - NV50 will probably still have a problem
Ben Skeggs [Wed, 11 Jul 2007 04:22:59 +0000 (14:22 +1000)]
nouveau/nv50: G80 fixes.
Again, no hardware, so no idea if it'll even work yet. I understand how
the PRAMIN setup works now, un-hardcoding stuff will come "RealSoonNow(tm)".
Ben Skeggs [Wed, 11 Jul 2007 02:38:48 +0000 (12:38 +1000)]
nouveau: Some checks on userspace object handles.
Dave Airlie [Wed, 11 Jul 2007 01:23:41 +0000 (11:23 +1000)]
Merge branch 'master' into cleanup
Conflicts:
libdrm/xf86drm.c
linux-core/drm_bo.c
linux-core/drm_fence.c
Arthur Huillet [Wed, 11 Jul 2007 00:35:10 +0000 (02:35 +0200)]
Added support for PCIGART for PCI(E) cards. Bumped DRM interface patchlevel.
Arthur Huillet [Wed, 11 Jul 2007 00:33:12 +0000 (02:33 +0200)]
Made drm_sg_alloc accessible from inside the DRM - drm_sg_alloc_ioctl is the ioctl wrapper
Ben Skeggs [Mon, 9 Jul 2007 13:58:00 +0000 (23:58 +1000)]
nouveau: Allocate mappable VRAM for notifiers..
Ben Skeggs [Mon, 9 Jul 2007 10:02:14 +0000 (20:02 +1000)]
nouveau: Don't be so strict on <NV50
Ben Skeggs [Mon, 9 Jul 2007 05:37:37 +0000 (15:37 +1000)]
nouveau: Avoid oops
Turns out lastclose() gets called even if firstopen() has never been...
Ben Skeggs [Wed, 4 Jul 2007 14:12:33 +0000 (00:12 +1000)]
nouveau/nv50: Initial channel/object support
Should be OK on G84 for a single channel, multiple channels *almost* work.
Untested on G80.
Ben Skeggs [Wed, 4 Jul 2007 05:31:01 +0000 (15:31 +1000)]
nouveau: enable reporting for all PFIFO/PGRAPH irqs
Ben Skeggs [Mon, 2 Jul 2007 09:31:18 +0000 (19:31 +1000)]
nouveau: rewrite gpu object code
Allows multiple references to a single object, needed to support PCI(E)GART
scatter-gather DMA objects which would quickly fill PRAMIN if each channel
had its own.
Handle per-channel private instmem areas. This is needed to support NV50,
but might be something we want to do on earlier chipsets at some point?
Everything that touches PRAMIN is a GPU object.
Kristian Høgsberg [Tue, 3 Jul 2007 14:41:48 +0000 (10:41 -0400)]
Use idr_replace trick to eliminate struct drm_ctx_sarea_list.
Kristian Høgsberg [Tue, 3 Jul 2007 14:31:46 +0000 (10:31 -0400)]
Don't take dev->struct_mutex twice in drm_setsareactx.
Michel Dänzer [Tue, 3 Jul 2007 10:33:51 +0000 (12:33 +0200)]
One more spinlock initializer cleanup.
Michel Dänzer [Tue, 3 Jul 2007 10:15:15 +0000 (12:15 +0200)]
Simplification for previous commit.
Dave Airlie pointed out on IRC that idr_replace lets us know if the ID hasn't
been allocated, so we don't need a special pointer value for allocated IDs that
don't have valid information yet.
Michel Dänzer [Tue, 3 Jul 2007 09:41:44 +0000 (11:41 +0200)]
Restore pre-idr semantics for drawable information.
There's a difference between a drawable ID not having valid drawable
information and not being allocated at all. Not making the distinction would
break i915 DRM swap scheduling with older X servers that don't push drawable
cliprect information to the DRM.
Kristian Høgsberg [Mon, 2 Jul 2007 21:52:07 +0000 (17:52 -0400)]
Fix must-check warnings and implement a few error paths.
Kristian Høgsberg [Thu, 28 Jun 2007 18:45:26 +0000 (14:45 -0400)]
Drop drm_drawable_list and add drm_drawable_info directly to the idr.
Thomas Hellstrom [Fri, 29 Jun 2007 13:22:28 +0000 (15:22 +0200)]
Avoid hitting BUG() for kernel-only fence objects.
Thomas Hellstrom [Fri, 29 Jun 2007 10:50:12 +0000 (12:50 +0200)]
Fence object reference / dereference cleanup.
Buffer object dereference cleanup.
Add a struct drm_device member to fence objects:
This can simplify code, particularly in drivers.
Ben Skeggs [Fri, 29 Jun 2007 03:52:55 +0000 (13:52 +1000)]
nouveau: small RAMFC cleanups
Ben Skeggs [Thu, 28 Jun 2007 11:01:17 +0000 (21:01 +1000)]
nouveau: Hack around possible Xv blit adaptor breakage
Ben Skeggs [Wed, 27 Jun 2007 18:23:17 +0000 (04:23 +1000)]
nouveau/nv10: Fix earlier NV1x chips
Can't use nv04 code for them, since an extra field was inserted into
RAMFC after DMA_PUT/GET.
Ben Skeggs [Mon, 25 Jun 2007 05:42:55 +0000 (15:42 +1000)]
nouveau: never touch PRAMIN with NV_WRITE, cleanup RAMHT code a bit
Ben Skeggs [Mon, 25 Jun 2007 05:16:19 +0000 (15:16 +1000)]
nouveau: simplify PRAMIN access
Ben Skeggs [Sun, 24 Jun 2007 17:52:06 +0000 (03:52 +1000)]
nouveau: name some regs
Ben Skeggs [Sun, 24 Jun 2007 10:49:19 +0000 (20:49 +1000)]
nouveau/nv50: skeletal backend
Ben Skeggs [Sun, 24 Jun 2007 09:03:35 +0000 (19:03 +1000)]
nouveau: Nuke DMA_OBJECT_INIT ioctl (bumps interface to 0.0.7)
For various reasons, this ioctl was a bad idea.
At channel creation we now automatically create DMA objects covering
available VRAM and GART memory, where the client used to do this themselves.
However, there is still a need to be able to create DMA objects pointing at
specific areas of memory (ie. notifiers). Each channel is now allocated a
small amount of memory from which a client can suballocate things (such as
notifiers), and have a DMA object created which covers the suballocated area.
The NOTIFIER_ALLOC ioctl exposes this functionality.
Ben Skeggs [Wed, 27 Jun 2007 16:56:30 +0000 (02:56 +1000)]
nouveau/nv04: Set NV_PFIFO_CACHE1_PUSH1 correctly + small tweaks
Thomas Hellstrom [Tue, 26 Jun 2007 21:25:40 +0000 (23:25 +0200)]
More 64-bit padding.
Ian Romanick [Tue, 26 Jun 2007 16:51:55 +0000 (09:51 -0700)]
Add support SiS based XGI chips to SiS DRM.
Ben Skeggs [Sun, 24 Jun 2007 15:57:57 +0000 (01:57 +1000)]
nouveau: NV49/NV4B PGRAPH setup from jb17bsome and stephan_2303
Ben Skeggs [Sun, 24 Jun 2007 09:00:44 +0000 (19:00 +1000)]
nouveau: kill some dead code