Commit graph

2060 commits

Author SHA1 Message Date
Jesse Barnes
893315d49e i915: set domain properly on fb mapping, flush out changes
The user visible ioctl does this, but since we call into GEM internals
directly, we have to flush things ourselves.  Fixes initial fb console
corruption.
2008-08-16 11:35:10 -07:00
Jesse Barnes
5f9e4a764a i915: update cursor handling to use GEM objects 2008-08-13 16:57:42 -07:00
Jesse Barnes
b8724ae647 Merge branch 'modesetting-101' into modesetting-gem 2008-08-13 10:09:41 -07:00
Jesse Barnes
2f03ba4aad Merge branch 'master' into modesetting-gem
Conflicts:

	libdrm/Makefile.am
	libdrm/xf86drm.h
	shared-core/i915_dma.c
	shared-core/i915_irq.c
2008-08-13 10:08:02 -07:00
Jesse Barnes
085df6491e Add error checking to framebuffer creation
Make the Intel routine return an error if needed and make the core check for
it.
2008-08-12 18:23:58 -07:00
Dave Airlie
08faab27e5 drm_vm: fix for build on 2.6.22
thanks to malc0 for pointing it out
2008-08-11 10:58:41 +10:00
Dave Airlie
280d415957 drm: add OS_HAS_GEM option.
To build i915 driver pass OS_HAS_GEM=1 to make for now
2008-08-11 10:47:00 +10:00
Maarten Maathuis
f79ed55462 NV50: enable hotplug irq 2008-08-09 19:47:06 +02:00
Maarten Maathuis
2b7feebb8a NV50: call drm_sysfs_hotplug_event when appropriate 2008-08-09 19:33:32 +02:00
Dave Airlie
12e6a114cf drm: TRUE/true 2008-08-09 17:19:16 +10:00
Eric Anholt
e1b8e79796 Merge branch 'drm-gem'
Conflicts:

	shared-core/i915_dma.c

