Thomas Hellstrom [Tue, 25 Sep 2007 16:03:31 +0000 (18:03 +0200)]
Merge branch 'master' into pre-superioctl-branch
Conflicts:
linux-core/drm_bo.c
linux-core/drm_fence.c
linux-core/drm_objects.h
shared-core/drm.h
Dave Airlie [Tue, 25 Sep 2007 06:16:14 +0000 (16:16 +1000)]
drm: use fence_class as name instead of class
Dave Airlie [Wed, 12 Sep 2007 13:50:38 +0000 (23:50 +1000)]
drm/ttm: fixup fence class naming and interfaces
This is some code for nouveau that Ben Skeggs worked on, and also
fixes the naming (having class in a system header file == C++ keyword == bad plan)
Thomas Hellstrom [Sat, 22 Sep 2007 12:30:55 +0000 (14:30 +0200)]
Fix pinned buffer fence class.
Thomas Hellstrom [Sat, 22 Sep 2007 11:59:56 +0000 (13:59 +0200)]
Fix drm_bo.c compiling.
Thomas Hellstrom [Sat, 22 Sep 2007 11:38:36 +0000 (13:38 +0200)]
Make nouveau compile on older kernels.
Thomas Hellstrom [Sat, 22 Sep 2007 11:34:33 +0000 (13:34 +0200)]
Add fence error member.
Modify the TTM backend bind arguments.
Export a number of functions needed for driver-specific super-ioctls.
Add a function to map buffer objects from the kernel, regardless of where they're
currently placed.
A number of error fixes.
Eric Anholt [Sat, 22 Sep 2007 00:05:21 +0000 (17:05 -0700)]
Merge branch 'bo-set-pin'
This branch replaces the NO_MOVE/NO_EVICT flags to buffer validation with a
separate privileged ioctl to pin buffers like NO_EVICT meant before. The
functionality that was supposed to be covered by NO_MOVE may be reintroduced
later, possibly in a different way, after the superioctl branch is merged.
Eric Anholt [Fri, 21 Sep 2007 23:14:22 +0000 (16:14 -0700)]
Add some more verbosity to drm_bo_set_pin_req comments.
Eric Anholt [Fri, 21 Sep 2007 22:58:02 +0000 (15:58 -0700)]
Fix mapCount refcounting on unmap, even though the value is unused.
Stephane Marchesin [Fri, 21 Sep 2007 20:42:39 +0000 (22:42 +0200)]
nouveau: fix ppc and get it right this time.
Stephane Marchesin [Fri, 21 Sep 2007 20:27:53 +0000 (22:27 +0200)]
nouveau: fix notifiers on PPC.
Stephane Marchesin [Fri, 21 Sep 2007 20:04:45 +0000 (22:04 +0200)]
nouveau: add some checks to the nv04 graph switching code.
Dave Airlie [Thu, 20 Sep 2007 04:01:29 +0000 (14:01 +1000)]
drm_sysfs: update sysfs code from kernel
Eric Anholt [Wed, 19 Sep 2007 22:55:58 +0000 (15:55 -0700)]
Merge branch 'origin' into bo-set-pin
Michel Dänzer [Tue, 18 Sep 2007 20:03:22 +0000 (21:03 +0100)]
i915: Reinstate check that drawable has valid information in i915_vblank_swap.
Michel Dänzer [Tue, 18 Sep 2007 19:55:43 +0000 (20:55 +0100)]
i915: Fix scheduled buffer swaps.
One instance of unlocking a spinlock was converted incorrectly when this code
was fixed to build on BSD.
Ian Romanick [Tue, 18 Sep 2007 18:03:49 +0000 (11:03 -0700)]
Add ioc32 compat layer for XGI DRM.
Ian Romanick [Tue, 18 Sep 2007 18:03:08 +0000 (11:03 -0700)]
Fix ioc32 compat layer
Previously any ioctls that weren't explicitly listed in the compat ioctl
table would fail with ENOTTY. If the incoming ioctl number is outside the
range of the table, assume that it Just Works, and pass it off to drm_ioctl.
This make the fence related ioctls work on 64-bit PowerPC.
Brian [Wed, 12 Sep 2007 18:05:15 +0000 (12:05 -0600)]
Added bool typedef added in kernel 2.6.19
This allows the xgi code to compile with older kernels.
Brian [Wed, 12 Sep 2007 17:48:48 +0000 (11:48 -0600)]
Added idr_replace() function which was apparently added in Linux 2.6.18
Someone should probably double-check my work here since this is the
first time I've touched drm_compat.[ch]
Jesse Barnes [Wed, 12 Sep 2007 15:55:33 +0000 (08:55 -0700)]
Remove plane->pipe mapping from SAREA private after all
We can figure out which pipe a given plane is mapped to by looking at the
display control registers instead of tracking it in a new SAREA private field.
If this becomes a performance problem, we could move to an ioctl based solution
by adding a new parameter for the DDX to set (defaulting to the old behavior if
the param was never set of course).
Jesse Barnes [Tue, 11 Sep 2007 10:50:17 +0000 (03:50 -0700)]
Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/drm
Jesse Barnes [Tue, 11 Sep 2007 10:48:46 +0000 (03:48 -0700)]
Disambiguate planes & pipes for swap operations
This mod makes the SAREA track plane to pipe mappings and corrects the name of
the plane info variables (they were mislabeled as pipe info since until now all
code assumed a direct mapping between planes and pipes).
It also updates the flip ioctl argument to take a set of planes rather than
pipes, since planes are flipped while pipes generate vblank events.
Patrice Mandin [Mon, 10 Sep 2007 16:52:17 +0000 (18:52 +0200)]
nouveau: nv10: add combiner registers
Matthieu Castet [Sun, 9 Sep 2007 13:49:33 +0000 (15:49 +0200)]
nouveau : nv10 fix NV10_PGRAPH_CTX_USER save/load
Matthieu Castet [Sun, 9 Sep 2007 10:13:00 +0000 (12:13 +0200)]
nouveau : nv10 pipe ctx switch load/save.
This fix some issues with more than one 3D fifo, but there still some "corruption" sometimes
Maarten Maathuis [Sat, 8 Sep 2007 20:19:00 +0000 (22:19 +0200)]
nouveau: Add Quadro NVS 140 pciid
Ben Skeggs [Fri, 7 Sep 2007 10:07:13 +0000 (20:07 +1000)]
nouveau: Use nv41 ctxprog/vals on nv42.
Ian Romanick [Thu, 6 Sep 2007 22:37:52 +0000 (15:37 -0700)]
Merge branch 'xgi-0-0-2'
Ian Romanick [Thu, 6 Sep 2007 22:20:52 +0000 (15:20 -0700)]
Bump version to 1.0.0.
Stephane Marchesin [Thu, 6 Sep 2007 00:46:45 +0000 (02:46 +0200)]
nouveau: fix some nv04 graph switching.
Stephane Marchesin [Thu, 6 Sep 2007 00:12:05 +0000 (02:12 +0200)]
nouveau: add pure nv30 support.
Maarten Maathuis [Tue, 4 Sep 2007 16:51:57 +0000 (18:51 +0200)]
Add context init voodoo and context switch code for NV41.
Ian Romanick [Fri, 31 Aug 2007 17:54:55 +0000 (10:54 -0700)]
Merge branch 'master' of ssh+git://git.freedesktop.org/git/mesa/drm into xgi-0-0-2
Ian Romanick [Fri, 31 Aug 2007 17:48:13 +0000 (10:48 -0700)]
Acutally emit the IRQ (duh) when setting the fence post.
Stephane Marchesin [Thu, 30 Aug 2007 23:39:40 +0000 (01:39 +0200)]
nouveau: nv04 context switching support. Works for starting X up at least.
Stephane Marchesin [Thu, 30 Aug 2007 19:51:53 +0000 (21:51 +0200)]
nouveau: give nv03 the last cut.
Ian Romanick [Wed, 29 Aug 2007 21:41:49 +0000 (14:41 -0700)]
Use ati_pcigart for PCI-e GART table handling.
Ian Romanick [Wed, 29 Aug 2007 07:23:30 +0000 (00:23 -0700)]
Fix late night dumb-dumb mistake.
Ian Romanick [Wed, 29 Aug 2007 07:04:18 +0000 (00:04 -0700)]
Use DRM_SPINLOCK / DRM_UNSPINLOCK macros.
Keith Packard [Tue, 28 Aug 2007 19:23:51 +0000 (12:23 -0700)]
Add register defines for hw binning
Dave Airlie [Tue, 28 Aug 2007 05:17:11 +0000 (15:17 +1000)]
drm: remove XFREE86_VERSION macros
Matthieu Castet [Sun, 26 Aug 2007 18:48:32 +0000 (20:48 +0200)]
nouveau : add NV04_PGRAPH_TRAPPED_ADDR definition
- fix offset for nv04
- use it in nv10 graph ctx switch for getting next channel
- dump NV10_PGRAPH_TRAPPED_DATA_HIGH on nv10+
Matthieu Castet [Sat, 25 Aug 2007 20:10:45 +0000 (22:10 +0200)]
nouveau : nv1x graph reworks
- add forgotten init value
- use the same PGRAPH_DEBUG than the blob
- remove init of ddx reg : it should be done with object
- better handle of channel destruction
hope I didn't break anything ;)
Patrice Mandin [Fri, 24 Aug 2007 22:12:58 +0000 (00:12 +0200)]
nouveau: nv10: output a warning if last channel invalid, and switch to next
Patrice Mandin [Thu, 23 Aug 2007 08:18:34 +0000 (10:18 +0200)]
nouveau: nv10: check some NULL pointers inside context switch
Matthieu Castet [Wed, 22 Aug 2007 21:17:56 +0000 (23:17 +0200)]
nouveau : fix some potential crashes with objects causing hash collision
Ben Skeggs [Wed, 22 Aug 2007 03:23:49 +0000 (13:23 +1000)]
nouveau/nv40: Preserve other bits in 0x400304/0x400310 like NVIDIA do.
Ben Skeggs [Wed, 22 Aug 2007 03:17:19 +0000 (13:17 +1000)]
nouveau/nv40: Dump extra info on ucode state if ctx switch fails.
Ben Skeggs [Wed, 22 Aug 2007 03:09:27 +0000 (13:09 +1000)]
nouveau: NV4c ctx ucode.
Seems we already have a nv4c_ctx_init() somehow, a quick check shows the
ucode matches it still.
Ben Skeggs [Wed, 22 Aug 2007 02:54:26 +0000 (12:54 +1000)]
nouveau/nv50: Correct thinko for 8800 chips + cleanup a bit.
Stephane Marchesin [Wed, 22 Aug 2007 02:20:09 +0000 (04:20 +0200)]
nouveau: redo nv30_graph.c. Should work better, but we still lack a couple of cards.
Stephane Marchesin [Mon, 6 Aug 2007 15:42:31 +0000 (17:42 +0200)]
nouveau: fix the comment and debug message for PCIGART size
Ben Skeggs [Mon, 20 Aug 2007 16:23:21 +0000 (02:23 +1000)]
nouveau: Add NV44 ctx ucode. Patch from stillunknown.
Microcode is similar enough to the NV4A one that it should be able to use
the same initial PGRAPH context. One day this mess will go away, honest..
Ben Skeggs [Mon, 20 Aug 2007 16:18:27 +0000 (02:18 +1000)]
nouveau: Poke 0x2230 on NV47 also.
Makes 0x2220 work the same way as on NV40.
Patrice Mandin [Sun, 19 Aug 2007 16:45:01 +0000 (18:45 +0200)]
Check also for Linux, as it's not supported on different OS
Patrice Mandin [Sun, 19 Aug 2007 16:41:18 +0000 (18:41 +0200)]
Function pci_get_bus_and_slot needs 2.6.19 or later
Ian Romanick [Fri, 17 Aug 2007 17:53:18 +0000 (10:53 -0700)]
Remove unnecessary include.
Ian Romanick [Thu, 16 Aug 2007 20:43:04 +0000 (13:43 -0700)]
Forgot to add this file on the last commit.
Eric Anholt [Thu, 16 Aug 2007 16:23:09 +0000 (09:23 -0700)]
Merge branch 'master' into bo-set-pin
Ben Skeggs [Thu, 16 Aug 2007 15:12:46 +0000 (01:12 +1000)]
nouveau: Detect memory on NFORCE/NFORCE2 correctly.
Ian Romanick [Thu, 16 Aug 2007 04:05:26 +0000 (21:05 -0700)]
Implement fence support.
Eric Anholt [Wed, 15 Aug 2007 21:29:31 +0000 (14:29 -0700)]
Fix dev->agp->base initialization on BSD, and fix addmap range check on Linux.
With the previous linux commit, an AGP aperture at the end of the address space
would have wrapped to 0 and the test would have failed.
Eric Anholt [Wed, 15 Aug 2007 20:42:04 +0000 (13:42 -0700)]
BSD: Return EINVAL if drm_unlock is called on an unheld or other-owner lock.
Eric Anholt [Wed, 15 Aug 2007 20:41:24 +0000 (13:41 -0700)]
Add a set of tests for DRM locking, exposing issues on BSD.
Eric Anholt [Wed, 15 Aug 2007 20:13:24 +0000 (13:13 -0700)]
Fix a bad error message in auth.c regression test.
Eric Anholt [Wed, 15 Aug 2007 20:08:19 +0000 (13:08 -0700)]
Require master in setversion test, since it requires auth.
vehemens [Wed, 15 Aug 2007 18:12:46 +0000 (11:12 -0700)]
BSD: simplify drm_ioctl() after other refactoring.
vehemens [Wed, 15 Aug 2007 18:05:44 +0000 (11:05 -0700)]
Bug #11989: Fix regression in getstats ioctl (kernel panic).
Eric Anholt [Wed, 15 Aug 2007 18:04:56 +0000 (11:04 -0700)]
BSD: Fix regression in setversion ioctl (current version not returned).
Eric Anholt [Wed, 15 Aug 2007 18:03:10 +0000 (11:03 -0700)]
Add a regression test for the setversion interface.
Eric Anholt [Wed, 15 Aug 2007 17:52:01 +0000 (10:52 -0700)]
Add simple regression test for getstats (does it not crash the kernel?).
Eric Anholt [Tue, 14 Aug 2007 21:41:24 +0000 (14:41 -0700)]
BSD: Replace brief description in each file's first line with doxygen later on.
The brief descriptions usually had the wrong filename in them.
Ben Skeggs [Wed, 15 Aug 2007 04:14:23 +0000 (14:14 +1000)]
nouveau: Use count parameter in nouveau_notifier_alloc().
Ben Skeggs [Wed, 15 Aug 2007 03:53:58 +0000 (13:53 +1000)]
nouveau: Turn some messages into DRM_DEBUGs..
Ben Skeggs [Wed, 15 Aug 2007 03:36:54 +0000 (13:36 +1000)]
nouveau: Allow GART notifiers when using sgdma code.
Ben Skeggs [Wed, 15 Aug 2007 03:34:57 +0000 (13:34 +1000)]
nouveau: Workaround mysterious PRAMIN clobbering by the card.
Ian Romanick [Tue, 14 Aug 2007 20:44:51 +0000 (13:44 -0700)]
Eliminate unused / useless ioctls.
Ian Romanick [Tue, 14 Aug 2007 20:24:02 +0000 (13:24 -0700)]
Clean up remaining C++ style comments.
Ian Romanick [Tue, 14 Aug 2007 20:20:37 +0000 (13:20 -0700)]
Move dwWriteReg to xgi_cmdlist.c, the only file where it is used.
Ian Romanick [Tue, 14 Aug 2007 20:19:48 +0000 (13:19 -0700)]
Remove unused interrupt related functions.
Ian Romanick [Tue, 14 Aug 2007 20:18:44 +0000 (13:18 -0700)]
Clean up xgi_(en|dis)able_(mmio|ge) and move to xgi_misc.c.
Ben Skeggs [Tue, 14 Aug 2007 15:40:46 +0000 (01:40 +1000)]
nouveau: Catch all NV4x chips instead of just NV_40.
Ben Skeggs [Tue, 14 Aug 2007 14:56:24 +0000 (00:56 +1000)]
nouveau/nv40: Fix channel scheduling.
Ensure NV_PFIFO_DMA_TIMESLICE_TIMEOUT_ENABLE gets set, otherwise channels
will appear to "freeze" in some circumstances.
Eric Anholt [Mon, 13 Aug 2007 23:29:24 +0000 (16:29 -0700)]
Bug #11895: Only add the AGP base to map offset if the caller didn't.
The i830 and newer intel 2D code adds the AGP base to map offsets already,
because it wasn't doing the AGP enable which used to set dev->agp->base.
Credit goes to Zhenyu for finding the issue.
Ian Romanick [Mon, 13 Aug 2007 23:21:20 +0000 (16:21 -0700)]
Strobe magic 0xB03F register to flush PCI-e GART table.
The original XGI kernel driver strobed 0xB03F each time a page was
allocated to back a GART page. When the driver was converted to use
the DRM SG interface, this code was lost. Returning it fixes a long
standing issue where the X-server would work fine the first time, but
acceleration commands would be ignored on the second X-server
invocation.
vehemens [Mon, 13 Aug 2007 17:17:47 +0000 (10:17 -0700)]
Bug #11951: Fix an errno sign inversion on pre-FreeBSD 5.
Also, annotate where signs change, to hopefully remind the reader of these
issues in the future.
Eric Anholt [Mon, 13 Aug 2007 18:27:46 +0000 (11:27 -0700)]
Add a regression test for authentication.
Eric Anholt [Mon, 13 Aug 2007 17:50:25 +0000 (10:50 -0700)]
Add doxygen and fix whitespace for drm_auth.c
vehemens [Mon, 13 Aug 2007 17:24:39 +0000 (10:24 -0700)]
Fix drm_auth.c locking to not recurse on dev_lock.
Dave Airlie [Mon, 6 Aug 2007 08:33:29 +0000 (18:33 +1000)]
i915: i965 non-secure batchbuffer bit has moved.
Ben Skeggs [Fri, 10 Aug 2007 03:54:26 +0000 (13:54 +1000)]
nouveau/nv50: demagic instmem setup.
Ben Skeggs [Fri, 10 Aug 2007 03:53:10 +0000 (13:53 +1000)]
nouveau: Allow creation of gpuobjs before any other init has taken place.
Ian Romanick [Fri, 10 Aug 2007 01:57:15 +0000 (18:57 -0700)]
After calling drm_sman_cleanup, mark both heaps as uninitialized.
Since the heaps weren't marked as uninitialized, SG memory was never
re-allocated. This prevented the X-server from being able to restart
without re-loading the kernel module.
Ian Romanick [Fri, 10 Aug 2007 01:28:16 +0000 (18:28 -0700)]
Use DRM_MEMORYBARRIER() macro instead of mb().
Ian Romanick [Fri, 10 Aug 2007 01:15:42 +0000 (18:15 -0700)]
Mask off correct bits in M2REG_AUTO_LINK_STATUS for interrupt handling.
Ian Romanick [Thu, 9 Aug 2007 23:20:44 +0000 (16:20 -0700)]
Minor clean up of IRQ code. Much, much more to come.
Ian Romanick [Thu, 9 Aug 2007 23:01:14 +0000 (16:01 -0700)]
Use sman memory manager instead of internal version.
Ian Romanick [Thu, 9 Aug 2007 22:30:36 +0000 (15:30 -0700)]
Unify alloc and free ioctls.
The DRM_XGI_PCIE_ALLOC and DRM_XGI_FB_ALLOC ioctls (and the matching
free ioctls) are unified to DRM_XGI_ALLOC. The desired memory region
is selected by xgi_mem_alloc::location. The region is magically
encoded in xgi_mem_alloc::index, which is used to release the memory.
Bump to version 0.11.0. This update requires a new DDX.