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.
Thomas Hellstrom [Thu, 14 Jun 2007 09:52:38 +0000 (11:52 +0200)]
Locking fixes and instrumentation.
Thomas Hellstrom [Wed, 13 Jun 2007 13:59:28 +0000 (15:59 +0200)]
Fix drmMMUnlock / drmMMLock return values.
Thomas Hellstrom [Wed, 13 Jun 2007 13:38:59 +0000 (15:38 +0200)]
Make sure we read fence->signaled while spinlocked.
Thomas Hellstrom [Wed, 13 Jun 2007 13:19:30 +0000 (15:19 +0200)]
Fix fence object deref race.
Thomas Hellstrom [Tue, 12 Jun 2007 10:30:33 +0000 (12:30 +0200)]
Fix some obvious bugs.
Thomas Hellstrom [Tue, 12 Jun 2007 10:21:38 +0000 (12:21 +0200)]
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.
Dave Airlie [Sun, 10 Jun 2007 05:40:10 +0000 (15:40 +1000)]
use krh's idr mods to remove lists from idr code
Oliver McFadden [Fri, 8 Jun 2007 19:40:57 +0000 (19:40 +0000)]
r300: Added the CP maximum fetch size and ring rptr update variables.
Dave Airlie [Thu, 7 Jun 2007 08:45:00 +0000 (18:45 +1000)]
oops must fix this properly at some point
Dave Airlie [Thu, 7 Jun 2007 08:40:41 +0000 (18:40 +1000)]
drm: fix radeon setparam alignment issues on 32/64-bit
Oliver McFadden [Tue, 5 Jun 2007 19:19:42 +0000 (19:19 +0000)]
r300: Small correction to the previous commit.
Alex Deucher [Tue, 5 Jun 2007 19:05:49 +0000 (19:05 +0000)]
r300: Document more of the RADEON_RBBM_STATUS register.
Wang Zhenyu [Tue, 5 Jun 2007 18:15:29 +0000 (11:15 -0700)]
Add support for the G33, Q33, and Q35 chipsets.
These require that the status page be referenced by a pointer in GTT, rather
than phsyical memory. So, we have the X Server allocate that memory and tell
us the address, instead.
Dave Airlie [Tue, 5 Jun 2007 08:14:54 +0000 (18:14 +1000)]
remove include of linux ioctl32.h from drm drivers
Maurice van der Pot [Mon, 4 Jun 2007 00:49:30 +0000 (10:49 +1000)]
nouveau: fix RAMHT wrapping
Dave Airlie [Sun, 3 Jun 2007 08:30:52 +0000 (18:30 +1000)]
radeon: refine irq acking for vbl on crtc 2
root [Sun, 3 Jun 2007 08:12:28 +0000 (18:12 +1000)]
Revert "drm: add new drm_wait_on function to replace macro"
This reverts commit
6e860d08d0f5b1e9a2d711aaf9fd6b982aa8039e.
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
root [Sun, 3 Jun 2007 08:11:44 +0000 (18:11 +1000)]
Revert "move i915 to new drm_wait_on function"
This reverts commit
feb68037784ac09e333a321d294fdb2d8c57a4c8.
This was a bad idea, the macro is actually a bit harder to convert
to a static for the other use cases
Dave Airlie [Sun, 3 Jun 2007 06:28:21 +0000 (16:28 +1000)]
radeon: add support for vblank on crtc2
This add support for CRTC2 vblank on radeon similiar to the i915 support
Dave Airlie [Fri, 1 Jun 2007 09:00:24 +0000 (19:00 +1000)]
drm: fixup initialisation of list heads and idr
Wang Zhenyu [Wed, 30 May 2007 08:25:49 +0000 (16:25 +0800)]
i915: Add support for 945GME chip
Wang Zhenyu [Wed, 30 May 2007 08:24:42 +0000 (16:24 +0800)]
i915: Add support for 965GME/GLE chip.
Jung-uk Kim [Tue, 15 May 2007 20:35:33 +0000 (13:35 -0700)]
Update a bunch of FreeBSD port code.
Tested on r200/r300. i915 updates still remain to be done.
Brian [Tue, 29 May 2007 20:56:17 +0000 (14:56 -0600)]
reformatting, clean-ups
Brian [Tue, 29 May 2007 20:54:00 +0000 (14:54 -0600)]
Clean-ups and reformatting.
Use 4-space indentation consistently.
Replace occurances of:
if (cond) code;
with:
if (cond)
code;
to facilitate putting breakpoints on code.
Dave Airlie [Sat, 26 May 2007 22:44:38 +0000 (08:44 +1000)]
drm: move context handling code to use linux idr
Dave Airlie [Sat, 26 May 2007 21:26:52 +0000 (07:26 +1000)]
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>
Thomas Gleixner [Fri, 25 May 2007 19:20:59 +0000 (05:20 +1000)]
drm: spinlock initializer cleanup
Michel Dänzer [Fri, 25 May 2007 18:35:54 +0000 (04:35 +1000)]
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>
Dave Airlie [Fri, 25 May 2007 18:02:55 +0000 (04:02 +1000)]
radeon: add other IGP chipsets