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
Ben Skeggs [Sun, 24 Jun 2007 09:00:26 +0000 (19:00 +1000)]
nouveau: NV04/NV10/NV20 PGRAPH engtab functions
NV04/NV10 load_context()/save_context() are stubs. I don't know enough about
how they work to implement them sanely. The "old" context_switch() code
remains hooked up, so it shouldn't break anything.
NV20 will probably break if load_context() works. No inital context values
are filled in, so when the first channel is created PGRAPH will probably end
up having its state zeroed. Some setup from nv20_graph_init() will probably
need to be moved to the per-channel context setup.
Ben Skeggs [Sun, 24 Jun 2007 08:58:38 +0000 (18:58 +1000)]
nouveau: NV3X PGRAPH engtab functions
Ben Skeggs [Sun, 24 Jun 2007 08:58:14 +0000 (18:58 +1000)]
nouveau: NV1X/2X/3X PFIFO engtab functions
Earlier NV1X chips use the NV04 code, see previous commits about NV10 RAMFC
entry size.
Ben Skeggs [Sun, 24 Jun 2007 08:57:09 +0000 (18:57 +1000)]
nouveau: NV04 PFIFO engtab functions
Ben Skeggs [Sun, 24 Jun 2007 08:56:40 +0000 (18:56 +1000)]
nouveau: NV4X PGRAPH engtab functions
Ben Skeggs [Sun, 24 Jun 2007 08:56:01 +0000 (18:56 +1000)]
nouveau: NV4X PFIFO engtab functions
Ben Skeggs [Sun, 24 Jun 2007 08:55:23 +0000 (18:55 +1000)]
nouveau: split PFIFO/PGRAPH context creation
Ben Skeggs [Sun, 24 Jun 2007 08:55:06 +0000 (18:55 +1000)]
nouveau: (mostly) hook up put_base again
Ben Skeggs [Sun, 24 Jun 2007 08:54:51 +0000 (18:54 +1000)]
nouveau: prototype PFIFO/PGRAPH engtab API
Ben Skeggs [Sun, 24 Jun 2007 08:54:36 +0000 (18:54 +1000)]
nouveau: rename engtab functions
Michel Dänzer [Fri, 22 Jun 2007 09:55:26 +0000 (11:55 +0200)]
radeon: Acknowledge all interrupts we're interested in.
Failure to do so was probably the root cause of fd.o bug 11287.
Oliver McFadden [Thu, 21 Jun 2007 14:35:11 +0000 (14:35 +0000)]
r300: Synchronized the register defines file; documentation changes.
Oliver McFadden [Thu, 21 Jun 2007 14:32:58 +0000 (14:32 +0000)]
r300: Allow writes to R300_VAP_PVS_WAITIDLE.
Oliver McFadden [Mon, 18 Jun 2007 08:42:46 +0000 (08:42 +0000)]
r300: Registers 0x2220-0x2230 are known as R300_VAP_CLIP_X_0-R300_VAP_CLIP_Y_1.
Oliver McFadden [Mon, 18 Jun 2007 08:36:50 +0000 (08:36 +0000)]
r300: Synchronized the register defines file again.
David Woodhouse [Mon, 18 Jun 2007 02:45:20 +0000 (12:45 +1000)]
fix radeon setparam on 32/64 systems, harder.
Commit
9b01bd5b284bbf519b726b39f1352023cb5e9e69 introduced a
compat_ioctl handler for RADEON_SETPARAM, the sole purpose of which was
to handle the fact that on i386, alignof(uint64_t)==4.
Unfortunately, this handler was installed for _all_ 64-bit
architectures, instead of only x86_64 and ia64. And thus it breaks
32-bit compatibility on every other arch, where 64-bit integers are
aligned to 8 bytes in 32-bit mode just the same as in 64-bit mode.
Arnd has a cunning plan to use 'compat_u64' with appropriate alignment
attributes according to the 32-bit ABI, but for now let's just make the
compat_radeon_cp_setparam routine entirely disappear on 64-bit machines
whose 32-bit compat support isn't for i386. It would be a no-op with
compat_u64 anyway.
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Michel Dänzer [Fri, 15 Jun 2007 15:13:11 +0000 (17:13 +0200)]
i915: Fix handling of breadcrumb counter wraparounds.
Thomas Hellstrom [Fri, 15 Jun 2007 08:35:52 +0000 (10:35 +0200)]
Fix i915 sequence mask.
Thomas Hellstrom [Fri, 15 Jun 2007 08:31:32 +0000 (10:31 +0200)]
Indentation fixes.
Thomas Hellstrom [Fri, 15 Jun 2007 08:21:31 +0000 (10:21 +0200)]
Fix refcounting / lock race.
Reported by Steve Wilkins / Michel Dänzer.