This brings in kernel support and userland interface for intel GEM.
2008-08-08 14:05:01 -07:00
Jesse Barnes
8074b2e83d Make modesetting-gem build with recent kernels
Needed to merge in VM fault changes & pci_read_base API update.
2008-08-07 17:15:50 -07:00
Jesse Barnes
c7fb19e9b0 Merge branch 'drm-gem' into modesetting-gem 2008-08-07 14:02:04 -07:00
Keith Packard
ac20e14d23 Switch from shmem_getpage to read_mapping_page 2008-08-06 10:11:11 -07:00
Keith Packard
dc0546c87f [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.
2008-08-05 16:06:40 -07:00
Keith Packard
ceb3d5e383 [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.
2008-08-05 14:44:53 -07:00
Kristian Høgsberg
086716c8e2 Merge commit 'origin/drm-gem' into modesetting-gem
Conflicts:
	linux-core/Makefile.kernel
	linux-core/drmP.h
	linux-core/drm_mm.c
	linux-core/drm_stub.c
	linux-core/i915_gem.c
	linux-core/i915_opregion.c
	shared-core/i915_dma.c
	shared-core/i915_drv.h
	shared-core/i915_irq.c
2008-08-01 13:35:56 -04:00
Kristian Høgsberg
5052e966ec Merge commit 'origin/master' into modesetting-gem
Conflicts:
	linux-core/Makefile.kernel
	linux-core/ati_pcigart.c
	linux-core/drm_compat.h
	linux-core/drm_irq.c
	linux-core/drm_lock.c
	linux-core/i915_drv.c
	shared-core/i915_dma.c
	shared-core/i915_drv.h
	shared-core/i915_irq.c
	shared-core/nouveau_mem.c
	shared-core/radeon_cp.c
	shared-core/radeon_drv.h
2008-07-31 15:18:32 -04:00
Dave Airlie
10d5b037b8 drm: add fault handler support so as to be more like possible upstream 2008-07-31 13:12:36 +10:00
Kristian Høgsberg
6d4e147480 Make it compile again. 2008-07-30 16:34:37 -04:00
Eric Anholt
689548b527 intel-gem: Remove dead field from reverted changes. 2008-07-30 11:29:32 -07:00
Eric Anholt
33c8e03787 Revert "Rename drm_mm.c and its fuctions to drm_memrange."
This reverts commit 3ad8db2071.

We ended up not needing that namespace, and I'd rather not have the churn
for producing diffs.
2008-07-30 11:25:34 -07:00
Dave Airlie
95c02743c9 i915: more version checks 2008-07-30 16:52:13 +10:00
Dave Airlie
02b09d271c i915: add version checks for opregion on old kernels 2008-07-30 16:26:59 +10:00
Eric Anholt
8fc72aef70 intel-gem: actually add i915_gem_debug.c. 2008-07-29 20:26:38 -07:00
Eric Anholt
0f78e30e0a intel-gem: Check return value of pci_read_base. 2008-07-29 11:10:47 -07:00
Eric Anholt
e68b57c17d intel-gem: checkpatch.pl on drm_proc.c new contents. 2008-07-28 23:12:41 -07:00
Eric Anholt
1d2bb68d28 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
2008-07-28 23:12:26 -07:00
Eric Anholt
487c42bd42 intel-gem: Another checkpatch.pl pass. 2008-07-28 11:45:22 -07:00
Eric Anholt
1bdf35fe19 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".
2008-07-28 11:29:16 -07:00
Eric Anholt
f85fd1b42d 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.
2008-07-28 11:25:19 -07:00
Eric Anholt
04ae66db1c intel-gem: Move debug-only functions to a separate file. 2008-07-26 19:52:47 -07:00
Alex Deucher
5282a505b6 NV50: s/FALSE/false/ 2008-07-26 16:57:02 -04:00
Stefan Becker
514c05cebe radeon: Add suspend/resume hooks for saving/clearing/restoring interrupts.
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=16799 .
2008-07-26 16:49:14 +02:00
Dave Airlie
df9871064e radeon: add initial atombios modesetting and GEM -> TTM translation layer.
This is an initial import of the atom bios parser with modesetting support
for r500 hw using atombios. It also includes a simple memory manager
layer that translates a radeon GEM style interface onto TTM internally.

So far this memory manager has only been used for pinned object allocation
for the DDX to test modesetting.
2008-07-26 08:56:23 +10:00
Dave Airlie
31da9492a4 Merge remote branch 'origin/modesetting-101' into modesetting-gem 2008-07-26 08:46:38 +10:00
Dave Airlie
7fd7ba87f3 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.
2008-07-26 08:46:09 +10:00
Dave Airlie
66723c09f5 modesetting: pass file priv to cursor 2008-07-26 08:43:59 +10:00
Dave Airlie
2be292f6ea nv50: remove TRUE/FALSE 2008-07-26 08:43:01 +10:00
Dave Airlie
11d3075087 modesetting: pass file_priv into cursor set functions 2008-07-26 08:41:01 +10:00
Dave Airlie
fb05c4d621 Merge remote branch 'origin/modesetting-101' into modesetting-gem 2008-07-26 08:38:59 +10:00
Dave Airlie
50db5aefa1 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.
2008-07-25 13:30:08 +10:00
Dave Airlie
5342845375 drm: use correct mode destructor 2008-07-24 15:22:44 +10:00
Eric Anholt
6d258ddf77 intel-gem: Fix pread math and logic errors.
Fixes an oops in fbotexture from walking off the end of the page list.
2008-07-23 11:49:25 -07:00
Eric Anholt
439d710683 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.
2008-07-23 10:10:54 -07:00
Eric Anholt
bddb952578 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.
2008-07-23 10:10:48 -07:00
Eric Anholt
a5d8f35f0f intel-gem: Move /proc debugging to a separate file. 2008-07-23 10:10:44 -07:00
Eric Anholt
e31d27857f intel-gem: Remove recently added pci_read_base prototype.
This is in pci.h in the fixed patch to the kernel.
2008-07-21 14:21:16 -07:00
Eric Anholt
67d1521566 intel-gem: Set up HWS when it needs a vaddr during GEM init.
This requires an updated 2D driver to not try to set it up as well.
2008-07-21 14:19:53 -07:00
Maarten Maathuis
4d5b9f4848 NV50: Don't create a "native" mode for LVDS when there is none. 2008-07-21 16:57:25 +02:00