Ben Skeggs [Wed, 17 Sep 2008 12:18:03 +0000 (22:18 +1000)]
nv50: add initial context for chipset 0xaa
This just doesn't look right..
Ben Skeggs [Wed, 17 Sep 2008 12:03:38 +0000 (22:03 +1000)]
nv50: add initial context to match ctxprog for chipset 0x50
Ben Skeggs [Wed, 17 Sep 2008 05:13:27 +0000 (15:13 +1000)]
nv50: add ctxprog for chipset 0x50
Ben Skeggs [Wed, 17 Sep 2008 05:02:54 +0000 (15:02 +1000)]
nv50: add ctxprog for chipset 0xaa
Ben Skeggs [Wed, 17 Sep 2008 04:49:04 +0000 (14:49 +1000)]
nv50: add support for chipset 0x92
vehemens [Tue, 9 Sep 2008 05:06:09 +0000 (22:06 -0700)]
Remove incomplete and obsolete free/net/open code.
Signed-off-by: Robert Noland <rnoland@2hip.net>
Eric Anholt [Thu, 11 Sep 2008 03:04:42 +0000 (20:04 -0700)]
Add missing \ to libdrm_la_SOURCES
Reported by jcristau.
Eric Anholt [Wed, 10 Sep 2008 20:54:34 +0000 (13:54 -0700)]
intel: don't forget to include config.h in bufmgr code.
Thanks to airlied for catching this.
Eric Anholt [Mon, 8 Sep 2008 15:51:40 +0000 (08:51 -0700)]
intel: move drm calls to exec buffers to libdrm_intel.
This avoids duplicating the effort in 3 places. Also, added emit/wait fence
callbacks back in bufmgr_fake since we need it for non-drm 2d. Sigh.
Eric Anholt [Sat, 6 Sep 2008 02:07:41 +0000 (03:07 +0100)]
intel: Move IRQ emit/wait from callbacks into the bufmgr.
In the process, work around the glaring bugs of the kernel irq wait function.
Eric Anholt [Fri, 5 Sep 2008 09:35:32 +0000 (10:35 +0100)]
Move intel libdrm stuff to libdrm_intel.so
dri_bufmgr.h is replaced by intel_bufmgr.h, and several functions are renamed,
though the structures and many functions remain dri_bufmgr_* and dri_bo_*
Eric Anholt [Wed, 3 Sep 2008 22:05:16 +0000 (23:05 +0100)]
drm: Add tests for GEM_FLINK ioctl.
Robert Noland [Mon, 8 Sep 2008 20:40:52 +0000 (16:40 -0400)]
[FreeBSD] We need to call drm_detach before we free dev->driver.
The driver is in control of the show, so when you try and unload a module
the driver detach routine is called first. It is what drives the whole
unload process and so lots of panics occur if dev->driver is already
free.
Robert Noland [Sun, 7 Sep 2008 16:44:02 +0000 (12:44 -0400)]
[FreeBSD] Implement drm_ioremap_wc() to set a range of mem to write-combining
Robert Noland [Sun, 7 Sep 2008 01:08:33 +0000 (21:08 -0400)]
[FreeBSD] IGP gart needs to be un-cached.
Airlied inadvertently discovered that the IGP gart needs to be un-cached
for radeon rs485 and rs690 to work. Initial tests by placing a wbinvd()
after allocating the gart were successful. This is an attempt at a more
appropriate method of achieving success.
vehemens [Sun, 7 Sep 2008 01:02:31 +0000 (18:02 -0700)]
Free temp_pagelist on error. Free in reverse order. Noticed by open.
Signed-off-by: Robert Noland <rnoland@2hip.net>
vehemens [Sat, 6 Sep 2008 22:33:47 +0000 (15:33 -0700)]
Pass lock data like linux and open.
Signed-off-by: Robert Noland <rnoland@2hip.net>
vehemens [Sat, 6 Sep 2008 21:19:32 +0000 (14:19 -0700)]
Move order to end like linux.
Signed-off-by: Robert Noland <rnoland@2hip.net>
vehemens [Sat, 6 Sep 2008 21:16:51 +0000 (14:16 -0700)]
Style white space cleanup part 2.
Signed-off-by: Robert Noland <rnoland@2hip.net>
Robert Noland [Sat, 6 Sep 2008 22:37:06 +0000 (18:37 -0400)]
[FreeBSD] Ensure that drm_pci_alloc is never called while locks are held.
vehemens [Tue, 2 Sep 2008 20:56:35 +0000 (13:56 -0700)]
Reorder lock functions like linux.
Signed-off-by: Robert Noland <rnoland@2hip.net>
vehemens [Tue, 2 Sep 2008 11:57:36 +0000 (04:57 -0700)]
Style white space cleanup.
Signed-off-by: Robert Noland <rnoland@2hip.net>
vehemens [Tue, 2 Sep 2008 09:43:19 +0000 (02:43 -0700)]
Need M_NOWAIT for malloc.
Signed-off-by: Robert Noland <rnoland@2hip.net>
Robert Noland [Fri, 5 Sep 2008 15:52:53 +0000 (11:52 -0400)]
i915: fix i915_ring_validate()
Stephane Marchesin [Thu, 4 Sep 2008 22:17:52 +0000 (00:17 +0200)]
nouveau: 8200 cards are 0xA0 family.
Dave Airlie [Tue, 2 Sep 2008 00:07:14 +0000 (10:07 +1000)]
drm: fix sysfs error path.
Pointed out by Roel Kluin on dri-devel.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Sat, 30 Aug 2008 21:27:26 +0000 (07:27 +1000)]
radeon: make writeback work after suspend/resume.
While re-writing this for modesetting, I find we disable writeback on
resume.
vehemens [Thu, 28 Aug 2008 02:11:04 +0000 (19:11 -0700)]
[FreeBSD] Use driver features macros and flags
Signed-off-by: Robert Noland <rnoland@2hip.net>
vehemens [Fri, 29 Aug 2008 17:18:54 +0000 (13:18 -0400)]
[FreeBSD] Convert drm_driver to a pointer like linux.
Signed-off-by: Robert Noland <rnoland@2hip.net>
vehemens [Fri, 29 Aug 2008 16:47:00 +0000 (12:47 -0400)]
[FreeBSD] Replace typedefs on bsd.
Signed-off-by: Robert Noland <rnoland@2hip.net>
vehemens [Fri, 29 Aug 2008 16:40:30 +0000 (12:40 -0400)]
[FreeBSD] Catch up to vblank rework for via.
(No, we don't build via right now.)
Signed-off-by: Robert Noland <rnoland@2hip.net>
vehemens [Fri, 29 Aug 2008 16:37:29 +0000 (12:37 -0400)]
[FreeBSD] Correct debug message
Signed-off-by: Robert Noland <rnoland@2hip.net>
Robert Noland [Fri, 29 Aug 2008 16:29:50 +0000 (12:29 -0400)]
[FreeBSD] Fix a couple of locking problems.
Robert Noland [Fri, 29 Aug 2008 16:23:35 +0000 (12:23 -0400)]
[FreeBSD] Increase debugging output for vblank code.
Doing my part to make DRM_DEBUG more chatty...
Tomas Carnecky [Thu, 28 Aug 2008 22:43:19 +0000 (00:43 +0200)]
Fix drm_realloc when you're reallocing into something smaller.
Stephane Marchesin [Wed, 27 Aug 2008 00:27:10 +0000 (02:27 +0200)]
Change git-describe into git describe.
Kristian Høgsberg [Tue, 26 Aug 2008 18:28:08 +0000 (14:28 -0400)]
[intel_bufmgr_gem] Remember global name when creating buffer from name.
Robert Noland [Sun, 24 Aug 2008 19:53:17 +0000 (15:53 -0400)]
i915: Fix i915 build on FreeBSD
ifdef out all the gem stuff for now. Also, the msi stuff isn't portable
the way it is... I'll try and fix that up sometime soon.
Robert Noland [Sat, 23 Aug 2008 01:45:41 +0000 (21:45 -0400)]
[FreeBSD] Add drm_drawable_free_all()
Robert Noland [Sat, 23 Aug 2008 01:34:25 +0000 (21:34 -0400)]
[FreeBSD] Fix long standing memory leak in drm_remove_magic.
We shuffled all the links around to disconnect the entry, but
never free it. We would incorrectly free the last entry in the
hash chain if nothing matched.
Robert Noland [Sat, 23 Aug 2008 01:32:37 +0000 (21:32 -0400)]
i915: Convert vblank on disabled pipe DRM_ERROR to DRM_DEBUG.
Robert Noland [Wed, 20 Aug 2008 21:20:31 +0000 (17:20 -0400)]
i915: Clear sarea_priv during lastclose.
sarea_priv needs to be NULL before i915_initialized is called to
properly reset it. The stale value produces a panic any time something
opens/closes drm without calling initialize. i.e. version checking
Robert Noland [Wed, 20 Aug 2008 21:15:46 +0000 (17:15 -0400)]
i915: Free dev->dev_private on unload.
vehemens [Wed, 13 Aug 2008 21:19:35 +0000 (17:19 -0400)]
[FreeBSD] Move vblank bits into their own structure.
Signed-off-by: Robert Noland <rnoland@2hip.net>
vehemens [Wed, 13 Aug 2008 21:17:05 +0000 (17:17 -0400)]
[FreeBSD] Fix lock leak.
Signed-off-by: Robert Noland <rnoland@2hip.net>
Robert Noland [Wed, 13 Aug 2008 21:05:59 +0000 (17:05 -0400)]
i915: Move spinlock init / destroy to load / unload time.
This resolves the panic on FreeBSD during VT switch, without attempting
any of the more lofty goals for the time being.
Dave Airlie [Sun, 24 Aug 2008 06:54:43 +0000 (16:54 +1000)]
libdrm: add udev support.
This patch allows you to --enable-udev, and will avoid having libdrm
make device nodes. If you are using udev, you should really --enable-udev
your libdrm.
root [Tue, 6 May 2008 22:04:55 +0000 (23:04 +0100)]
nouveau: fifo and graphics engine suspend and resume for nv04-nv4x
Corresponding DDX patch at http://people.freedesktop.org/~stuart/nv0x-nv4x_suspend/
Coleman Kane [Mon, 18 Aug 2008 21:08:21 +0000 (17:08 -0400)]
Change prototype of drmIoctl to unsigned long request.
This resolves and issue on amd64 FreeBSD and it looks like the
linux ioctl syscall should be unsigned long as well.
Signed-off-by: Robert Noland <rnoland@2hip.net>
Maarten Maathuis [Sat, 16 Aug 2008 22:41:50 +0000 (00:41 +0200)]
nouveau: make it compile under 2.6.27
Maarten Maathuis [Thu, 14 Aug 2008 17:35:55 +0000 (19:35 +0200)]
linux: on_each_cpu has 3 args on 2.6.27
Thomas Hellstrom [Wed, 13 Aug 2008 08:04:21 +0000 (10:04 +0200)]
Don't call the vblank tasklet with irqs disabled.
If a specific tasklet shares data with irq context,
it needs to take a private irq-blocking spinlock within
the tasklet itself.
Kristian Høgsberg [Wed, 13 Aug 2008 02:22:15 +0000 (22:22 -0400)]
[intel_bufmgr_gem] Fix flink buffer name caching (#17085, #17092).
Store the global name in global_name, don't overwrite the gem_handle.
Matthieu Herrb [Mon, 11 Aug 2008 17:44:39 +0000 (10:44 -0700)]
libdrm: Allow build outside of source tree.
Dave Airlie [Mon, 11 Aug 2008 00:58:41 +0000 (10:58 +1000)]
drm_vm: fix for build on 2.6.22
thanks to malc0 for pointing it out
Dave Airlie [Mon, 11 Aug 2008 00:47:00 +0000 (10:47 +1000)]
drm: add OS_HAS_GEM option.
To build i915 driver pass OS_HAS_GEM=1 to make for now
Dave Airlie [Sat, 9 Aug 2008 07:19:16 +0000 (17:19 +1000)]
drm: TRUE/true
Eric Anholt [Fri, 8 Aug 2008 22:55:34 +0000 (15:55 -0700)]
Drop TTM interfaces from the userland library.
Eric Anholt [Fri, 8 Aug 2008 21:08:43 +0000 (14:08 -0700)]
Fix compile warning from check_aperture change.
Eric Anholt [Fri, 8 Aug 2008 21:05:01 +0000 (14:05 -0700)]
Merge branch 'drm-gem'
Conflicts:
shared-core/i915_dma.c
This brings in kernel support and userland interface for intel GEM.
Eric Anholt [Fri, 8 Aug 2008 20:13:46 +0000 (13:13 -0700)]
Replace the check_aperture API with one we can make thread-safe.
While the bufmgr isn't thread-safe at the moment, we need it to be for shared
objects between contexts.
Stuart Bennett [Fri, 8 Aug 2008 15:20:52 +0000 (16:20 +0100)]
nouveau: wait for pgraph idle after loading or saving a context
the nvidia driver does this, and it stops the error message appearing on nv40
Keith Packard [Thu, 7 Aug 2008 22:26:30 +0000 (15:26 -0700)]
Make flink save the kernel-assigned name and return it instead of creating another name
Keith Packard [Tue, 5 Aug 2008 06:33:03 +0000 (23:33 -0700)]
Switch from shmem_getpage to read_mapping_page
Keith Packard [Tue, 5 Aug 2008 23:06:40 +0000 (16:06 -0700)]
[gem-intel] Retiring flush requests should clear flushed write_domains
When i915_gem_retire_request has a flush which matches an object write
domain, clear the write domain. This will move the object to the inactive
list rather than the flushing list, avoiding trouble with objects left stuck
on the flushing list.
Keith Packard [Tue, 5 Aug 2008 21:44:53 +0000 (14:44 -0700)]
[gem-intel] Don't clear write_domain until flush completes
In i915_gem_object_wait_rendering, if the object write domain is being
written by the GPU, the appropriate flushing commands are written to the
device and an additional request queued to mark that flush. Finally, the
function blocks on that new request.
The bug was that the write_domain in the object was cleared before the
function blocked.
If the wait is interrupted by a signal, the flushing commands may still be
pending. With the current write_domain information lost, the restarted
syscall will drop right through the write_domain test as that value was
lost, and so the function will not block at all. Oops.
Fixed by simply moving the write_domain clear until after the wait_request
succeeds. Note that the restarted system call will generate an additional
flush sequence and request, but that should be 'harmless', aside from a
slight performance impact.
Someday we'll track flushing more accurately and clear write_domains more
efficiently, but for now, this should suffice.
This bug was discovered in the 2d gem development by running x11perf
-copypixwin500 and noticing that the window got cleared accidentally.
Keith Packard [Mon, 4 Aug 2008 07:34:08 +0000 (00:34 -0700)]
Expose pin/unpin/set_tiling/flink APIs
Dave Airlie [Thu, 31 Jul 2008 21:43:58 +0000 (07:43 +1000)]
Revert "i915: Move all of the irq install/uninstall to load time."
This reverts commit
965a72202b439068e62ac341990f51953457b202.
Please re-do over properly
Dave Airlie [Thu, 31 Jul 2008 03:12:36 +0000 (13:12 +1000)]
drm: add fault handler support so as to be more like possible upstream
Eric Anholt [Wed, 30 Jul 2008 21:10:36 +0000 (14:10 -0700)]
intel-gem: Replace version bump signalling GEM with I915_PARAM_HAS_GEM.
Eric Anholt [Wed, 30 Jul 2008 18:29:32 +0000 (11:29 -0700)]
intel-gem: Remove dead field from reverted changes.
Eric Anholt [Wed, 30 Jul 2008 18:22:48 +0000 (11:22 -0700)]
Revert "Rename drm_mm.c and its fuctions to drm_memrange."
This reverts commit
3ad8db2071d30c198403e605f2726fc5c3e46bfd.
We ended up not needing that namespace, and I'd rather not have the churn
for producing diffs.
Dave Airlie [Wed, 30 Jul 2008 06:52:13 +0000 (16:52 +1000)]
i915: more version checks
Dave Airlie [Wed, 30 Jul 2008 06:26:51 +0000 (16:26 +1000)]
i915: add version checks for opregion on old kernels
Eric Anholt [Wed, 30 Jul 2008 03:26:38 +0000 (20:26 -0700)]
intel-gem: actually add i915_gem_debug.c.
Eric Anholt [Tue, 29 Jul 2008 18:10:47 +0000 (11:10 -0700)]
intel-gem: Check return value of pci_read_base.
Nicolai Haehnle [Tue, 29 Jul 2008 17:56:51 +0000 (19:56 +0200)]
r300: Fix cliprect emit
This makes our handling of cliprects sane. drm_clip_rect always has exclusive
bottom-right corners, but the hardware expects inclusive bottom-right corners,
so we adjust this here.
This complements Michel Daenzer's commit
57aea290e1e0a26d1e74df6cff777eb9f038f1f8
to Mesa. See also http://bugs.freedesktop.org/show_bug.cgi?id=16123 .
Eric Anholt [Tue, 29 Jul 2008 06:14:11 +0000 (23:14 -0700)]
intel: Fix typo in unused register definition name.
Eric Anholt [Mon, 28 Jul 2008 23:33:50 +0000 (16:33 -0700)]
intel-gem: checkpatch.pl on drm_proc.c new contents.
Eric Anholt [Mon, 28 Jul 2008 22:17:21 +0000 (15:17 -0700)]
Merge commit 'origin/master' into drm-gem
Conflicts:
linux-core/Makefile.kernel
shared-core/i915_dma.c
shared-core/i915_drv.h
shared-core/i915_irq.c
Stuart Bennett [Tue, 29 Jul 2008 01:32:13 +0000 (02:32 +0100)]
nouveau: fix nv04 fifo context save to save reg contents, not reg offset
clearly the function had never been used :)
Stuart Bennett [Tue, 29 Jul 2008 01:26:34 +0000 (02:26 +0100)]
Eric Anholt [Mon, 28 Jul 2008 18:45:22 +0000 (11:45 -0700)]
intel-gem: Another checkpatch.pl pass.
Eric Anholt [Mon, 28 Jul 2008 18:24:00 +0000 (11:24 -0700)]
intel-gem: Fix regression tests.
Main fix is an oops that was triggered by the gtt pwrite path when we don't
have the gtt initialized. Also, settle on -EBADF for "bad object handle",
and -EINVAL for "reading/writing beyond object boundary".
Eric Anholt [Sun, 27 Jul 2008 02:28:14 +0000 (19:28 -0700)]
intel-gem: Speed up tiled readpixels by tracking which pages have been flushed.
This is around 3x or so speedup, since we would read wide rows at a time, and
clflush each tile 8 times as a result. We'll want code related to this anyway
when we do fault-based per-page clflushing for sw fallbacks.
Eric Anholt [Sun, 27 Jul 2008 02:51:58 +0000 (19:51 -0700)]
intel-gem: Move debug-only functions to a separate file.
Stefan Becker [Sat, 26 Jul 2008 14:49:14 +0000 (16:49 +0200)]
radeon: Add suspend/resume hooks for saving/clearing/restoring interrupts.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16799 .
Nicolai Haehnle [Sat, 26 Jul 2008 09:39:10 +0000 (11:39 +0200)]
r300_cmdbuf: Always emit INDX_BUFFER immediately after DRAW_INDEX
DRAW_INDEX writes a vertex count to VAP_VF_CNTL. Docs say that behaviour
is undefined (i.e. lockups happen) when this write is not followed by the
right number of vertex indices.
Thus we used to do the wrong thing when drawing across many cliprects was
necessary, because we emitted a sequence
DRAW_INDEX, DRAW_INDEX, INDX_BUFFER, INDX_BUFFER
instead of
DRAW_INDEX, INDX_BUFFER, DRAW_INDEX, INDX_BUFFER
The latter is what we're doing now and which ought to be correct.
Robert Noland [Fri, 25 Jul 2008 17:46:28 +0000 (13:46 -0400)]
[FreeBSD] Duh, we need to actually define the drm_modeset_ctl...
Dave Airlie [Fri, 25 Jul 2008 03:30:08 +0000 (13:30 +1000)]
drm: don't set the signal blocker on the master process.
this lets us debug the X server through xkb startup.
Not sure what the correct answer is, probably X needs to drop
the lock when execing stuff, with input hotplug it can get
xkb stuff at any time I believe.
Robert Noland [Thu, 24 Jul 2008 04:21:00 +0000 (00:21 -0400)]
[FreeBSD] Catch up to linux on vblank-rework
Robert Noland [Wed, 23 Jul 2008 23:55:06 +0000 (19:55 -0400)]
i915: Move all of the irq install/uninstall to load time.
This resolves a panic on FreeBSD which was caused by trying
to re-initialize the swap lock. It's just much easier to
initialize all of the locks at load time. It should also
ensure that the vblank structures are available earlier.
Eric Anholt [Wed, 23 Jul 2008 18:49:25 +0000 (11:49 -0700)]
intel-gem: Fix pread math and logic errors.
Fixes an oops in fbotexture from walking off the end of the page list.
Eric Anholt [Wed, 23 Jul 2008 17:07:16 +0000 (10:07 -0700)]
intel-gem: Add a quick hack to reduce clflushing on pread.
This increases overhead for the large-readpixels case due to the repeated
page cache accessing, but greatly reduces overhead for the small-readpixels
case.
Eric Anholt [Wed, 23 Jul 2008 15:36:54 +0000 (08:36 -0700)]
intel-gem: Don't do the GTT-pwrite shortcut on tiled buffers.
These will be covered by the fence, while pread/pwrite are supposed to be
CPU-perspective writes, with manual detiling done by the client.
Eric Anholt [Mon, 21 Jul 2008 21:33:55 +0000 (14:33 -0700)]
intel-gem: Move /proc debugging to a separate file.
Dave Airlie [Tue, 22 Jul 2008 08:47:27 +0000 (18:47 +1000)]
radeon: fix typo with a better typo
Dave Airlie [Tue, 22 Jul 2008 08:10:03 +0000 (18:10 +1000)]
radeon: fix type DST vs Z cache flush
Robert Noland [Mon, 21 Jul 2008 22:04:02 +0000 (18:04 -0400)]
[FreeBSD] Improve upper_32_bits define.
Thanks to airlied.
Eric Anholt [Mon, 21 Jul 2008 21:21:16 +0000 (14:21 -0700)]
intel-gem: Remove recently added pci_read_base prototype.
This is in pci.h in the fixed patch to the kernel.